EC2 인스턴스는 물리적 서버를 가상화 또는 추상화한 것으로 볼 수 있지만, 기능적으로는 실제 서버와 차이가 없다.
Amazon 퀵 스타트 AMI
새 인스턴스 론칭 작업 진행 시, 콘솔에서 첫 번째로 등장하며, Linux 또는 Windows Server OS의 다양한 배포판을 기반으로 (딥러닝부터 데이터베이스 업무에 이르기까지) 다양한 용도로 활용할 수 있는 인기 높은 이미지다. 최신의 기능은 물론 공식적인 지원을 제공한다
AWS 마켓플레이스 AMI
SAP 및 Cisco를 포함해 수많은 기업용 소프트웨어 벤더가 지원 및 제공하는 AWS 공식, 상용 이미지이다.
커뮤니티 AMI
AWS 커뮤니티에는 100,000개 이상의 이미지가 있으며, 이들 중 상당 수는 독립적인 벤더에 의해 특수한 목적에 적합하도록 개발 및 배포된다. 소프트웨어 리소스의 커스텀 조합으로 애플리케이션을 빌드할 계획이라면 커뮤니티 AMI 카탈로그에서 먼저 찾아보기 바란다.
프라이빗 AMI
급증하는 사용자의 요구 수준에 맞춰 직접 일정한 수의 인스턴스로 확장할 수 있는 AMI를 만들어서 사용할 수 있다. 검증 과정을 거친, 신뢰할 수 있는 인스턴스 이미지를 AMI로 사용해 오토스케일링 작업을 좀 더 쉽게 처리하는 것도 가능하다. 이렇게 만든 이미지는 AMI로 공유하거나, AWS VM Import/Export 도구를 이용해 로컬 인프라에서 VM으로 임포트해서 사용할 수 있다.
범용타입
- A1, T3, T3a, T2, M6g, M5, M5a, M5n, M4
컴퓨트 최적화
- C5, C5n, C4
메모리 최적화
- R5, R5a, R5n, X1e, X1, High Memory, z1d
가속 컴퓨팅
- P3, P2, Inf1, G4, G3, F1
스토리지 최적화
- I3, I3en, D2, H1
Virtual Private Cloud(이하 VPC)
는 사용이 간편한 AWS 네트워크 생성 및 관리도구이자 클라우드 인프라 관리 도구다. VPC를 통해 인스턴스를 다른 환경 요소와 쉽게 격리시킬 수 있으며, 개별 프로젝트마다 새로운 VPC 환경을 생성해서 사용할 수 있다.
EC2 인스턴스를 론칭할 때 테넌시 모델을 선택할 수 있다. 기본 설정은 공유 테넌시(Shared tenancy)
이며 이는 인스턴스가 하나의 물리적 서버에서 다른 인스턴스와 동시에 실행되고 있음을 의미하며 이와는 반대로 물리적으로 격리된 전용의 서버를 제공하는 전용 인스턴스(Dedicated Instance)
옵션을 선택할 수 있다. 전용 호스트(Dedicated Host)
옵션은 좀 더 엄격한 보안 규정 및 라이센스 요구 사항을 준수해야 하는 경우에 적합하며, 전용의 물리적 서버를 할당받아 사용한다.
EC2 플레이스먼트 그룹(Placement Groups)은 사용자의 니즈를 반영한 서버 프로필을 정의할 수 있는 도구이며, 클러스터(Cluster) 플레이스먼트 그룹
, 스프레드(Spread) 플레이스먼트 그룹
, 파티션(Partition) 플레이스먼트 그룹
이 있다.
EC2 인스턴스는 온디맨드
, 예약
, 스팟
등 세 가지 가격 모델 가운데 하나를 구매해서 사용할 수 있다. 온디맨드 모델
은 실행 시간당 비용을 지불할 수 있으므로 12개월 이내일 경우, 예약 인스턴스
는 1년 이상의 기간 동안 항상 서버를 운영할 계획이 있는 경우, 전체 비용을 일시에 지불하거나 기간 내 점증형으로 비용을 부담하거나 또는 일부는 일시불로, 나머지는 월별 비용으로 낼 수 있고, 전체 비용을 월별로 나눠서 부담할 수 있다. 고성능의 인스턴스가 필요한 경우 스팟 인스턴스
가 비용을 절감하는 데 도움을 준다. 시간당 최고 입찰가를 넘어서는 또 다른 입찰자가 나타나기 전까지 사용할 수 있다.
AWS의 계정에 다수의 리소스를 배포하게 될 경우 태그를 적절히 사용하여 리소스의 가시성을 높이고 좀 더 쉬우면서 효과적으로 리소스를 관리할 수 있고 감사 업무 및 비용 관리 업무에 도움이 될 수 있다.
하나의 인스턴스에는 다수의 Elastic Block Store(이하 EBS)
를 부착할 수 있으며, 이들 스토리지 볼륨은 기존의 물리적인 서버에 있는 하드 드라이브, 플래시 드라이브 또는 USB 드라이브처럼 사용할 수 있다. EBS 볼륨 타입에는 네 가지가 있으며 두 가지는 SSD기반
, 나머지 두 가지는 HDD기반
기술을 사용한다. 타입에는 프로비전 IOPS SSD
, 범용 SSD
, 처리량 최적화 HDD
, 콜드 HDD
가 있다.
하나의 인스턴스에 다수의 인스턴스 스토어 볼륨을 추가하려면 그에 적합한 인스턴스 타입부터 선정해야 하며, 이는 배포 모델 설계 시 매우 중요한 고려사항이다.
인스턴스 재부팅에도 데이터가 소실되지 않게 하거나 AMI에서 생성된 그대로 인스턴스를 사용하는 경우, EBS 볼륨
이 좀 더 나은 선택이 될 수 있고 재부팅으로 인한 데이터 소실 가능성보다 고속의 데이터 입출력 및 처리가 중요한 경우 인스턴스 스토어
도 좋은 대안이 될 수 있다.
EC2는 보안을 위해 시큐리티 그룹
, IAM 롤
, NAT 인스턴스
, 키 페어
등 네 가지 도구를 제공한다.
애플리케이션 실패 및 복구 상황을 방지하기 위한 서비스로서 실패 상황 발생시 사용자가 미리 지정한 수만큼의 EC2 인스턴스를 프로비저닝하고 시작하며, 요구 수준에 맞춰 인스턴스의 수를 동적으로 추가할 수 있는 EC2 Auto Scaling 서비스는 론치 환경설정
또는 론치 템플릿
을 이용해 시작할 인스턴스의 환경을 자동으로 설정할 수도 있다.
실패 대응 전략의 베스트 프랙티스는 다양한 상황에 적용할 수 있는 소수의 구체적인 복구 방안을 마련해 두는 것이다. 인스턴스는 메모리 고갈, 버그, 삭제된 파일, 격리 네트워크 실패 등 다양한 원인으로 문제에 직면하지만 이들 대부분의 문제는 Auto Scaling을 이용해서 인스턴스 종료 및 대체라는 방법으로 간단하게 해결할 수 있다. 즉, 원인별로 다양한 해결책을 적용하는 것보다는 좀 더 간단하고 확실한 해법을 사용하는 것이 효율적이다.
Auto Scaling은 요구 수준에 맞춰 다양한 인스턴스 스케일링 옵션을 제공한다. 인스턴스 스케일링 옵션에는 수동 스케일링(Manual Scaling)
, 동적 스케일링 정책(Dynamic Scaling Policies)
, 단순 스케일링 정책(Simple Scaling Policies)
, 단계별 스케일링 정책
, 목표 추적 정책
등이 있다. 워크로드 패턴이 예측 가능한 경우나 용량 변화에 선제적으로 대응해 수요 증가 이전에 충분한 인스턴스를 확보하고자 할 때 유용한 Scheduled Actions
를 동적 스케일링 정책과 결합하여 사용할 수도 있다.
앞서 EC2 Systems Manager 또는 Simple Systems Manager(SSM) 등으로 알려졌던 AWS Systems Manager는 운영 측면에서 수작업 및 스크립트 작성 등이 필요한 유지보수 작업을 돕는다. 주요 기능은 액션(Actions)
과 인사이트(Insights)
등이 있다. 액션
을 이용해서 자동 또는 수동으로 개별적 또는 일괄적으로 AWS 리소스에 대한 각종 작업을 수행하며 인사이트
는 AWS 리소스에 대한 헬스, 컴플라이언스, 운영 세부 사항 정보를 AWS Systems Manager라는 단일 영역에 집약시킨다.
액션에는 아래처럼 3가지 타입으로 분류된다.
자동화(Automation) 액션
: AWS 리소스에 대한 작업을 수행
명령(Command) 액션
: Linux 또는 Windows 인스턴스에 대한 작업을 수행
정책(Policy) 액션
: 관리중인 인스턴스로부터 목록 데이터를 수집하는 과정을 정의