2장 Amazon EC2와 Amazon EBS

GonnabeAlright·2022년 3월 14일
0
post-thumbnail
AWS Certified Solutions Architect STUDY GUIDE 도서를 읽고 정리한 내용입니다.

EC2 인스턴스는 물리적 서버를 가상화 또는 추상화한 것으로 볼 수 있지만, 기능적으로는 실제 서버와 차이가 없다.

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으로 임포트해서 사용할 수 있다.

EC인스턴스 타입

  • 범용 타입, 컴퓨트 최적화, 메모리 최적화, 가속 컴퓨팅, 스토리지 최적화

패밀리타입

범용타입

  • 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

VPC

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) 액션: 관리중인 인스턴스로부터 목록 데이터를 수집하는 과정을 정의

0개의 댓글