본문 바로가기
DevOps/AWS

EC2(Elastic Compute Cloud)

by Mecodata 2024. 9. 12.

정의

- AWS에서 원격 VM 인스턴스(하나의 컴퓨터)를 생성하여 사용하는 서비스

- 주로 백엔드 서버를 배포하기 위한 VM 인스턴스 생성에 사용

※ 프론트 웹 페이지도 배포 가능하지만 주로 프론트는 Netlify, AWS S3 등을 사용 

GCP 기준 Compute Engine - VM 인스턴스 

 

리전(Region)

- AWS의 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터의 지역

- 애플리케이션의 주 사용자들의 위치와 가까운 리전의 VM 인스턴스를 생성하는 것이 유리

 

기본 세팅

1. AWS 로그인 후 EC2 대시보드 접속 - 인스턴스 시작(생성) 클릭 다음과 같이 설정

(OS 종류: Ubuntu, 인스턴스 유형: t2-micro

OS는 Windows나 Mac 보다 서버 배포에 필요한 기능만 들어 있어 훨씬 가벼운 Ubuntu를 주로 사용

2. 보안을 위해 새 키 페어 생성 클릭 다음과 같이 기본값으로 설정 후 키 페어 생성

※ 키 페어(인스턴스 접속 비밀번호) 생성 → 인스턴스 개인 키 파일 자동 다운로드


3. 네트워크 설정에서 편집 클릭 보안 그룹 생성 옵션 선택 → 보안 그룹 규칙 추가를 통해 ssh와 http 트래픽 허용

※ 보안 그룹(Security Group) = 외부와 EC2 인스턴스 간에 어떤 트래픽의 출입을 허용할 지 설정하며 특정 범위의 IP와 포트 번호를 지정 (방화벽과 같은 개념)

Security Group의 역할

4. 스토리지 설정에서 기본값으로 설정 후 인스턴스 생성 → 생성한 인스턴스에 EIP 부여

EBS(Elastic Block Storage) = EC2 인스턴스의 가상 하드디스크(HDD)로 EC2 인스턴스가 종료되어도 별개로 유지 가능ex) C 드라이브, D 드라이브

EC2 인스턴스 상태 옵션

인스턴스 종료 = 인스턴스 중지가 아닌 인스턴스 초기를 의미

 

탄력적 IP(Elastic IP, EIP)

- 일종의 고정 IP EIP 미설정 시 EC2 인스턴스를 재부팅할 경우 기존 IP가 사라지고 새로운 IP를 부여받음

- EC2 메뉴에서 네트워크 및 보안탄력적 IP 탄력적 IP 주소 할당 클릭 기본 옵션으로 할당 클릭 (EIP 생성→ 생성된 EIP 선택 후 작업 옵션에서 탄력적 IP 주소 연결 클릭 → 인스턴스 항목에서 원하는 EC2 인스턴스 선택 후 연결

※ GCPVPC 네트워크 - IP 주소 - 외부 고정 주소와 동일

실행 중인 인스턴스에 연결된 IP 주소 (EIP) 한 개는 무료
해당 인스턴스에 추가 EIP를 연결하면 인스턴스와 연결된 추가 EIP당 시간에 비례하여 요금 부과

※ 테스트용으로 비용 발생 안되게 EC2 인스턴스를 종료하려면 EC2 인스턴스 종료 후 연결되었던 탄력적 IP 릴리즈 

 

배포 (With Docker)

1. 생성한 EC2 인스턴스에 접속

 

[AWS] 📚 EC2 외부 접속(SSH) 5가지 방법 - PuTTy / FileZilla / MobaXterm

EC2 외부 접속하기 [PuTTy] 가장 유명하고 많이 사용하는 리눅스(SSH) 접속 툴인 Putty를 이용해서 EC2 인스턴스에 접속하는 방법을 알아보자. 필요한 준비물은 Putty와 Puttygen 두 가지이다. Puttygen은 위

inpa.tistory.com

 

2. sudo apt update => sudo apt install docker.io (SSH에 docker 설치)

 

3. sudo docker pull [이미지명] (해당 이미지를 EC2 인스턴스로 복사) => sudo apt install screen (screen 설치) => sudo screen (screen 접속) => screen에서 sudo docker run -p 8080:8080 [이미지명] (해당 이미지를 토대로 컨테이너 생성하여 실행) => 백엔드 서버 실행 및 배포 완료

 

Screen = Linux에서 물리적인 터미널을 여러 개의 가상 터미널로 다중화 해주는 도구 (하나의 인스턴스에 여러 세션을 만들어 각각 다른 작업을 할 수 있음)

 

AMI(Amazon Machine Image)

- EC2 인스턴스를 생성할 때 사용되는 OS와 애플리케이션 스택을 포함하는 이미지

- EC2 인스턴스로부터 손쉽게 생성 가능하고 다른 EC2 인스턴스에 바로 부팅할 수 있다는 편리성이 있지만 OS를 포함하고 있기 때문에 Docker에 비해서 생성 속도가 많이 느리고 무겁기 때문에 현업에서는 Docker를 더 활용하는 편 

 

'DevOps > AWS' 카테고리의 다른 글

IAM(Identity and Access Management)  (0) 2024.09.15
S3(Simple Storage Service)  (0) 2024.09.14
RDS(Relational Database Service)  (0) 2024.09.13

댓글