Amazon EC2 인스턴스는 AWS 클라우드 환경의 가상 서버이다. 인스턴스를 처음 시작할 때부터 삭제할 때까지 인스턴스를 완전히 제어할 수 있다. 예를 들어, 운영 체제를 구성하고, 운영 체제 업데이트를 설치하고, 인스턴스에 애플리케이션을 설치할 수 있다.
Amazon EC2는 다양한 인스턴스 유형을 제공한다. 애플리케이션을 실행하는데 필요한 컴퓨팅 리소스, 메모리, 스토리지 및 네트워크 성능을 제공하는 인스턴스 유형을 선택할 수 있다. 인스턴스를 효과적으로 관리하고 모니터링하기 위해 다음 핵심 개념들을 이해하는 것이 중요하다.
인스턴스를 시작할 때 지정하는 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정된다. 각 인스턴스 유형은 서로 다름 컴퓨팅, 메모리, 스토리지 용량을 제공하며, 이 용량에 따라 한 인스턴스 패밀리로 분류된다. 인스턴스에서 실행하려는 애플리케이션 또는 소프트웨어의 요구에 따라 인스턴스 유형을 선택해야한다.
인스턴스 ID는 AWS에서 생성되는 각 EC2 인스턴스에 고유하게 할당되는 식별자이다. 이 ID는 i- 로 시작하며, 인스턴스를 관리하고 참조하는데 사용된다.
예를 들어, i-0abcdef1234567890와 같은 형식이다. 인스턴스 ID는 수명 주기 동안 변경되지 않는다.

인스턴스 상태는 EC2 인스턴스의 현재 동작 상태를 나타낸다. 이는 인스턴스가 현재 무엇을 하고있는지 보여준다. 인스턴스의 수명 주기에 따라 다음과 같은 상태들이 있다.
pending: 인스턴스가 시작 중이며 아직 실행될 준비가 되지 않음running: 인스턴스가 성공적으로 시작되었고 실행 중이며, 애플리케이션에 트래픽을 보낼 수 있음shutting-down: 인스턴스 종료 중terminated: 인스턴스가 완전히 종료되어 사용할 수 없음. 이 상태의 인스턴스는 다시 시작할 수 없음stopping: 인스턴스 중지 중stopped: 인스턴스가 중지됨. 이 상태의 인스턴스는 다시 시작할 수 있으며, 인스턴스 스토어 볼륨의 데이터는 손실되지만, EBS 볼륨의 데이터는 유지자세한 내용
Amazon EC2 instance state changes - Amazon Elastic Compute Cloud
상태 검사는 AWS가 EC2 인스턴스의 전반적인 상태를 모니터링하는 방법이다. 이는 인스턴스 내부 및 AWS 인프라 수준에서 인스턴스가 제대로 작동하는지 확인하는데 사용된다.
상태 검사는 1분마다 수행되며 pass 또는 fail 상태를 반환한다. 모든 검사가 통과하면 인스턴스의 전체 상태는 정상(OK)이다. 하나 이상의 검사가 실패하면 전체 상태는 손상(impaired)이다.
상태 검사에는 세 가지 유형이 있다.
시스템 상태 검사
시스템 상태 검사는 인스턴스가 실행되는 AWS 시스템을 모니터링한다. ****이러한 검사는 AWS의 개입이 필요한 인스턴스의 근본적인 문제를 감지한다. 시스템 상태 검사가 실패하면 AWS가 문제를 해결할 때까지 기다리거나 직접 해결할 수 있다. Amazon EBS 기반 인스턴스의 경우, 인스턴스를 직접 중지했다가 시작할 수 있으며, 대부분의 경우 인스턴스가 새호스트로 마이그레이션 된다. 인스턴스 스토어 기반 인스턴스의 경우, 인스턴스를 종료하고 교체할 수 있다. 인스턴스 스토어 볼륨은 임시 볼륨이며 인스턴스가 중지되면 모든 데이터가 손실된다.
시스템 상태 검사가 실패할 수 있는 문제 예시
인스턴스 상태 검사
인스턴스 상태 검사는 개별 인스턴스의 소프트웨어 및 네트워크 연결을 모니터링한다. Amazon EC2는 네트워크 인터페이스(NIC)로 주소 확인 프로토콜(ARP) 요청을 전송하여 인스턴스 상태를 확인한다. 이러한 확인은 사용자의 개입이 필요한 문제를 감지한다. 인스턴스 상태 검사가 실패하면 일반적으로 사용자가 직접 문제를 해결해야한다.
인스턴스 상태 검사가 실패할 수 있는 문제 예시
첨부된 EBS 상태 검사
첨부된 EBS 상태 검사는 인스턴스에 연결된 Amazon EBS 볼륨에 접근하여 I/O 작업을 완료할 수 있는지 모니터링한다. 이 StatusCheckFailed_AttachedEBS 지표는 인스턴스에 연결된 하나 이상의 EBS 볼륨이 I/O 작업을 완료할 수 없는 경우 장애를 나타내는 이진 값이다. 이러한 상태 검사는 컴퓨팅 또는 Amazon EBS 인프라의 근본적인 문제를 감지한다.
첨부된 EBS 상태 검사가 실패할 수 있는 문제 예시
자세한 내용
Status checks for Amazon EC2 instances - Amazon Elastic Compute Cloud
경보 상태는 AWS CloudWatch에서 설정된 경보(Alarm)의 현재 상태를 나타낸다. CloudWatch 경보는 특정 메트릭(CPU 사용률, 네트워크 I/O, 디스크 사용량 등)의 정의된 임계 값을 초과하거나 미달할 경우 자동으로 특정 작업을 수행하거나 알림을 보내도록 구성된다.
경보는 다음과 같은 세 가지 상태를 가질 수 있다.
OK: 메트릭이 정의된 임계값 내에 있어 문제 없음ALARM: 메트릭이 정의된 임계값을 벗어나 경보가 활성화된 상태. 이는 잠재적인 문제나 실제 문제가 발생했음을 나타냄INSUFFICIENT_DATA: 경보에 사용할 수 있는 데이터가 충분하지 않거나 메트릭이 아직 데이터를 보고하지 않고 있음을 나타냄AWS EC2에서 이미지는 EC2 인스턴스를 시작하는데 필요한 모든 소프트웨어 구성(운영체제, 애플리케이션 서버, 애플리케이션 등)을 담고 있는 템플릿이다. 이 이미지를 사용하여 동일한 구성을 가진 여러 인스턴스를 쉽고 빠르게 생성할 수 있다.
주요 특징
AMI는 Amazon EC2 인스턴스를 설정하고 부팅하는데 필요한 소프트웨어를 제공하는 이미지이다. 즉, 이미지의 AWS 용어라고 생각하면 된다. 또한 각 AMI에는 시작하는 인스턴스에 연결할 블록 디바이스를 지정하는 블록 디바이스 매핑이 포함되어있다. 인스턴스를 시작할 때 AMI를 지정해야 한다. AMI는 인스턴스에 대해 선택한 인스턴스 유형과 호환되어야 한다.
동일한 구성의 인스턴스가 여거 개 필요할 때는 한 AMI에서 여러 인스턴스를 시작할 수 있다.

