티스토리 뷰
진행하고 있는 사이드 프로젝트에서 서버 구축을 위해
네이버 클라우드 플랫폼으로 무료 크레딧을 제공해줘서 서버 올리고 사용하고 있었다.
함께한 팀원이 이미 프로젝트에 대한 서버는 구축해주셔서 잘 사용하고 있었는데 어느날 갑작스러운 서버 장애를 겪게 되었다.
결론적으로 클라우드 서버에서 문제가 발생한 건 아니었지만
직접 구축한게 아니라 장애 처리하면서 서버에 대해 모르는 개념이 너무 많아 고충을 겪었다.
그래서 스스로 정리하며 프리티어로 웹 서버를 간단하게 구축하는 방법을 진행해보기로 한다.
네이버 클라우드 접속 후 회원가입 및 결제 정보 입력
** 진행하고 있는 프로젝트는 Standard 타입 Server 사용하고 있음
Free Tier Server 생성
Services > Free Tier > Server
+ 서버 생성 클릭
1. 서버 이미지 선택
- OS 이미지 타입 : Ubuntu
- 서버 타입 : Micro
2. 서버 설정
- 서버 타입 : Micro
3. 인증키 설정
- 새로운 인증키 생성
- 이름을 입력 하고 인증키 생성 및 저장 버튼을 클릭하면 pem 파일이 떨어진다.
* pem : 인증서(Certificate = public key), 비밀키(private key), 인증서 발급 요청을 위해 생성하는 CSR (certificate signing request) 등을 저장하는데 사용
- 떨어진 pem 파일을 열면 인증서를 추가할 수 있다.
- 보유하고 있는 인증키 이용
4. 네트워크 접근 설정
- ACG 선택
5. 최종 확인
서버 정보 확인 후, 서버 생성을 누르면 생성된다.
생성 중...........
잠시 기다리면 생성 완료!
공인 IP 신청
공인 ip : 전 세계에서 단 하나뿐인 내 인터넷 주소. 외부에서 접속하기 위해 필요한 서버의 위치인 ip이다.
사설 ip : 공인 ip를 받아 공유기를 통해 여러 기기들이 사용할 수 있는 ip주소이다.
- 외부 ip = 공인 ip
- 내부 ip = 사설 ip
- 아까 만들어 둔 서버를 선택하고
- 생성 버튼을 눌러주면 생성 완료!
포트포워딩
외부 포트에 따라 공인 IP 서버에서 내부 서비스를 연결하기 위한 과정
[외부pc 201.202.14.253:외부포트] - [공인 IP + 외부포트] - [내부포트 : 내가 만든 서버에서 만든 WAS]
* okky 에서 쉬운 예시를 찾았당
친구컴 --------- 인터넷 --------- (퍼블릭ip)공유기 ------- (사설ip)내 컴퓨터
내 컴퓨터에서 6379번 포트로 redis서버를 실행한다면
친구컴에서 내 컴퓨터의 redis에 접속할 수 없다. 친구는 내 공유기의 퍼블릭ip까지는 접근해도 그 이후를 접근 못하기 때문.
이때 공유기에서 내컴퓨터의 ip로 6379번 포트포워딩을 하게 되면
친구컴이 퍼블릭ip:6379로 접속하면 내 컴퓨터의 6379번 포트로 연결을 해줍니다.
- 포트 포워딩 설정
- 사용할 외부 포트 입력하고 + 추가 버튼 클릭하면 추가된다. 적용 버튼 누르면 설정됩니다.
ACG(Access Control Group)
서버 간 네트워크 접근 제어 및 관리를 할 수 있는 IP/Port 기반 필터링 방화벽
ACG를 이용하면 기존 방화벽(iptables, ufw, Windows 방화벽)을 개별적으로 관리할 필요 없이 서버 그룹에 대한 ACG 규칙을 손쉽게 설정하고 관리할 수 있다.
- ACG 생성 버튼 클릭해서 생성 가능
- 3306 mysql용 포트 추가해서 개방함
* 기본으로 적용되어 있는 포트 설정
- 22 : SSH (Secure Shell)
- 3389 : 원격 데스크톱
SSH 설정
- 이전에 서버 생성하면서 생성한 인증키를 넣어준다.
ssh 로 생성한 서버 접속해보기
ssh 관리자이름@공인IP -p 외부포트
터미널에서 ssh 서버 접속 명령어 입력하고,
지급 받은 관리자 비밀번호로 접속 성공!
* 구축 후기
ssh 접속 정보를 전달 받아서 사용만 해봤는데, 이렇게 직접 구축해보니까 어떻게 흘러가는지 이제 알게 됐다.
특히 각 서버 별로 IP, PORT 개념이 너무 헷갈렸는데 이제 좀 어떤건지 느껴진다!
역시 백문이 불여일견이라고 직접 해보면 몰랐던 개념들이 이런거였구나 하고 깨닫게 되는듯하다..
'backend > server' 카테고리의 다른 글
[MAC] Spring Boot 리눅스 서버에 jar 파일 배포 (0) | 2023.02.14 |
---|
- Total
- Today
- Yesterday
- port
- JPA
- checkout
- spring boot 3
- Java
- Spring Security
- ChatGPT
- Linux
- MongoDB
- 스프링 스케줄링
- addFilterBefore
- Cannot construct instance of
- n+1
- FetchJoin
- Kotlin
- QueryDSL
- 오블완
- redisson 분산락
- dto 클래스 생성자
- bucket4j
- Git
- 스프링오류
- 자바 어플리케이션 실행 과정
- MultipleBagFetchException
- 배열
- junit5
- 추상클래스
- array
- 티스토리챌린지
- jvm warm-up 전략
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |