-
[AWS] AWS Certified Solutions Architect Study Guide 요약 (1부 2장)Cloud/AWS 2022. 3. 6. 23:18
2장. Elastic Compute Cloud(EC2), Elastic Block Store(EBS)
1. EC2(Elastic Compute Cloud)
- 물리 서버의 기능을 함축적으로 가상화한 것.
- EC2 시작 시 AMI(Amazon Machine Image)를 선택
* AMI 종류
(1) Amazon 빠른 시작 AMI
- 리눅스 배포판, Windows 서버 OS, 딥러닝, DB 등 공통 작업 수행을 위한 특수 이미지 포함
(2) AWS Marketplace AMI
- 프로덕션 환경(실제 서비스 배포)에서 쓸 수 있는 공식 이미지
- SAP/시스코 같은 공급업체가 제공 및 지원
(3) 커뮤니티 AMI
- 10만 개 이상의 이미지 존재
- 대부분 독립 공급업체가 제작 및 관리
- SW 리소스를 사용자 정의로 조합해 애플리케이션을 구축할 계획이라면 검색으로 SW가 설치된 AMI 탐색 가능
(4) 프라이빗 AMI
- 사용자가 배포한 인스턴스를 이미지로 생성한 것
- 인스턴스 숫자를 늘릴 때 안정적인 확장 가능
- AWS VM Import/Export 도구로 S3에 VM 전송 가능
* 인스턴스 유형
(1) 범용
- 컴퓨팅, 메모리, 네트워크 리소스를 균형 있게 제공 (T3, T2, M5, M4)
- 일부 M 인스턴스는 실제 호스트 서버에 물리적으로 연결된 내장 인스턴스 스토리지 드라이브도 함께 제공
(2) 컴퓨팅 최적화
- 웹서버, 고성능 머신러닝 워크로드에 사용 (C5, C4)
(3) 메모리 최적화
- DB, 데이터 분석, 캐싱 작업에 유용(X1e, X1, R5, R4, z1d)
- X1e, X1, R4는 최대 3TB DRAM 기반 메모리와 짧은 지연시간을 가진 SSD 스토리지 볼륨 제공
(4) 가속화된 컴퓨팅
- GPGPU(고성능 범용 그래픽 처리 장치) 제공
- 3D 시각화/렌더링, 재무 분석, 전산 유체 역학 같은 높은 부하의 워크로드에 사용 권장(P3, P2, G3 F1)
(5) 스토리지 최적화
- 지연시간이 짧은 대용량 인스턴스 스토리지 볼륨 사용
- 최대 볼륨 크기는 16TB
- D2의 경우 저속 HDD 스토리지를 최대 48TB 제공
- 분산 파일 시스템, 큰 규모의 데이터 처리 애플리케이션에 유용 (H1, I3, D2)
* 인스턴스 환경 구성
(1) AWS 리전
- 주로 사용자에게 근접한 리전을 사용
- 법적 규제를 받는 데이터를 사용할 경우 규정 준수 요구에 적합한 리전을 선택
- 리전마다 서비스의 기능, 특징, 비용이 다르므로 공식 문서 참고
(2) VPC(Virtual Private Cloud)
- 인스턴스끼리 쉽게 분리 가능한 가상의 공간
- 프로젝트의 단위나 단계별로 만들어서 사용 가능
- NAT 게이트웨이, VPC 연결을 사용하지 않는다면 비용은 없음
(3) 테넌시
- 기본 설정은 공유 테넌시로 다른 계정의 인스턴스와 동일한 물리 서버를 사용하는 상태
- 조직 규정에 따라 물리 서버를 분리할 필요가 있다면 전용 인스턴스 선택 가능(단, 비용이 비쌈)
* 인스턴스 동작 구성
- 인스턴스 구성 단계에서 사용자 데이터를 지정해서 부팅 시 명령을 실행할 수 있음(부트스트랩)
- 이는 작성된 스크립트 파일을 지정하거나 CLI 환경에서 user-data값을 사용해서 구성 가능
- 웹 서버 설치 등 간단한 명령에서부터 정교한 스크립트까지 다양하게 구성 가능
* 인스턴스 요금
(1) 온디맨드
- 가장 유연하게 EC2를 쓸 수 있는 유형
- 사용한 시간만큼 비용이 발생
- 하지만 다른 유형에 비해서 시간당 요금이 비싼 편
(2) 예약
- 1년/3년 단위로 기간 약정해서 비용을 대폭 할인받을 수 있음
- 전체를 선결제하거나, 일부만 선결제하고 남은 비용을 월 단위로 결제하거나 전체 월 단위 결제도 가능
(3) 스팟
- 갑자기 중단되어도 크게 지장이 없는 워크로드에 사용
- 특정 리전 인스턴스 유형을 입찰하여 그 금액이 리전 시간당 요금보다 많으면 인스턴스 시작
* 인스턴스 생명주기
- 인스턴스가 종료되면 기본 스토리지(인스턴스 스토어) 데이터는 삭제됨
- 데이터를 보존하려면 EBS를 사용
- 인스턴스에 부여된 임시 퍼블릭 IP는 인스턴스 재시작 시 바뀜
- 따라서 이를 고정하려면 Elastic IP를 사용
* 리소스 태그
- AWS 모든 리소스에 태그를 달 수 있으며 태그는 키-값 쌍으로 구성
- 특정 태그 규칙을 사용하여 리소스를 효율적으로 관리 가능
* 서비스 할당량
- 서비스마다 계정에서 사용할 수 있는 개수가 제한되어 있기도 함
- 계정당 제한된 개수보다 많이 필요하다면 AWS에 요청 후 가능
2. EC2 스토리지 볼륨
* Elastic Block Storage
- EBS는 필요한 수만큼 인스턴스에 연결 가능
- 99.999%의 가용성을 보장하며 장애가 발생하더라도 인지하기 전에 중복 저장에 의한 복구가 진행될 것
(1) EBS 프로비저닝 된 IOPS SSD
- 고성능 I/O 작업이 필요할 때 최대 32,000 IOPS 및 500MB/s 처리량 제공
(2) EBS 범용 SSD
- 일반 서버 워크로드에는 짧은 지연 시간 성능을 제공하는 범용 SSD가 적합
- 리눅스 인스턴스에서는 8GB 부팅 드라이브로 사용
(3) 처리량 최적화 SSD
- 로그 처리, 빅데이터 처리 등 처리량이 많은 데에 적합
- 500 IOPS지만 비용이 저렴
(4) 콜드 HDD
- 액세스가 적은 대용량 데이터 작업에 적합
(5) EBS 볼륨 기능
- 모든 EBS 볼륨은 스냅샷을 통해 복사 가능
- 기존 스냅샷을 다른 인스턴스에 공유해서 연결 가능
- AMI로 등록할 수 있는 이미지로 변경 가능
- 실행 중인 인스턴스에 연결된 EBS 볼륨에서도 직접 AMI 이미지 생성 가능
- 데이터 손실이 없게 하려면 인스턴스 운영 체제를 종료하고 이미지를 생성하는 것이 좋음
- EBS 볼륨을 암호화해서 인스턴스가 저장, 송수신하는 데이터 보호
- 내부에서 암호화 키를 자동으로 관리하거나 AWS KMS에서 제공되는 키 사용
* 인스턴스 스토어 볼륨
- 인스턴스를 호스팅하고 있는 물리 서버에 고속 NVMe 인터페이스로 연결된 SSD
- 인스턴스 요금에 포함되어 있고 별도 요금은 없음
- 단기 역할 수행(Auto Scaling 된 인스턴스)이나 데이터 처리 후 폐기하는 배포 모델에 적합
* 인스턴스 액세스
- 모든 인스턴스는 기본적으로 최소 한 개의 프라이빗 IPv4 주소가 할당됨
- 프라이빗 서브넷에 생성된 인스턴스는 인터넷에 직접 연결 불가
- 인터넷 연결이 필요할 경우 네트워크 인터페이스를 만들어 인스턴스에 연결
- 장기적인 배포를 위해서는 Elastic IP를 할당하는 것이 바람직
- 실행 중인 인스턴스가 연결되어 있기만 한다면 Elastic IP엔 비용이 부과되지 않음
※ 프라이빗 네트워크에 사용되는 세 가지 IP주소 범위
처음 주소 마지막 주소 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0 192.168.255.255 * EC2 인스턴스 보안
(1) 보안 그룹
- 방화벽 역할을 하며 기본적으로 모든 트래픽에 대해 거부되어 있음
- 트래픽을 규칙으로 제어 (원본 주소, 대상 주소, 대상 포트번호, 프로토콜 종류 등으로 제어)
(2) IAM Role
- Role은 리소스에 대해 접근 및 제어 권한을 부여
- 특정 사용자, 리소스에 Role을 할당하면 그 역할 정책에 포함된 리소스에 액세스 가능
- 인스턴스 자체에 Role을 부여해서 내부 프로세스가 인스턴스 외부 RDS 같은 외부 도구에 액세스하는 작업도 가능
(3) NAT 디바이스
- 제한적으로 인터넷 연결이 필요할 때 인스턴스에서 인터넷으로 향하는 트래픽을 라우팅
- NAT 인스턴스, NAT 게이트웨이를 제공해서 트래픽을 라우팅
- NAT 게이트웨이는 관리형 서비스로 직접 인스턴스를 시작, 유지 관리할 필요 없음
(4) 키 페어
- 퍼블릭 키를 인스턴스에 저장하고 프라이빗 키를 사용자 단말에 저장해서 접속을 관리
- 퍼블릭 키가 분실됐거나 노출됐다면 AWS에 저장된 키를 반드시 삭제해야 함
3. 기타 EC2 관련 서비스
* AWS Systems Manager
- AWS 클라우드, 온프레미스 인프라의 리소스를 모니터링, 관리하기 위한 도구
- AWS 리소스의 그룹 구성, 운영 상태와 동작을 시각화 도구로 제공
- 로그인 없이 직접 명령 실행, 패치 및 기타 수명 주기 이벤트 자동화
- 서비스 파라미터와 보안 액세스 관리 등의 작업 수행
* 배치 그룹
- 지연 시간이 짧은 네트워크 상호 연결이 필요한 여러 EC2 인스턴스에 유용
(1) 클러스터 그룹 : 단일 AZ 안에서 물리적으로 근접하고 서로 연결된 인스턴스를 시작
(2) 분산형 그룹 : 장애 관련 데이터나 서비스 손실 위험을 줄이기 위해 물리적으로 분리된 HW에 인스턴스 분산
* AWS Elastic Beanstalk
- 사용자가 파라미터를 정의하고 애플리케이션 코드를 올리면 AWS가 인프라를 구성, 실행 유지
- Beanstalk는 EC2 인스턴스 로드 밸런싱, Auto Scaling, RDS DB 인스턴스, 전체 네트워크 배치 등이 포함
- Beanstalk 미사용시 상기 항목들은 사용자가 직접 설치해야 함
- .NET, Java, Node.js, Python, Docker 등 언어 및 플랫폼과 호환, 인프라 외 추가 비용 없음
* AWS Elastic Container Service, AWS Fargate
- ECS로 미리 구축된 Docker 호스트 인스턴스를 시작하고 컨테이너가 작업하는 방법 정의 가능
- 컨테이너 자동화, AWS 리소스와 통합된 인프라에서 운영 가능
- Fargate는 ECS를 더욱 추상화하여 애플리케이션 패키징, 환경 요구 사항 설정만 수행하면 됨 (인스턴스 구성할 필요 x)
* AWS Lambda
- 사전 설정된 이벤트로 Lambda 서버를 트리거해서 코드 실행
- 서버 가동 비용은 없고 온디맨드로 작업을 수행
* VM Import/Export
- 온프레미스 VM, AWS S3로 VM 이미지를 쉽게 이동하고 간단하게 하이브리드 환경을 관리
- 효율적으로 클라우드 마이그레이션 가능
* Elastic Load Balancing, Auto Scaling
- ELB는 사용자 요청을 인스턴스에 효율적으로 분산해서 사용하게 함
- Auto Scaling은 사용자 수요에 맞춰 인스턴스를 자동으로 늘리거나 줄임
4. 실습 (추후 추가)
'Cloud > AWS' 카테고리의 다른 글
[AWS] AWS CLI 설치 및 간편 실습 (0) 2022.03.03 [AWS] AWS Certified Solutions Architect Study Guide 요약 (1부 1장) (0) 2022.02.26 [AWS] Solutions Architect(SAA-C02) 시험 준비/예약 (0) 2022.02.24