기존 Amazon EC2 인스턴스에서 AMI 생성
AMI 카탈로그는 사용 가능한 모든 AMI를 탐색하고 검색할 수 있는 중앙 집중식 저장소 또는 인터페이스이다. AWS 관리 콘솔에서 EC2 대시보드로 이동하면 AMI 메뉴를 통해 AMI 카탈로그에 접근할 수 있다. 여기에서 AWS가 제공하는 기본 AMI, AWS Marketplace의 AMI, 사용자가 생성한 AMI, 다른 계정에서 공유된 AMI 등을 필터링하고 검색할 수 있다.
Amazon Elastic Block Store (EBS)는 Amazon EC2 인스턴스와 함께 사용할 수 있도록 설계된 영구적인 블록 스토리지 서비스이다. 블록 스토리지라는 것은 데이터를 고정된 크기의 블록 단위로 저장하고 관리하는 방식으로, 일반적인 하드 드라이브나 SSD와 유사하게 동작한다고 생각할 수 있다. EBS 볼륨은 네트워크를 통해 EC2 인스턴스에 연결되며, 인스턴스 운영체제가 일반적인 로컬 디스크처럼 인식하고 사용할 수 있다. 인스턴스가 중지되거나 종료되어도 데이터가 유지된다는 것이 큰 특징이다.
자세한 내용
볼륨은 EBS 서비스 내에서 생성하는 실제 스토리지 단위이다. 즉, EBS는 서비스 이름이고, 그 서비스를 통해 사용자가 할당받는 개별 디스크 저장 공간이 볼륨이다. 각 볼륨은 특정 용량을 가지며, 한 번에 하나의 EC2 인스턴스에만 연결될 수 있다. 여러 볼륨을 하나의 인스턴스에 연결하거나, 하나의 볼륨을 여러 인스턴스 간에 공유할 수도 있다.
Amazon EBS는 다음의 볼륨 유형을 제공하고 이러한 볼륨 유형은 성능 특성과 가격이 다르므로 애플리케이션의 필요에 맞게 스토리지 성능과 비용을 조정할 수 있다.
gp3 는 gp2 의 후속 버전으로, IOPS와 처리량을 스토리지 용량과 독립적으로 프로비저닝 할 수 있어 비용 효율성이 더 높다.io2 Block Express 는 특히 대규모/최대 성능이 필요한 워크로드를 위해 설계되었다.자세한 내용
IOPS는 초당 입/출력 작업 수를 나타내는 성능 지표이다. 이는 볼륨이 1초에 얼마나 많은 작은 읽기/쓰기 작업을 처리할 수 있는지를 측정한다. 데이터베이스와 같이 작은 블록 크기의 데이터를 무작위로 읽고 쓰는 트랜잭션 워크로드에서 매우 중요하다.
처리량은 초당 전송되는 데이터 양을 나타내는 성능 지표이다. 이는 볼륨이 1초에 얼마나 많은 메가바이트(MB)의 데이터를 읽거나 쓸 수 있는지를 측정한다. 비디오 스트리밍, 빅데이터 분석, 로그 처리와 같이 대용량 데이터를 순차적으로 읽고 쓰는 워크로드에서 중요하다.
Amazon EBS 스냅샷이라는 시점 사본을 만들어 Amazon EBS 볼륨의 데이터를 백업할 수 있다. 스냅샷은 중분 백업이다. 즉, 볼륨에서 가장 퇴근 스냅샷 이후 변경된 블록만 저장된다. 그러면 스냅샷을 만드는데 필요한 시간이 최소화되며 데이터를 복제하지 않으므로 스토리지 비용이 절약된다.
스냅샷은 Amazon S3에서 사용자가 직접 액세스할 수 없는 S3 버킷에 저장된다. Amazon EC2 콘솔 또는 Amazon EC2 API를 사용하여 스냅샷을 생성하고 관리할 수 있다. Amazon S3 콘솔 또는 Amazon S3 API를 사용하여 스냅샷에 액세스할 수 없다.
스냅샷 데이터는 리전의 모든 가용 영역에 자동으로 복제된다. 이를 통해 스냅샷 데이터에 대한 고가용성과 내구성을 제공하고 해당 리전의 모든 가용 영역에서 볼륨을 복원할 수 있다.
각 스냅샷에는 데이터를 새 EBS 볼륨에 복원하는데 필요한 모든 정보가 들어있다. 스냅샷에서 EBS 볼륨을 생성하는 경우, 새 볼륨은 해당 스냅샷을 생성하는데 사용된 볼륨과 정확히 일치한다.
자세한 내용
Amazon Data Lifecycle Manager를 사용하여 EBS 스냅샷 및 EBS-backed AMI의 생성, 보존 및 삭제를 자동화할 수 있다.
예를 들어, 매일 새벽 3시에 특정 볼륨의 스냅샷을 찍고, 7일이 지난 스냅샷은 자동으로 삭제하도록 규칙을 설정할 수 있다.
스냅샷 및 AMI 관리를 자동화 했을 때의 이점
자세한 내용
Amazon Data Lifecycle Manager를 사용하여 백업 자동화 - Amazon EBS