AWS EC2
아마존에서 가장 인기 있는 서비스이다.
Elastic Compute Cloud 이며, Infrastructure as a Service 의 일환이다.
EC2 설정 옵션에는 다음 항목이 있다.
- OS : Linux, Windows, or Mac
- CPU : How much compute power
- RAM : How much random-access memory
- How much storage space
- Network-attached (EBS&EFS)
- hardware (EC2 Instance Store)
- Netowrk card : speed, public IP address
- Firewall rules : security group
- Bootstrap script : EC2 User Data
EC2 User data 스크립트를 사용하여 인스턴스 머신이 작동될 때 명령을 실행시킬 수 있다.
EC2 Instance Types
- General Purpose
- 웹서버나 코드 리포지토리로 쓰기 좋다.
- Compute Memory Network 간 밸런스가 있다.
- T나 M으로 시작하는 네이밍
- Compute Optimized
- high performance process가 필요한 작업에 좋다
- 배치 프로그래밍, 미디어 트랜스코딩, 데디케이티드 게이밍 서버 등
- C로 시작하는 네이밍
- Memory Optimized
- 대규모 데이터셋을 처리하는 작업에 좋다
- 데이터베이스, 분산 캐시 저장소, 인메모리 데이터베이스 등
- R이나 X, Z로 시작한다
- Storage Optimized
- 로컬 스토리지에서 대규모의 데이터셋을 가져와야 할때 좋다.
- OLTP 시스템, 데이터베이스, 데이터 웨어하우싱, 분산 파일 시스템 등
- I, G, H로 시작하는 네이밍
Security Group : 보안 그룹
네트워크 보안을 실행하는 데 핵심이 된다.
EC2 인스턴스에 들어오고 나가는 트래픽을 제어하는 방화벽이다.
인바운드가 허용되면 그 대상으로의 아웃바운드도 허용된다. (stateful)
IP 주소나 다른 Security Group 을 대상으로 규칙을 정한다.
- 포트 접근
- IP 주소 범위
- 인바운드 제어
- 아웃바운드 제어
여러 인스턴스에 부착될 수 있고, 인스턴스 또한 여러 보안 그룹을 부착할 수 있다.
리전과 VPC에 속해있으므로 다른 곳에서는 사용이 불가하다.
타임아웃이 뜨는 경우 보안 그룹 문제, 연결 거부나 에러인 경우 어플리케이션이나 인스턴스 문제일 것이다.
Classic Ports to know
- 22 : SSH & SFTP
- 21 : FTP
- 80 : HTTP
- 443 : HTTPS
- 3306 : Database
- 3389 : RDP
EC2 인스턴스 역할
EC2 인스턴스 내에서 AWS CLI등 AWS 작업을 진행할 때 CLI에 configure
를 이용하여 access key and secrets를 입력하는 것은 매우 위험하다.
대신, IAM Role을 EC2 인스턴스에 부착하여 해당 명령을 access key 없이 실행하게 할 수 있다.
인스턴스 선택 옵션
On Demand : 온 디맨드
Linux 나 Windows에서는 비용이 초당 청구되고, 기타 OS에서는 시간당 비용이 청구된다.
클라우드에 가장 적합한 방식으로서, 선결제나 장기 약정이 필요 없다.
어플리케이션 작동 방식을 예측 불가한 단기 워크로드에 적합하다.
Reserved : 예약 인스턴스
일정 기간동안 사용을 약정하여 할인을 받는 인스턴스
어플리케이션이 안정된 상태로 사용되는 데이터베이스 등에도 적합하다
- Reserved Instance
- 장기 워크로드에 적합
- Convertible Reserved Instances
- 시간이 지난 후 다른 종류의 인스턴스로 변경 가능
- Scheduled Reserved Instances
- 특정 주기를 기반으로 장기적으로 필요한 작업에 적합
- Deprecated
Spot : 스팟 인스턴스
가장 저렴한 단기 워크로드용 인스턴스
손실 가능성이 있으며 신뢰성이 낮다.
설정한 최대 지불 가능 가격이 현재 스팟 가격보다 낮다면 인스턴스가 중단된다.
단발성 데이터 분석, 배치 작업, 이미지 프로세싱, 분산된 워크로드에 적합하다.
만일 스팟 가격이 지불가능 가격보다 높아지면, 2분의 유예 시간 후 인스턴스를 중지하거나 종료할 수 있다.
스팟 블럭을 이용하면 1-6시간동안 간섭 없이 스팟 인스턴스를 사용할 수 있다. (deprecated)
스팟 인스턴스의 종료
스팟 요청에는 원하는 사양과 최대 지불 가격 등의 유형이 포함된다.
요청이 만일 one-time 요청이라면 interrupt 발생 시나 작업 종료시 종료되고, persistent라면 다시 spot request 상태로 돌아온다.
스팟 요청을 취소하면 기존에 있던 인스턴스는 종료되지 않기에 직접 관리해야 한다.
따라서 스팟 요청을 먼저 삭제 후, 스팟 인스턴스를 종료해야 한다.
스팟 플릿
한 세트의 스팟 인스턴스에 선택적으로 온디맨드 인스턴스를 결합시키는 것이다.
정의된 비용 제한 내에서 대상 용량을 맞추려고 노력한다.
스팟 플릿의 전략에는 다음 항목이 있다.
- lowest Price
- 스팟 플릿이 가장 적은 비용을 가진 풀에서부터 인스턴스를 실행한다.
- 가장 저렴하고 짧은 워크로드에 적합하다.
- 가장 저렴한 스팟 인스턴스 가격을 맞춰주므로 더욱 경제적이다.
- diversified
- 기존에 정의한 모든 풀에 걸쳐 인스턴스를 실행한다.
- 긴 워크로드에 적합하고 가용성이 뛰어나다.
- capacityOptimized
- 인스턴스의 개수에 따라서 최적 용량으로 실행이 되고 적절한 풀을 찾아준다.
Dedicated Host : 전용 호스트
물리적 서버 전체를 예약하고 인스턴스 배치를 예약한다.
규정 요건 준수나 소프트웨어 라이선스에 따라 적합할 수도 있다.
Dedicated Instance : 전용 인스턴스
전용 하드웨어에서 실행되는 EC2 인스턴스
같은 계정의 다른 인스턴스와 하드웨어를 공유한다.
인스턴스가 어떻게 배치되는지는 간섭할 수 없다.
Dedicated Host의 약한 버전이다.
Elastic IP
EC2인스턴스를 중지하고 시작할때, public IP가 설정될 수 있게 한다.
계정당 5개의 EIP를 사용할 수 있다. (요청시 증가 가능)
단, DNS 에 random public IP를 연결해서 서로 통신하는것이 가장 권장되는 방법이다.
Placement Groups : 배치 그룹
배치 그룹은 EC2 인스턴스가 AWS 인프라에 어떻게 배치되고 싶은지 설정할 때 사용한다.
세 가지 전략이 존재한다.
Cluster : 클러스터
단일 가용 영역 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스를 그룹화한다.
같은 가용 영역 내의 같은 랙에 존재한다.
10Gbps 대역폭의 인스턴스간 네트워크를 제공한다.
랙에 실패가 발생하면 모든 EC2 인스턴스에 문제가 생긴다.
따라서 빅데이터 작업이나 저지연성, 혹은 높은 대역폭의 작업이 적합하다.
Spread : 분산
인스턴스가 다른 하드웨어들에 분산되는 것을 의미한다.
가용 영역당 7개의 EC2 인스턴스 개수 제한이 있다.
하드웨어나 인프라 실패의 위험을 최소화할 수 있다.
Partition : 분할
분산 배치 그룹과 유사하지만, 여러 파티션에 인스턴스가 분할되어 있고, 가용 영역 내의 다양한 하드웨어 랙에 전재한다.
인스턴스가 여전히 분리되어있기는 하지만, 다른 실패로부터는 격리되어있지는 않다. 다만 실패된 파티션과는 분리된다.
가용 영역당 7개의 파티션이 있을 수 있으며, 설정으로 최대 수백 개의 EC2 인스턴스를 얻을 수 있다.
파티션이 하나가 다운되어도 다른 파티션은 정상적으로 유지된다.
HDFS, HBase, Cassandra, Kafka 등의 빅 데이터 어플리케이션에 적합하다.
ENI : 탄력적 네트워크 인터페이스
VPC의 논리적 구성 요소이며, 가상 네트워크 카드를 나타낸다.
각 ENI는 다음 속성을 가질 수 있다.
- 주요 사설 IPv4와, 보조 사설 IPv4
- One Elastic IP per private IPv4
- One Public IPv4
- One or more security groups
- MAC address
ENI는 특정 가용 영역에 국한된다.
이는 탈부착이 가능하기에 장애 대응에도 적합하다.
EC2 Hibernate : 절전 모드
인스턴스를 중지하면, EBS 디스크 데이터는 다시 시작할 때까지 그래도 유지된다.
인스턴스를 종료하면, 설정에 따라 EBS 디스크의 데이터가 삭제되고 EBS가 사라지게 된다.
EC2 Hibernate 인스턴스는 다음 특징을 가진다.
- RAM에 있던 인 메모리 상태는 그대로 보존된다.
- 부팅이 더욱 빨라지게 된다.
- RAM 상태는 루트 EBS 볼륨에 저장된다.
- EBS 볼륨은 암호화되어야 한다.
오래 작동하는 프로세스를 다루거나, RAM을 보존하고, 초기화가 오래 걸리는 인스턴스에 적합하다.
절전 모드의 데이터는 최대 60일간 보존된다.
EC2 Advanced
EC2 Nitro
새로운 가상화 기술을 사용하는 차세대 EC2 인스턴스의 기본 플랫폼
- 더 빠르고 다양한 네트워킹 지원
- 더 빠른 EBS
- 보안 향상
최신의 새로운 인스턴스는 Nitro 기반 인스턴스이다.
vCPU
CPU안에는 여러 개의 스레드가 포함되고 이들 각각은 vCPU로 칭해진다.
소프트웨어 라이선스나 코어당 스레드 수에 종속되는 성능 등을 참고하여 인스턴스 생성 시 세밀하게 조절할 수 있다.
Capacity Reservation : 용량 예약
EC2인스턴스를 시작해야 할 때 비용 절감과 함께 필요한 용량을 미리 확보할 수 있게 해준다.
'공부한 이야기 > 클라우드' 카테고리의 다른 글
AWS SAA - Scalability & Availability (0) | 2022.08.02 |
---|---|
AWS SAA - EC2 Storages (0) | 2022.08.02 |
AWS SAA - IAM (0) | 2022.08.02 |
AWS SAA - Marked Questions III (0) | 2022.07.31 |
AWS SAA - Marked Questions II (0) | 2022.07.31 |