Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

이지선의 블로그

[AWS] EC2, RDS를 활용하여 배포하기 본문

Study/Deployment

[AWS] EC2, RDS를 활용하여 배포하기

easyxun 2024. 8. 5. 00:36

EC2의 개념

EC2란 Elastic Compute Cloud의 줄임말로 AWS 클라우드의 가상 서버이다.

말 그대로 컴퓨터 대여 서비스(?)이다!

 

클라우드 환경이 아닌 내 컴퓨터를 서버로 사용하게 된다면 컴퓨터가 항상 켜져있어야 하고 항상 프로그램이 실행되어야 하기 때문에 별도의 서버 운영 컴퓨터가 필요하다.

 

하지만 AWS EC2를 사용하면 초기세팅비인 하드웨어 비용을 절감하고, 사용한 만큼의 용량만 금액을 지불하면 되는 방식이라 애플리케이션을 더욱 빠르게 개발하고 배포할 수 있다.

 


EC2의 구성(Instance / EBS / AMI)

https://aws.amazon.com/ko/

 

- 인스턴스 (Instance)

쉽게 말해 CPU와 메모리(RAM)를 포함하는 컴퓨터 그 잡채!

프로그램을 실행하고 데이터를 처리할 수 있는 환경을 제공하는 컴퓨터를 뜻한다.

종류에 따라 CPU의 성능, 메모리 성능에 차이가 있다.

ex) t2.micro, m5.large, c5.xlarge

 

- EBS (Elastic Block Store)

EBS는 하드디스크와 같은 역할을 한다.

컴퓨터를 끄더라도 하드디스크에 저장된 문서나 파일이 그대로 유지되는 것처럼 EBS에 저장된 데이터도 인스턴스가 종료되거나 재시작되더라도 그대로 유지된다.

ex) 범용 SSD(GP3), 프로비저닝된 IOPS SSD(io2), 스캔디스크(ST1)

 

- AMI (Amazon Machine Image)

AMI는 운영체제와 기본 설정이 포함된 이미지 파일이다.
새 컴퓨터를 구매하면 운영체제를 설치해야 하는 것처럼 인스턴스 설정 시 각 애플리케이션에 어울리는 AMI를 선택하여 적용한다.

ex) Ubuntu, Amazon Linux, Windows Server

 

이렇게 인스턴스와 AMI는 각각 컴퓨터와 운영체제의 역할을 하며, EBS는 데이터 저장 공간의 역할을 한다.

이 세 가지 요소를 조합하면 AWS에서 원하는 서버 환경을 설정할 수 있다!

 

예를 들어, 웹 애플리케이션을 개발하고자 한다면 t2.micro 인스턴스와 범용 SSD(GP3)를 사용할 수 있는 반면에
대규모 데이터베이스 서버를 운영하고자 한다면 m5.large 인스턴스와 프로비저닝된 IOPS SSD(io2)를 선택할 수 있다.

 


환경 소개

이번 프로젝트의 사용 환경은 아래와 같다.

애플리케이션 환경
Windows, JDK17, Spring Boot 3.1.0, MySQL

AWS EC2 환경
t2.micro, Ubuntu, GP3

 


1. RDS 구매하고 MySQL 세팅하기

AWS 가입 후 RDS를 구매해보자.

 

1-1. 연결 > 추가 연결 구성 탭에서 다음과 같이 설정한다.

  • 퍼블릭 액세스 기능 : "예" 선택
    → 이 설정이 되어있어야 내 컴퓨터에서 AWS RDS의 MySQL과 연결이 가능하다.
  • VPC 보안 그룹 : "새로 생성" 선택
  • 새 VPC 보안 그룹 이름 : springboot-db-security
  • 가용 영역 : 옵션 중 아무거나 선택

2. RDS 포트 열어주기

 


2-1. 인스턴스 보안그룹의 규칙편집으로 RDS 포트를 열어주자.

소스 > 위치 무관 클릭해서 0.0.0.0/0, ::/0 생성 확인 후 "규칙 저장" 클릭

 

2-2. 스프링 부트를 MySQL과 연결해보자.

(링크)에서 엔드포인트 확인 후 인텔리제이에서 MySQL을 연결해준다. (Host에 엔드포인트 입력)


3. EC2 서버 구매하기

리눅스 OS, 정확히는 Ubuntu 배포판의 컴퓨터를 사서 서버로 사용하는 방법이다.

 

3-1. 키 생성하기 클릭 후 키를 발급받는다.


4. EC2 서버 접속하기

 

먼저, SSH란 다른 컴퓨터에 접속할 때 쓰는 프로그램으로 클라우드 컴퓨터와 내 컴퓨터 모두 22번 포트가 열려있어야 접속 가능하다.

 

EC2의 경우 이미 22번 포트가 열려있으므로 따로 설정이 필요하지 않지만,

내 컴퓨터의 경우 SSH가 열려있지 않으므로 Git Bash 를 이용하여 22번 포트를 열어주도록 하자.

 

Git Bash를 실행하고 아래와 같이 입력한다.

ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피

 

 

- Key fingerprint 관련 메시지가 나올 경우 Yes를 입력한다.

 


5. 배포 파일 업로드하기

먼저, 프로젝트를 빌드해보자.

Tasks > build > build 를 더블 클릭한다.

 

5-1. SSH로 접속한 Unbuntu에서 JDK17을 설치해보자.

GitBash 터미널에서 진행한다.

sudo apt-get update
sudo apt-get install openjdk-17-jdk
java -version

 

5-2. Filezilla를 이용해서 배포 파일을 업로드해보자.

Filezilla내 EC2 클라우드 컴퓨터에 jar파일을 편하게 업로드 하기 위한 툴이다.

 

5-4. 스프링부트를 작동해보자.

java -jar JAR파일명.jar

 

해당 화면이 뜨면 성공!


6. 접속해보기

 

6-1. AWS에서 80, 8080 포트를 열어주자.

마지막으로 인바운드 규칙 편집에서 두 가지 포트를 추가!

 

6-2. 접속해보자 ~~

http://내 public 아이피:8080