2장 EC2와 EBS
2장 Amazon Elastic Compute Cloud와 Amazon Elastic Block Store
2장의 목표
- 복원력은 갖춘 아키텍처 설계
- 안정적이고, 복원력을 갖춘 스토리지를 선택
- 어떻게 고가용성 및/ 또는 내결함성을 갖춘 아키텍처를 설계할지를 결정
- 성능이 뛰어난 아키텍처 정의
- 성능이 뛰어난 스토리지 및 데이터베이스를 선택
- 탄력성과 확장성을 갖춘 솔루션을 설계
- 안전한 애플리케이션 및 아키텍처 설명
- 어떻게 애플리케이션 티어를 보호할지를 결정
- 어떻게 데이터를 보호할지 결정
- 비용에 최적화된 아키텍처 설계
- 어떻게 비용에 최적화된 스토리지를 설계할지를 결정
- 어떻게 비용에 최적화된 컴퓨팅을 설계할지 결정
EC2 인스턴스
-
EC2는 물리 서버의 기능을 함축적으로 가상화한 실제 서버와 유사하게 작동
-
스토라지, 메모리, 네트워크 인터페이스가 새로 설치 된 기본 드라이브가 제공
EC2 Amazon Machin Image ( AMI )
- AMI란 EC2를 시작할 때, 루트 볼륨에 설치될 운영 체제와 소프트웨어를 기술한 템플릿 문서
- AMI의 종류
종류 | 설명 |
---|---|
Amazon 바른 시작 AMI | 자주 이용되는 Linux, Windows 등이 등록되어지고, 최신 버전으로 업데이트, 공식적으로 지원하는 이미지 |
AWS Marketplace AMI AWS Marketplace | AWS에서 공식적으로 지원하는 이미지이며, SAP, 시스코와 같은 공급업체가 제공 및 지원 |
Community AMI | 100.000개 이상의 이미지가 제공디고 있으며, 특정한 요구에 맞게 커스터마이징 된 이미지 |
Private AMI | 사용자가 자체 배포한 인스턴스에서 이미지를 생성해서 저장한 이미지, S3에 저장할 수 있으며, 이를 통해 As기능을 사용할 수 있다. |
EC2 Instacne Type
- AWS는 사용자가 선택한 하드웨어 프로파일, 즉 인스턴스 유형에 따라 하드웨어 리소스를 인스턴스에 할당한다.
- AWS를 이용하는 사용자는 자신의 니즈에 맞게 인스턴스의 유형을 사용함으로써 자원을 효율적으로 이용할 수 있다.
- 인스턴스의 유형은 자주 변경되며 AWS Instance Type에서 확인할 수 있다.
- EC2 인스턴스 유형 패밀리와 최상위 명칭
인스턴스 유형 패밀리 | 유형 |
---|---|
범용 | T3, T2, M5, M4 |
컴퓨팅 최적화 | C5, C4 |
메모리 치적화 | X1e, X1, R5, R4, z1d |
가속화된 컴퓨팅 | P3, P2, G3, F1 |
스토리지 최적화 | H1, l3,D2 |
- 범용 서비스 : 컴퓨팅, 메모리, 네트워크, 리소스를 균형 있게 제공하며, 리소스의 확장이 쉽다.
- M5, M4 : 주로 중소 규모 데이터 운영에 권장되며, M 인스턴스는 실제 호스트 서버에 물리적 연결된 내장 인스턴스 스토리지 드라이브와 함께 제공
- 컴퓨팅 최적화 : 대규모 요청을 받는 웹 서버와 고성능 머신 러닝 워크로드에 적합
- 메모리 최적화 : 처리량이 많은 데이터베이스, 데이터 분석, 캐싱 작업에 유용
- 가속화된 컴퓨팅 : 고성능 범용 그래픽 처리 장치(GPGPU)가 제공되어, 3D 시각화/ 렌더링, 재무 분석, 전산 유체역학 같은 고부하 워크로드 인스턴스에 적합
- 스토리지 최적화 : 지연시간이 짧은 대용량 인스턴스 스토리지 볼륨을 사용
AWS Region
- 사용자는 AWS의 데이터 센터의 서버를 이용할 것이며, 이는 지리적 리전으로 구성되어 있다.
- EC2 리소스느 사용자가 선택한 리전에서만 관리할 수 있으며, 각 리전에 따라 서비스와 기능은 물론 비용도 다르므로 최신 공식 문서를 확인해야한다.
Virtual Private Cloud ( VPC )
- VPC는 사용자가 사용할 네트워크 내부대역을 생성하는 것으로, 프로젝트 단위로 작업을 허용하기 유용하다.
- 다중 VPC를 생성해도 금액이 발생하지 않으며, NATgateway, VPN 서비스를 사용하는 경우에는 비용이 발생된다.
태넌시
- EC2 인스턴스를 시작할 때, 테넌시 모델을 선택할 수 있다.
- 기본 설정은 공유 테넌시이며, 여러 인스턴스가 한 물리 서버에서 동시에 가상 머신으로 실행된다.
인스턴스 동작 구성
- 인스턴스를 생성할 때, 이를 부트스트랩이라 하며, 스크립트 파일을 작성하거나, CLI에서 user-data 값을 사용하면 필요한 상태로 인스턴스를 구성할 수 있다.
인스턴스 요금
- 세 가지 모델 중에서 하나를 선택해 EC2 인스턴스를 구매해서 사용할 수 있다.
요금 모델 | 설명 |
---|---|
온 디맨드 | 사용자가 사용한 만큼만 비용이 발생하게 구성 |
예약 | 미리 사용량을 할당받아 정해진 만큼 지불하며, 1, 3년으로 구성 |
스팟 | 특정 리전에서 실행되는 인스턴스 유형에 대해 사용자가 최대 입찰 요금을 입력해서 인스턴스를 사용 |
리소스 태그
- AWS 계정에 리소스를 다수 배포할수록 추적이 어려워진다. 또한 다수의 VPC, 보안 그룸, 볼륨 등과 연계되면 복잡성은 한 층 더 강해진다.
- 이를 위해 AWS 계정에서는 리소스를 빠르게 식별할 수 있도록 리소스마다 목적 및 다른 리소스와의 관계 등을 정리할 수 있다.
- 리소스 태그는 키/ 값으로 구성된다.
키 | 값 |
---|---|
production-server | server1 |
production-server | security-grouop1 |
staging-server | server1 |
test-server | security-grouop1 |
서비스 할당량
- 한 리전당 생성할 수 있는 VPC의 수는 5개
- 허용된 키 페어의 수는 5.000개
- 그 외의 추가적인 제한은 AWS 최신 할당량 정보
EC2 Storage Voulme
- 볼륨은 스토리지 드라이브로, 물리 드라이브를 가상으로 나눈 공간을 의미한다.
- AWS에서는 여러 유형의 볼륨 드라이브가 있으며, 각 유형이 동작하는 방식이 달라 이해가 필요하다.
Elastic Block Store Volume ( EBS )
- EBS는 필요한 수 만큼 인스턴스에 연결할 수 있으며, 물리 서버의 하드 드라이브, 플래시 드라이브, USB 드라이브와 유사하게 사용된다. 물리 드라이브에서와 같이 어떤 EBS 볼륨 유형을 선택하느냐에 따라 성능과 비용은 달라진다.
- AWS SLA에서 99.999%의 가용성으로 충분한 안정성을 가지고 있다.
- EBS의 볼륨 유형
볼륨 타입 | 설명 |
---|---|
EBS 프로비저닝 된 IOPS SSD | 고성능 I/O 작업이 필요할 때 최대 32.000 IOPS와 최대 500MB/s 처리량을 제공한다. |
EBS 범용 SSD | 대다수 일반 서버 워크로드에서 사용되며, 이론적으로 짧은 징녀 시간 성능을 제공한다. |
처리량 최적화 HDD | 로그 처리와 빅 데이터 작업 등의 높은 처리량을 요구하는 워크로드에 적합한 성능을 저렴한 비용에 제공한다. |
콜드 HDD | 번번하게 엑세스하지 않는 대용량 작업에 콜드 HDD는 가장 낮은 가격에 제공한다. |
EBS 볼륨 기능
- 모든 EBS 볼륨은 스냅샷을 통해 복사할 수 있고, 기존 스냅샷을 다른 인스턴스에 공유해서 연결할 수 있으며, AMI로 등록할 수 있는 이미지로 변경할 수 있다.
- EBS 볼륨은 암호화해서 EC2 인스턴스가 저장하거나 송수힌 하는 데이터를 보호할 수 있으며, EBS에서는 내부에서 암호화 키를 자동으로 관리하거나 AWS KMS에서 제공되는 키를 사용할 수 있다.
인스턴스 스토어 볼륨
- 인스턴스 슽어 볼륨은 EBS 볼륨과는 다른 임시 디스크로, 디스크가 연결된 인스턴스가 종료되었을 때, 영구히 삭제된다.
- EBS 대신 인스턴스 스토어 볼륨을 사용하는 경우는 다음과 같다.
- 인스턴스 스토어 볼륨은 인스턴스를 호스팅하고 있는 서버에 물리적 고속 NVMe 인터페이스로 연결된 SSD이다.
- 인스턴스 스토어 볼륨 요금은 인스턴스 요금에 포함되어 있다.
- 인스턴스 스토어 볼륨은 단기 역할 수행이나 외부에서 데이터를 가져와서 처리 후, 폐기하는 배포 모델에 적합하다.
EC2 인스턴스 엑세스
- EC2 인스턴스는 네트워크에 연결된 모든 장치와 마찬가지로 고유한 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 인스턴스 보안
- 사용자에게는 무단으로 EC2 인스턴스가 사용되지 않도록 적절하고 효과적으로 엑세스 제어를 구성해야할 책임이 있다.
- AWS는 이를 위해 보안 그룹, IAM 역할, NAT 인스턴스, 키 페어 등 네 가지 도구를 지원한다.
보안그룹
- EC2 보안 그룹은 방화벽 역할을 한다.
- 보안 그룹의 기본 설정은 수신하는 모든 트래픽을 거부하며, 보안 그룹에 지정한 트래픽 유형만을 허용하는 정책 규칙을 설정한다.
- 보안그룹은 트래픽 유형만을 허용하는 정책 규칙을 설정하며, 네트워크에서 송수신하느 모든 데이터 패킷은 그 규칙에 따라 평가해서 허용 및 거부된다.
IAM
- IAM이란 루트 계정이 아닌, 다른 사용자를 생성하여 역할(권한)을 부여함으로써, 사용가능한 범위를 분리시키는 것
- IAM 역할을 사용해서 EC2 인스턴스를 비롯한 AWS 리소스에 엑세스 하는 것에 대한 제어가 가능
NAT 디바이스
- 인터넷이 항상 필요한 것이 아닌, 업데이트 등의 주기적으로 필요할 때만 인스턴스에 인터넷을 연결하도록 하는 서비스
- NAT 게이트 웨이 or NAT 인스턴스로 프라이빗 게이트웨이를 지정함으로써 사용할 수 있다.
키 페어
- 키 페어는 암호화방식으로 키 값을 생성 후, 페어에 맞는 키만이 인스턴스의 접속이 가능하도록 한다.
기타 EC2 서비스
AWS System Manager
- System Manager은 AWS 클라우드와 온프레미스 인프라를 운영하는 리소스를 모니터링 및 관리하기 위한 도구의 모음
배치 그룹
- 배치 그룹은 지연 시간이 짧은 네트워크 상호 연결이 필요한 여러 EC2 인스턴스에 효율적으로 사용된다.
- 클러스터 그룹은 단일 가용 영역 안에서 물리적으로 접근 및 서로 연결된 인스턴스로 시작
- 분산형 그룹은 장애 관련 데이터나 서비스 손실 윟머을 줄이기 위해 물리적으로 분리된 하드웨어 인스턴스를 분산
AWS Elastic Container Service와 AWS Fargate
- 대규모 Docker 컨테이너 기반에서 실행되는 애플리케이션은 본질적으로 AWS와 같은 플랫폼에 적합
- 미리 사용된 미리 구축된 Docker를 사용하여 다른 AWS 서비스와 연계하여 사용할 수 있음
AWS Lambda
- 서버리스 애플리케이션은 프로그래밍 코드 기반으로 실행
- 서버에서 동작하지만 사용자가 서버를 제어하는 대신, 사전 설정된 이벤트로 Lambda 서버를 트리거해서 코드를 실행 및 구성
VM Import/ Export
- Local의 VMware 이미지를 S3를 통해 AWS상에서 사용할 수 있게 하는 서비스
Elastic Load Balancing과 Auto Scaling
- 로드 밸런서는 효율적으로 트래픽을 관리하고 여러 EC2 인스턴스에 전송해 서버 리소스를 효율적으로 분산하여 사용하는 서비스
2장 요약
-
Amazon머신 이미지 ( AMI )를 선택하고 시작할 때 스크립트나 user data를 입력해서 EC2의 기본 소프트웨어 스택을 정의
-
인스턴스 유형으로 하드웨어 프로파일을 정하며, 태넌시 설정으로 다른 인스턴스와 물리적 호스트를 공유할 것인지를 결정
-
EC2 인스턴스를 비롯한 모든 AWS 리소스에 시스템 전반의 명명 규칙에 따라서 쉽게 식별할 수 있게 태그를 부여할 수 있다.
-
리소스의 제한이 있으머, 할당량을 넘는 리소스를 생성할 때에는 추가적인 신청을 해야한다.
-
1년 이상 인스턴스를 실행할 때, 온디매드 대신 예약 인스터느를 구매하며 크게 비용을 절약할 수 있다.
-
서비스가 끊끼는 게 중요하지 않은 경우, 스팟 인스턴스를 사용하는 것이 합리적이다.
-
EBS에는 4가지 볼륨 유형이 있다.
-
높은 IOPS와 짧은 지연 시간을 지원하는 두 가지 SSD 유형과 두 가지 기존 하드 디스크 드라이브 유형이 있다.
-
볼륨 선택은 워크로드와 예산에 따라 결졍되며, 인스턴스 유형에는 임시 인스턴스 스토어 볼륨이 사용된다.
-
일부 EC2 인스턴스 유형에는 임시 인스턴스 스토어 볼륨이 사용되는 데, 스토어 볼륨은 데이터 엑세스는 빠르지만 인스턴스가 종료되면 데이터가 종료된다.
-
-
모든 EC2 인스턴스는 최소 하나의 프라이빗 주소를 가지고 있으며, 인터넷 엑스세가 필요하면 임시 퍼블릭 IP 주소를 할당한다.
-
EIP를 통해 영구적인 IP를 할당할 수도 있다.
-
EC2 인스턴스를 보호하기 위해서 보안 그룹이라고 하는 소프트웨어 방화벽으로 액세스를 허용하거나 차단하고, IAM 역할, NAT 인스턴스/ 게이트웨이, 키 페어 등이 사용된다.
시험핵심
-
EC2 인스턴스를 프로비저닝하고 시작하는 방법을 이해한다.
-
워크로드에 적합한 하드웨어/ 소프트웨어 프로파일을 선택 방법을 이해한다.
-
EC2 요금 모델과 필요에 맞는 요금 선택 방법을 이해한다.
-
배포 프로파일에 맞게 보안과 액세스의 균형을 조절해서 보안 그룹을 구성하는 방법을 이해한다.
-
실행 중인 인스턴스에 액세스하는 방법을 이해한다.
-
스토리지 볼륨 유형의 기능과 작동을 이해한다.
-
스토리지 볼륨에서 스냅샷 생성 방법과 다른 인스턴스에 스냅샷을 연결하는 방법을 파악한다.