기존 학원에서 진행했던 파이널 프로젝트 득근전수(⏪어떤 프로젝트인지 궁금하다면 클릭!)를 AWS 서버에 배포했었다. 문제는 그 서버의 유효 기간이 바로 어제 11월 30일까지였다는 것.
그 말은 곧..

유료 서버의 유효 기간이 끝나 버렸다!!! 🤯
그래서 배포 공부도 할 겸 다시 한번 프로젝트 배포를 해 보려고 한다!
이번에는 차근차근 기록도 해 볼 예정이다. 나 같은 배포 초보자에게 큰 도움이 되길 바라며 써 내려가는 포스팅. 😉
이 포스팅에서는 배포의 1단계 AWS에 인스턴스 생성 시 설정해야 하는 것들을 정리해 보았다.
우선 AWS 웹 사이트에 들어가 계정을 생성한다.
이 과정은 따로 설명이 필요 없기 때문에 생략하도록 하겠다.


여기서부터 대혼란일 수 있으나... (바로 내 이야기..😀) 천천히 따라 해 보자!

인스턴스의 이름 및 태그를 입력해 준다. 나는 우리 프로젝트의 이름을 작성해 주었다.

나는 배고픈 개발자이므로 무료로 사용할 수 있는 Ubuntu를 선택했다.

인스턴스 유형은 디폴트로 선택되어 있는 무료 유형인 t2.micro를 선택한다.

이제 키 페어를 생성해야 한다. 우측의 '새 키 페어 생성'을 클릭한다.

키 페어 이름은 임의로 작성하면 된다. 유형과 파일 형식을 위와 같이 설정한 뒤 '키 페어 생성'을 클릭한다.

그래서 키 페어가 뭔데? 🤔
키 페어란 AWS에서 EC2 인스턴스에 연결할 때 자격 증명 인증에 사용하는 보안 자격 증명 집합이다.
공개 키(Public Key)와개인 키(Private Key)한 쌍으로 이루어져 있다. 키 페어의 파일 형식은.per이다.
다시 본론으로 돌아와서, 키 페어를 생성하면 아래와 같이 키 페어 파일을 다운로드 받을 수 있다.

이 키 페어 파일은 한 번 생성하면 두 번 다시 다운로드 받을 수 없기 때문에 잘 보관해야 한다.

다시 대시보드로 돌아가 방금 생성한 키 페어를 선택한다.

보안 그룹은 방화벽에 관련된 내용인데, 이 부분은 추후에 따로 생성해서 세팅해 줄 것이기 때문에 일단 넘어가자.
SSH 트래픽 허용 부분은 EC2 인스턴스를 생성하고 생성한 인스턴스에 우리가 사용하고 있는 노트북이나 데스크탑으로 접속하기 위한 부분이며, 이때 SSH 통신을 사용한다.
SSH 통신을 할 때 ip 제한을 설정할 수도 있는데 나는 노트북이나 데스크탑 등 여러 가지를 사용해서 접속할 것이기 때문에 사진처럼 위치 무관(0.0.0.0/0)으로 설정해 주었다.
이 설정도 추후 보안 그룹 탭에서 변경이 가능하다.

우리가 선택한 프리티어는 최대 30GiB까지 지원해 주므로 30으로 설정해 준다. 볼륨 유형은 범용 SSD인 gp2를 선택한다.

아래 '요약' 탭의 내용이 위와 같다면 '인스턴스 시작'을 누르고 인스턴스를 생성해 준다.

짜라란! 인스턴스가 드디어 생성되었다. ✨
그렇지만 아직 끝이 아니다. 아까 마저 못 했던 보안 그룹을 수정해야 한다.
보안 그룹은 또 뭔데?
보안 그룹이란 AWS에서 제공하는 방화벽으로 인바운드 규칙, 아웃바운드 규칙이 존재한다.
- 인바운드(Inbound) 규칙 : 외부에서
EC2나RDS등의 내부로 접근할 때 사용되는 방화벽 규칙- 아웃바운드(Outbound) 규칙 :
EC2나RDS등의 내부에서 외부로 접근할 때 사용되는 방화벽 규칙
우리는 EC2에 접속해서 서버를 띄우는 것이 목표이므로 인바운드 규칙만 수정해 볼 것이다.



EC2 메뉴 - 네트워크 및 보안 - 보안 그룹 - 보안 그룹 세팅 - 규칙 추가를 클릭한다. (기본 세부 정보는 알아서 설정하면 된다.)

그리고 4개의 인바운드 규칙을 추가해 준다.
(위에서부터 순서대로)
규칙 1. Spring 기반 서버를 열어 줄 것이기 때문에 사용자 지정으로8080포트를 설정해 준 뒤, url을 아는 누구나 접속할 수 있도록Anywhere-IPv4로 설정해 준다.
규칙 2. 원격 EC2 인스턴스에 접속할 때 사용되는 SSH 관련 방화벽으로, 고정 ip가 아닌Anywhere-IPv4로 설정하였다.
규칙 3. HTTP 연결 시 사용되는 규칙이다.
규칙 4. HTTPS 연결 시 사용되는 규칙이다.
이렇게 규칙까지 만들었으니, 우리가 생성한 인스턴스에 이 보안을 적용해 줄 차례이다.

EC2 대시보드 - 인스턴스에 들어가 아까 생성한 인스턴스를 체크한 뒤, 오른쪽 상단의 작업 - 보안 - 보안 그룹 변경을 클릭한다.

기존에 디폴트로 있던 보안 그룹은 제거하고 아까 만든 보안 그룹을 추가한 뒤 저장한다.
마지막으로 인스턴스에게 탄력적 IP를 할당해 줄 것이다.
엥, 탄력적 IP란? 🤯
탄력적 IP(Elastic IP Adress, EIP)란 인터넷을 통해 접속할 수 있는 고정적인 공인 IP 주소를 할당할 수 있고, 인스턴스에 연결할 수 있는 서비스를 말한다.
모든 인스턴스 또는 네트워크 인터페이스에 탄력적 IP 주소를 연결 가능하며, EIP를 할당받고 삭제하기 전까지는 IP 주소를 쭉 유지할 수 있다.


먼저 EC2 대시보드 메뉴 - 네트워크 및 보안 - 탄력적 IP - '탄력적 IP 주소 할당'을 클릭한다.

딱히 설정을 건드리지 않고 '할당'을 클릭한다.

이제 만든 IP 주소에 우리의 인스턴스를 연결해 주어야 한다. 우측 상단의 작업 - 탄력적 IP 주소 연결을 클릭한다.

여기서 내가 만든 인스턴스를 선택한 뒤 '연결'해 주자.

그러면 이렇게 연결된 인스턴스 ID에 방금 연결한 인스턴스의 ID가 보인다. 인스턴스 연결 성공!
오늘은 배포의 첫 걸음인 AWS에 인스턴스와 IP 생성을 해 보았다. 다음 포스팅에서는 puTTy로 인스턴스 서버에 SSH 프로토콜로 접속을 해 보자.