-
AWS EC2 실습 - 1AWS 2025. 8. 3. 19:38
1. aws free tier 계정 생성
참고 : https://www.lainyzine.com/ko/article/how-to-create-an-amazon-web-services-account/
EC2(Elastic Computer Cloud) : 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스, 쉽게 말해 하나의 컴퓨터를 의미한다
- 백엔드 서버를 배포할 때 주로 사용된다
2. EC2 region 설정
region : 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미한다
- EC2를 통해 빌려서 쓸 수 있는 컴퓨터들이 전 세계적으로 다양하게 분포해 있다
- 각 region은 고유한 이름을 가지고 있다
- 애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리하다


- 검색 > EC2 검색
- 오른쪽 상단의 리전 설정
3. EC2 셋팅하기

- 인스턴스 시작 > 이름 및 태그
- ex-server (보통 "기능이름-sever ")
- application and os image > ubuntu
- 윈도우/맥 경우 용량도 많이 차지하고 성능도 많이 잡아먹어 서버를 배포할 컴퓨터의 os는 가벼운 ubuntu 사용한다
- 인스턴스 유형 > 기존 것 그대로
- 인스턴스 : AWS EC2에서 빌리는 컴퓨터 1대를 의미한다
- 인스턴스 유형 : 컴퓨터 사양 의미

- 키 페어 : EC2 컴퓨터에 접근할 때 사용하는 비밀번호
- RSA와 .pem을 선택한 후 키페어 생성

- 보안 그룹 설정
- 보안 그룹(security group) : AWS 클라우드에서의 네트워크 보안을 의미한다

- EC2 인스턴스 주위에 방화벽 역할을 할 보안 그룹을 만들고 보안 그룹에 규칙을 지정한다
- 인바운드 트래픽(외부에서 EC2 인스턴스로 보내는 트래픽)에서 어떤 트래픽만 허용할지 설정할 수 있고
- 아웃바운드 트래픽(EC2 인스턴스에서 외부로 나가는 트래픽)에서 어떤 트래픽만 허용할 지 설정할 수 있다
- 보안그룹을 설정할 때는 허용할 IP범위와 포트를 설정할 수 있다

- 22번 포트, 80번 포트 추가
- 22번 포트 - EC2에 원격 접속할 때 사용하는 포트
- 80번 포트 - 백엔드 서버를 띄울 예정
cf. IP & Port
- 13.250.15.132(IP):3000(Port)
- IP : 네트워크 상에서의 특정 컴퓨터를 가리키는 주소
- Port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소
- 브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어 있다, 따라서 생략 가능
- well-known port
- 22번(SSH) : 원격 접속을 위한 포트 번호
- 80번(HTTP) : HTTP로 통신할 때 사용하는 포트 번호
- 443번(HTTPS) : HTTPS로 통신 할 때 사용하는 포트 번호

- EBS(Elastic Block Storage) : EC2 안에 부착되어 있는 일종의 하드디스크
- 저장 공간을 조금 더 포괄적인 용어로 스토리지, 볼륨이라고 한다

[ 인스턴스 시작 ] 


4. EC2 접속

5. 탄력적 IP 연결
- EC2 인스턴스를 생성하면 임시적인 IP를 할당받으며 실행 때마다 IP가 바뀌게 된다
- 따라서 고정 IP를 할당받아야 하는데 그 방법이 탄력적 IP 연결이다


- 왼쪽) 네트워크 및 보안 > 탄력적 IP > 탄력적 IP 주소 할당

- 할당 후 작업 > 탄력적 IP 주소 연결 > 처음 생성한 인스턴스와 연결
6. Express 서버를 EC2에 배포하기
$ sudo su $ apt-get update && / apt-get install -y ca-certificates curl gnupg && / mkdir -p /etc/apt/keyrings && / curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nod NODE_MAJOR=20 && / echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro apt-get update && / apt-get install nodejs -y- 우분투 환경에서 nodejs 설치 필요
- 해당 명령어로 설치하려고 보니 중간에 overwrite 하라고 y를 하면 더 이상 실행이 안 됨
sudo apt-get update sudo apt-get install build-essential sudo apt-get install curl curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -- sudo apt-get install nodejs
- 명령어를 순서대로 입력해 주면 nodejs 설치가 완료된다

- 실행시킬 샘플을 깃에서 clone 받아 온다
$ sudo npm i -g pm2 $ sudo pm2 start app.js- pm2 설치 후 서버 실행
- .env 파일에 db 설정하기

실행 확인 7. SpringBoot 서버 EC2 배포
$ sudo apt update && / sudo apt install openjdk-17-jdk -y
- JDK 설치 후 java -version 으로 설치 확인
$ git clone https://github.com/JSCODE-EDU/ec2-spring-boot-sample.git $ cd ec2-spring-boot-sample- 깃에서 실행시킬 프로젝트 clone
- application.yml 생성 후 수
$ ./gradlew clean build # 기존 빌드된 파일을 삭제하고 새롭게 JAR로 빌드 $ cd ~/ec2-spring-boot-sample/build/libs $ sudo java -jar ec2-spring-boot-sample-0.0.1-SNAPSHOT.jar- 서버 실행
- 중간에 멈춰서 인스턴스 중지 후 재시작 > 10분 정도 걸림

실행 확인 8. 인스턴스 종료


- 인스턴스 종료(삭제)
- 탄력적 IP 주소 릴리스
728x90'AWS' 카테고리의 다른 글
AWS CLF-002 2주 합격 후기 (0) 2025.09.14 솔루션 AWS EC2 환경에서 설치 후 작동 테스트 (0) 2025.09.04 AWS EC2 실습 - 4 (RDS) (0) 2025.08.06 AWS EC2 실습 - 3 (ELB) (3) 2025.08.04 AWS EC2 실습 - 2 (도메인 적용) (2) 2025.08.03