본 포스트는 『AWS 교과서』(김원일, 서종호, 김석필 저)를 참고한 내용임.
Amazon EC2(Amazon Elastic Compute Cloud)는 AWS의 클라우드 환경에서 확장 가능한 컴퓨팅 자원을 제공하여 가상의 서버를 운영할 수 있는 서비스이다.
여기서 Elastic(탄력적)은 컴퓨팅 자원에 대해 원하는 만큼 확장하거나 축소하여 유연하게 사용할 수 있는 개념으로 이해할 수 있다.
가상의 컴퓨팅 환경으로 CPU, 메모리, 스토리지, 네트워킹 용량을 결정하는 다양한 인스턴스 유형을 제공한다.

AMI(Amazon Machine Image)는 인스턴스를 시작할 때 필요한 정보를 제공하는 것으로, 운영 체제와 소프트웨어를 적절히 구성한 상태로 제공되는 템플릿이다.
인스턴스를 생성할 경우 AMI를 지정해야 하며, 하나의 AMI로 동일한 구성의 여러 인스턴스를 손쉽게 생성할 수 있다.
스토리지(storage)는 데이터를 저장하는 공간이라는 의미로, 서버 자원에서 발생되는 다양한 데이터를 보관하려면 필수적으로 존재해야 한다.
Amazon EC2 인스턴스용 스토리지 유형으로 인스턴스 스토어(instance store)와 블록 스토리지인 Amazon EBS(Elastic Block Store)로 나뉜다.
인스턴스에 바로 붙어 있는 저장소로, Amazon Ec2 인스턴스를 생성하면 기본적으로 존재하는 스토리지이다.
장점: 매우 빠른 I/O를 보장함
단점: Amazon EC2 인스턴스를 중지하거나 종료하면 인스턴스 스토어에 저장된 데이터가 모두 손실됨
임시적인 데이터 저장소로 생각할 수 있으며, 장기적으로 보존해야 하는 데이터는 인스턴스 스토에 저장하지 않는 것을 추천한다.
인스턴스에 연결 및 제거를 하는 형태로 구성되는 블록 스토리지이다. (외장 하드디스크와 비슷하다고 생각하면 됨)
인스턴스가 네트워킹을 통해 EBS에 접근하는 연결되는 구조로, 영구 보존이 가능하다. 즉, Amazon EC2 인스턴스가 중지되거나 종료되어도 Amazon EBS에 보존하는 데이터는 그대로 유지할 수 있다.
관리 콘솔을 통해 스냅샷을 생성하여 백업하거나 EBS 연결을 해제한 후 다른 인스턴스에 연결할 수 있다.
| 구분 | 인스턴스 스토어 | Amazon EBS |
|---|---|---|
| 인스턴스 연결 | 직접 연결 | 네트워킹 연결 |
| I/O 속도 | 빠름 | 보통 |
| 데이터 보관 | 임시 | 영구 |
| 스냅샷(백업) | 불가 | 가능 |
서비스를 제공하기 위해서는 통신이 가능한 환경으로 구성되어야 한다. 이를 위한 여러 가지 네트워킹 요소들이 있다.
Amazon VPC(Virtual Private Cloud)는 AWS 퍼블릭 클라우드 안에서 논리적으로 격리된 가상의 클라우드 네트워크이다.
네트워킹을 수행하려면 네트워크 인터페이스(network interface)가 필요하다. AWS에서는 ENI(Elastic Network Interface)라는 논리적 네트워크 인터페이스가 VPC 내에 생성되며, ENI를 EC2 인스턴스에 연결해서 네트워킹을 수행한다.
네트워크 인터페이스에는 IP(Internet Protocol) 주소가 있으며, IP 주소로 대상을 구분하고 네트워킹을 수행한다. IP 주소는 프라이빗 IP와 퍼블릭 IP로 나뉜다.
프라이빗 IP(Private IP): 내부 구간의 통신을 위한 사설 IP
퍼블릭 IP(Public IP): 외부 구간의 통신을 위한 공인 IP

Amazon EC2는 안정적으로 서비스를 제공하고 관리하기 위해 여러 보안 기능을 제공한다.
보안 그룹(Security Group)은 Amazon EC2 인스턴스의 송수신 트래픽을 제어하는 가상의 방화벽 역할을 한다.
수신 트래픽에 대한 인바운드 규칙과 송신 트래픽에 대한 아웃바운드 규칙으로 되어 있으며, 대상 트래픽에 대한 허용과 거부를 결정한다.
Amazon EC2 인스턴스로 들어오는 트래픽을 허용 또는 거부하거나 반대로 나가는 트래픽을 허용 또는 거부하는 규칙을 정의할 수 있다.
키 페어(Key Pair)는 Amazon EC2 인스턴스에 연결할 때 자격을 증명하는 보안 키이다.
퍼블릭 키(Public Key): Amazon EC2 인스턴스에 저장
프라이빗 키(Private Key): 사용자 컴퓨터에 별도로 저장, 인스턴스를 생성한 후 가상 서버에 접근하여 설정이 필요하면 사용자의 자격 증명을 위해 사용됨
서비스 안정성과 가용성, 성능 유지를 위해 모니터링 기능을 사용할 수 있다.
수동 모니터링 도구: 관리자가 직접 관리 콘솔을 이용하여 모니터링을 수행하는 것이다.
자동 모니터링 도구: 대상 자원의 지표에 대해 임곗값을 정하고, 임곗값을 초과하면 경보를 내린다.
글로벌소프트웨어캠퍼스와 교보DTS가 함께 진행하는 챌린지입니다.