AWS에 Spring Project 배포하기 - (1) AWS에 인스턴스 생성

·2023년 12월 1일
0

Spring

목록 보기
34/36
post-thumbnail

🤔 들어가며

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

그 말은 곧..

유료 서버의 유효 기간이 끝나 버렸다!!! 🤯

그래서 배포 공부도 할 겸 다시 한번 프로젝트 배포를 해 보려고 한다!
이번에는 차근차근 기록도 해 볼 예정이다. 나 같은 배포 초보자에게 큰 도움이 되길 바라며 써 내려가는 포스팅. 😉

이 포스팅에서는 배포의 1단계 AWS에 인스턴스 생성 시 설정해야 하는 것들을 정리해 보았다.


👏 배포로의 첫 번째 걸음! AWS에 인스턴스 생성하기

1. AWS 계정 생성

우선 AWS 웹 사이트에 들어가 계정을 생성한다.
이 과정은 따로 설명이 필요 없기 때문에 생략하도록 하겠다.


2. EC2에 인스턴스 생성

2-1. AWS 콘솔 홈에서 EC2 선택

2-2. EC2 대시보드에서 인스턴스 시작 선택

2-3. 인스턴스 설정

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

👀 이름 및 태그

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

👀 Application and OS Images (Amazon Machine Image)

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

👀 인스턴스 유형

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

👀 키 페어(로그인)

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

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

그래서 키 페어가 뭔데? 🤔

키 페어란 AWS에서 EC2 인스턴스에 연결할 때 자격 증명 인증에 사용하는 보안 자격 증명 집합이다. 공개 키(Public Key)개인 키(Private Key) 한 쌍으로 이루어져 있다. 키 페어의 파일 형식은 .per이다.

다시 본론으로 돌아와서, 키 페어를 생성하면 아래와 같이 키 페어 파일을 다운로드 받을 수 있다.

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

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

👀 네트워크 설정

보안 그룹은 방화벽에 관련된 내용인데, 이 부분은 추후에 따로 생성해서 세팅해 줄 것이기 때문에 일단 넘어가자.

SSH 트래픽 허용 부분은 EC2 인스턴스를 생성하고 생성한 인스턴스에 우리가 사용하고 있는 노트북이나 데스크탑으로 접속하기 위한 부분이며, 이때 SSH 통신을 사용한다.
SSH 통신을 할 때 ip 제한을 설정할 수도 있는데 나는 노트북이나 데스크탑 등 여러 가지를 사용해서 접속할 것이기 때문에 사진처럼 위치 무관(0.0.0.0/0)으로 설정해 주었다.

이 설정도 추후 보안 그룹 탭에서 변경이 가능하다.

👀 Storage (volumes)

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

👀 인스턴스 최종 생성

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

짜라란! 인스턴스가 드디어 생성되었다. ✨

그렇지만 아직 끝이 아니다. 아까 마저 못 했던 보안 그룹을 수정해야 한다.


3. 인스턴스 보안 그룹 수정

보안 그룹은 또 뭔데?

보안 그룹이란 AWS에서 제공하는 방화벽으로 인바운드 규칙, 아웃바운드 규칙이 존재한다.

  • 인바운드(Inbound) 규칙 : 외부에서 EC2RDS 등의 내부로 접근할 때 사용되는 방화벽 규칙
  • 아웃바운드(Outbound) 규칙 : EC2RDS 등의 내부에서 외부로 접근할 때 사용되는 방화벽 규칙

👀 인바운드 규칙 추가

우리는 EC2에 접속해서 서버를 띄우는 것이 목표이므로 인바운드 규칙만 수정해 볼 것이다.

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

그리고 4개의 인바운드 규칙을 추가해 준다.

(위에서부터 순서대로)

규칙 1. Spring 기반 서버를 열어 줄 것이기 때문에 사용자 지정으로 8080 포트를 설정해 준 뒤, url을 아는 누구나 접속할 수 있도록 Anywhere-IPv4로 설정해 준다.
규칙 2. 원격 EC2 인스턴스에 접속할 때 사용되는 SSH 관련 방화벽으로, 고정 ip가 아닌 Anywhere-IPv4로 설정하였다.
규칙 3. HTTP 연결 시 사용되는 규칙이다.
규칙 4. HTTPS 연결 시 사용되는 규칙이다.

이렇게 규칙까지 만들었으니, 우리가 생성한 인스턴스에 이 보안을 적용해 줄 차례이다.

👀 인스턴스에 보안 적용

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

기존에 디폴트로 있던 보안 그룹은 제거하고 아까 만든 보안 그룹을 추가한 뒤 저장한다.


4. 탄력적 IP 할당

마지막으로 인스턴스에게 탄력적 IP를 할당해 줄 것이다.

엥, 탄력적 IP란? 🤯

탄력적 IP(Elastic IP Adress, EIP)란 인터넷을 통해 접속할 수 있는 고정적인 공인 IP 주소를 할당할 수 있고, 인스턴스에 연결할 수 있는 서비스를 말한다.
모든 인스턴스 또는 네트워크 인터페이스에 탄력적 IP 주소를 연결 가능하며, EIP를 할당받고 삭제하기 전까지는 IP 주소를 쭉 유지할 수 있다.

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

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

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

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

그러면 이렇게 연결된 인스턴스 ID에 방금 연결한 인스턴스의 ID가 보인다. 인스턴스 연결 성공!


😎 마무리

오늘은 배포의 첫 걸음인 AWS에 인스턴스와 IP 생성을 해 보았다. 다음 포스팅에서는 puTTy로 인스턴스 서버에 SSH 프로토콜로 접속을 해 보자.

profile
풀스택 개발자 기록집 📁

0개의 댓글