AWS

Amazon EC2 - 인스턴스, 보안, 스토리지까지

heesoohi 2025. 2. 15. 01:22

🙋🏻‍♀️💡 이 글에서 다루는 내용

✔️ Amazon EC2 – AWS에서 제공하는 클라우드 기반 가상 서버
✔️ 핵심 기능 – 컴퓨팅 파워 대여, 스토리지 관리, 자동 확장
✔️ 부팅 자동화 – 사용자 데이터 스크립트를 활용한 초기 설정
✔️ 인스턴스 종류 – 목적에 따라 최적화된 다양한 인스턴스 유형
✔️ 네트워크 보안 – 보안 그룹을 활용한 접근 제어 방식
✔️ 주요 포트 – 서버 운영에 필요한 주요 네트워크 포트

 
 

 

1. Amazon EC2란 무엇일까?

 

Amazon EC2 (= Elastic Compute Cloud) AWS에서 제공하는 IaaS(Infrastructure as a Service)이다. 

'필요할 때면 언제든 원하는 만큼 대여할 수 있는 클라우드'의 예시 중 하나가 EC2인 것!

 

EC2는 하나의 서비스가 아니라, 아래의 리스트 등 여러가지를 포함하는 서비스이다. 

  • EC2에서 가상머신을 임대 (= EC2 인스턴스) 
  • 데이터를 EBS 볼륨 = 가상 드라이브에 저장
  • ELB로 기기 간 로드 분산
  • ASG(오토 스케일링 그룹)으로 서비스 확장

이러한 AWS EC2의 사용법을 아는 것이 클라우드 작동방식을 이해하는 시작이라고 할 수 있다. 

 

 

 

2. EC2 사용자 데이터

 

EC2 사용자 데이터 스크립트를 사용해서 인스턴스를 부트스트래핑하는 것이 가능하다. 

 

✏️ 부트스트래핑이란?

     : 머신이 작동될 때 명령을 시작하는 것

 

스크립트는 처음 시작할 때 실행되고 이후에 다시 실행되지 않기 때문에, EC2 사용자 데이터는 매우 특정한 목적을 가진다. 

 

업데이트, 소프트웨어 설치, 인터넷에서 파일 다운로드 등등.. 인스턴스를 부팅할 때 자동화하고 싶은 작업들을 할 수 있게 된다. 

 

당연한 말이지만, 사용자 데이터 스크립트에 작업이 추가될수록, 부팅 시 인스턴스가 할 일도 늘어난다. 

 

 

3. EC2 인스턴스 유형

 

1. General Purpose

- 웹 서버, 코드 레포지토리와 같은 다양한 작업에 적합한 유형
- 컴퓨팅, 메모리, 네트워킹 간의 균형을 잘 이룸

General Purpose 인스턴스의 유형 예시

 

 

  2. Compute Optimized

 

  - 높은 수준의 CPU와 컴퓨팅 작업 수행을 요구하는 작업에 적합

  - 데이터 일괄 처리, 미디어 트랜스코딩, 고성능 웹서버를 요구하는 작업,

     HPC(고성능 컴퓨팅) 작업, 머신 러닝, 전용 게임 서버 등등..에 적합

이름이 모두 C로 시작

 

       

3. Memory Optimized

 

- 메모리에서 대규모 데이터를 처리하는 유형의 작업에 빠른 성능 제공

- 고성능의 관계형/비관계형 데이터베이스, 분산 웹스케일 캐시 저장소, BI에 최적화된 인메모리 데이터베이스, 대규모 비정형 데이터를 실시간 처리하는 애플리케이션 등에 적합

대부분 RAM 을 뜻하는 R로 시작하는 이름

 

 

4. Storage Optimized

 

- 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스

- OLTP 시스템, 관계형 데이터베이스, NoSQL 데이터베이스, Redis 등에 적합

 

 

 

4. EC2 인스턴스 방화벽

AWS 클라우드에서 네트워크 보안을 수행할 때 기본이 되는 것이 '보안 그룹'이다. 

 

보안 그룹은 IP 주소를 기준으로 허용 규칙을 설정할 수 있다. 

EC2 인스턴스로 들어오고 나갈 수 있는 트래픽을 허용하는 방식으로 제어한다. 

보안 그룹은 서로 참조하여 설정할 수도 있다. 

 

 

⬆️ 위의 이미지를 보면, EC2 인스턴스를 중심으로 보안 그룹(= 방화벽)이 생성되어 있다. 

보안 그룹에는 규칙이 설정되어 있고

이 규칙에 따라 인바운드 트래픽이 허용되는지, 아웃바운드 트래픽을 수행할 수 있는지 등이 결정된다. 

 

 

+) 다른 보안 그룹을 참조하는 방법 

 

 

⬆️ 위 그림과 같이 올바른 보안 그룹이 연결되어 있을 때, IP와 관계없이 다른 인스턴스와 통신할 수 있다. 

     그룹 3의 경우처럼 보안 규칙이 승인되지 않는 경우는 거부되어 작동하지 않는다. 

 

 

+) 알아두면 좋을 Ports

  • 22번 포트 = SSH(Secure Shell) - 리눅스에서 EC2 인스턴스에 로그인할 수 있음
  • 21번 포트 = FTP(File Transfer Protocol) - 파일 공유로 파일 업로드
  • 22번 포트 = SFTP(Secure File Transfer Protocol) - SSH를 사용한 안전한 파일 전송 프로토콜
  • 80번 포트 = HTTP - 보안되지 않은 웹사이트에 접속
  • 443 = HTTPS - 보안 웹사이트로 액세스
  • 3389 = RDP(Remote Desktop Protocol) - 윈도우 인스턴스 로그인용