본 포스트는 AWS Certified Solutions Architect Associate 시험합격! 를 참고하여 작성되었습니다.
AMAZON EC2
AWS에서 제공하는 서비스형 인프라스트럭처
EC2는 다음의 것을을 포함하고 있다.
- 가상 머신 (EC2)
- 데이터를 저장할 수 있는 가상 드라이브 (EBS)
- 트래픽을 분산할 수 있는 로드 밸런서 (ELB)
- 서비스 확장을 가능케 하는 오토 스케일링 그룹 (ASG)
EC2 사이즈와 설정 옵션
- 운영체제 (리눅스, 윈도우, 맥)
- CPU (컴퓨팅 파워와 코어 수)
- RAM
- 스토리지 용량
- EBS/EFS : 네트워크에 연결
- EC2 Instance Store : 하드웨어에 연결
- 네트워크 카드 (속도와 공용 IP 주소)
- 시큐리티 그룹 (방화벽 규칙)
- 인스턴스를 구성하기 위한 부트스트랩 스크립트
부트스트랩 스크립트가 뭔데?
머신이 실행될 때 명령이 시작하는 것을 말함.
스크립트는 처음 시작할 때 한번만 실행되고, 다시 실행되지 않는다.
운영체제나 모듈의 설치 및 업그레이드를 위해 사용.
EC2 인스턴스 유형
EC2에는 다음과 같은 명명규칙이 있다.
m5.2xlarge
- m : instance class (범용 인스턴스)
- 5 -> 인스턴스의 세대
- 2xlarge -> 인스턴스의 크기. 크기가 클수록 더 많은 CPU와 메모리를 가지게 됨.
인스턴스의 유형은 다음과 같다
- 범용 인스턴스 (General Purpose) : 웹서버나 코드 저장소와 같은 다양한 작업에 적합하다. 컴퓨팅, 메모리, 네트워킹 간의 균형이 잘 맞는 인스턴스.
- 컴퓨팅 최적화 (Compute Optimized) : 데이터의 일괄 처리, 미디어 트랜스코딩, 머신러닝, 게임 서버와 같은 높은 수준의 컴퓨팅 파워를 요구할 때 유리한 인스턴스. 인스턴스 타입이
C로 시작한다.
- 메모리 최적화 (Memory Optimized) : 인메모리 데이터베이스나 대규모 비정형 데이터의 실시간 처리와 같은 메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 유리한 인스턴스. 인스턴스 타입이
R로 시작한다.
- 저장소 최적화 (Storage Optimized) : 데이터베이스나 분산 파일 시스템과 같이 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스. 인스턴스 타입이
I, D, 혹은 H1으로 시작한다.
보안 그룹
보안그룹은 EC2 인스턴스의 방화벽으로 인스턴스 안밖으로 트래픽이 허용되는 방식을 제어.
- 허용 규칙을 통해 무엇이 들어가고 나갈 수 있는지 결정
- IP 주소 혹은 다른 보안 그룹을 참조하여 보안 규칙을 설정.
- 인스턴스와 보안 그룹은 1:1 관계가 아니다. 하나의 인스턴스에 여러 개의 보안 그룹이 적용될 수 있다.
- 보안 그룹은 특정 지역과 VPC 조합에만 제한된다. 다른 지역으로 전환하거나 다른 VPC를 생성하는 경우 보안 그룹을 다시 생성해야 한다.
- 애플리케이션에 접속할 수 없는 경우, 즉 타임아웃이 계속해서 발생하는 경우 보안 그룹의 문제일 가능성이 높다.
- 다만 실제로 연결 거부 오류가 발생할 경우, 해당 트래픽이 방화벽을 통과했다는 뜻이므로 애플리케이션의 문제일 가능성이 높다.
- (개발자를 위한 조언으로) SSH 접속을 위한 별도의 보안 그룹을 하나 유지하는 것이 좋다. 일반적으로 SSH 접속은 가장 복잡한 작업이므로 제대로 수행되었는지 확인하는 것이 좋다.

보안 그룹을 통해 IP 주소를 신경쓰지 않고 트래픽을 제어할 수 있다.
인바운드 규칙으로 보안 그룹을 설정해놓으면 해당 보안 그룹에 연결된 인스턴스의 트래픽을 승인할 수 있다.
주로 사용하는 포트 넘버

EC2 인스턴스 구매 옵션
- On-Demand : 일반적인 인스턴스 구매 옵션으로 사용하는 만큼 지불.
- Reserved : 1년 혹은 3년 단위로 예약하여 인스턴스를 구매하는 방식. 온디멘드 방식보다 훨씬 저렴하다.
- Saving Plan : 가격 단위로 특정 사용량을 구매하는 방식. 지불 금액이 사용량을 초과하면 인스턴스가 자동으로 중단된다.
- Spot Instance : 가장 저렴한 방식이지만 언제든지 사용이 중단될 수 있는 구매 옵션.
- Dedicated Hosts(전용 호스트) : EC2 인스턴스를 포함한 전체 물리 서버를 임대하는 방식. 다른 AWS 사용자들은 해당 서버를 사용할 수 없기 때문에 라이센스가 있거나 강력한 규제 혹은 제약 사항을 준수해야할 때 도움이 되는 옵션.