오늘은 서버를 배포하기 위한 환경을 구축해보려고 합니다.
서버를 배포하기 위해서는 여러 방법이 있지만, 오늘은 리눅스 서버에 배포를 하기 위한 방법을 알아보려고 합니다.
리눅스 서버 선택
리눅스 서버를 이용하는 방법은 총 4가지가 있습니다.
1. 자신의 PC에 우분투 설치 or 듀얼부팅
기존에 깔려있던 운영체제를 밀어버리고 우분투를 설치하거나, 듀얼부팅으로 OS를 2개 설치하여 파티션을 나눠쓴는 방법입니다.
다소 어렵게 느껴지는 방법입니다.
2. 윈도우 10의 WSL2 사용
이 방법은 최근에 많이 사용하는 방법입니다. 리눅스와 호환성이 굉장히 높아졌다고 합니다.
3. 가상머신(Virtual Machine) 사용
예전에는 가장 많이 사용하는 방법이었지만, CPU에서부터 가상화 기능을 지원하지 않는 경우도 있기에 모두가 사용할 수 있는 방법은 아닙니다.
4. 클라우드 이용
요새 가장 많이 사용하기도 하고, 추천하는 방법입니다. AWS, MS Azure, Google Cloud Platform, Alibaba, Naver 등에서 클라우드를 제공하고 있지만, 가장 많이 사용되는 표준은 AWS 입니다.
이 때문에 AWS를 사용해볼 예정입니다.
AWS EC2를 이용해서 서버 환경을 구축하는 과정을 적어보겠습니다.
AWS EC2 서버 환경 만들기
AWS EC2(Amazon Elastic Compute Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 컴퓨터를 임대해주는 서비스라고 보면 될 것 같습니다.
저는 프리 티어로 사용하기 위해서 Amazon Linux 2 AMI로 서버 환경을 구축하려고 합니다.
프리 티어로 사용하면 계정 생성 이후 1년간 EC2 한대를 일정 용량, 성능에서 무료로 사용할 수 있습니다.
1. Region 설정 및 EC2 인스턴스 생성하기
Region 설정, 인스턴스 시작
오른쪽 상단의 지역을 서비스 할 지역에서 가까운 지역으로 설정합니다. 거리가 멀어지면 속도가 느려질 수도 있습니다. 저는 한국에 거주하니 서울을 체크합니다. 원하는 지역이 있으면 해당 지역으로 설정하면 됩니다.
인스턴스 생성을 위해 EC2 화면으로 넘어가 인스턴스 시작을 합니다.
Amazon Linux 2 AMI 64비트 선택
프리 티어 사용을 위해 Amazon Linux2 AMI(Amazon Machine Image)를 선택합니다.
인스턴스 유형 선택
프리티어 사용을 위해 t2.micro를 선택합니다.
인스턴스 세부 정보 구성
스토리지 추가
볼륨 크기(GiB)가 기본으로 8로 되어 있으나, 프리 티어는 30까지 사용 가능하므로 30을 사용하겠습니다.
태그 추가
태그를 추가해줍니다. 태그는 인스턴스에 할당하는 키 값을 이야기합니다. 다른 인스턴스와의 구분을 위해 이름을 붙이겠습니다.
보안 그룹 구성
SSH인 22포트는 AWS EC2를 접속할 수 있는 ip 주소를 지정하는 것입니다. 귀찮다고 전체 오픈을 해버리면 모든 사람들이 접속할 수 있게 되어서 요금이 과다청구 될 수도 있으니, 귀찮더라도 사용할 때마다 해당 장소의 ip 규칙을 추가해주는 것이 좋습니다.
추후 웹서비스 접속 위해 HTTP, HTTPS 접속을 위해서 80, 443 포트를 열어두고, 서버를 위해 8080 포트를 열어두겠습니다.
설정이 완료되었으니 검토 및 시작을 눌러줍니다.
인스턴스 시작 검토
시작을 눌러주면, 키페어 생성을 할 수 있는데, 이 때 키페어를 통해 EC2에 접속할 수 있으므로 잘 보관해야 합니다.
2. Elastic IP(탄력적 IP) 등록
인스턴스를 만들었으니, 고정 ip 할당을 위해 Elastic ip를 사용하겠습니다.
Elastic ip는 인스턴스에 할당되어 있지 않고 놀고있으면 과금될 수 있으니 주의하셔야 합니다.
주소 할당을 받은 후, 생성한 인스턴스에 연결해줍니다. 프라이빗 IP 주소에는 방금 생성된 탄력적 IP를 연결합니다.
EC2 인스턴스 요약에서 보면, 탄력적 IP 주소가 할당된 것을 확인할 수 있습니다.
알게된 부분
오늘의 포스팅을 통해서 배포를 하기 위한 서버를 클라우드를 이용하여 손쉽게 구축할 수 있는 방법을 배웠습니다.
다만, 보안 규칙이나 프리티어 사항들을 잘 숙지해둬서 요금이 과금되는 일이 없도록 주의해야 합니다.
'dev log' 카테고리의 다른 글
홈동 개발을 마치면서 (0) | 2021.08.30 |
---|---|
JPA Fetch 전략 (0) | 2021.08.03 |
Spring Boot, Spring Security, jwt를 이용한 회원가입과 로그인 (0) | 2021.07.26 |
MariaDB의 장점(MySQL과의 비교) (0) | 2021.07.21 |
[Backend] Servlet 정리 (0) | 2021.04.05 |