EC2
인스턴스 타입
운영체제, CPU, RAM, Storage, 네트워크 유형을 고를 수 있다.
범용 타입
웹 서버나 코드 저장소 등 다양한 작업에 적합하다.
CPU, Memory, Network 리소스가 균형 잡혀 있다.
컴퓨팅 최적화
배치 처리, 미디어 트랜스코딩, 고성능 웹서버, 고성능 컴퓨팅(HPC), 머신러닝, 전용 게임 서버 등의 작업에 적합하다.
C로 시작하는 이름을 가진다.
메모리 최적화
메모리에서 대규모 데이터를 처리하는 작업에 빠른 성능을 제공한다.
인메모리 데이터베이스, 분산 웹 스케일 캐시 저장소, BI(business intelligence)에 최적화된 인메모리 데이터베이스, 실시간 대규모 비정형 데이터 처리용 애플리케이션 등에 적합하다.
R로 시작하는 이름을 가진다.
스토리지 최적화
로컬 스토리지에서 대규모 데이터셋에 접근할 때 적합하다.
데이터베이스, OLTP(online transaction processing) 시스템, 데이터 웨어하우스 애플리케이션, 분산 파일 시스템 등에 적합하다.
특징
인스턴스를 중지했다가 다시 시작하면 public IPv4가 변경될 수 있다. private IPv4는 변경되지 않는다.
User Data
부트스트랩 스크립트를 이용해 처음 인스턴스를 구동할 때 어떤 작업을 할 지 설정할 수 있다.
업데이트 설치, 소프트웨어 설치, 인터넷에서 파일 다운 등이 가능하며 부팅 시 어떤 것을 수행할 지 설정할 수 있다. sudo 권한으로 수행된다.
보안 그룹
방화벽 규칙은 보안 그룹을 통해 설정할 수 있다.
인터넷에서 서버로 들어오는 인바운드 트래픽, 서버에서 외부로 나가는 아웃바운드 트래픽을 허용/차단할 수 있다.
여러 ec2 인스턴스에 적용될 수 있다. 즉, ec2와 1:1 관계가 아니다.
특정 region, VPC 조합에서만 사용할 수 있다. 따라서 다른 지역으로 전환 시 보안 그룹을 새로 생성해야 한다.
SSH 접근을 위해 별도 보안 그룹을 유지하는 것이 좋다.
임의의 포트에 타임아웃으로 인해 연결할 수 없다면, EC2 보안 그룹에 의해 막힌 것이다.
모든 인바운드 트래픽은 기본적으로 차단되고, 모든 아웃바운드 트래픽은 기본적으로 허용된다.
한 보안그룹에서 다른 보안 그룹들을 허용할 수 있다. 이를 통해 여러 인스턴스끼리 쉽게 통신할 수 있다.
일반적인 포트
22 : SSH - 리눅스 인스턴스에 로그인
21 : FTP - 파일 공유를 위한 업로드
22: SFTP - SSH를 이용한 파일 공유
80: HTTP
443: HTTPS
3389: Remote Desktop Protocol - 윈도우 인스턴스에 로그인
연결
SSH
SSH 연결을 위해서는 Key pair를 만들어야 한다.
다음 명령을 통해 ssh 접근을 할 수 있다. pem 파일이 위치한 디렉토리에서 명령을 실행해야 한다.
EC2 Instance Connect
AWS Console에서 Connect 버튼을 누르면 브라우저 상에서 CLI를 사용할 수 있다.
SSH 키를 관리할 필요가 없다.
IAM 역할
EC2에서 AWS 리소스 정보를 얻기 위해 IAM 역할을 연동시킬 수 있다.
EC2 인스턴스에 aws configure 명령으로 절대 access key를 입력해두면 안된다. EC2에 접근할 수 있는 어떤 유저이든 access key에 접근할 수 있기 때문이다.
구매 옵션
워크로드에 따라 적절한 옵션을 선택해야 한다.
On-Demand
단기 워크로드, 가격 예측 가능, 초 단위로 과금
선결제나 장기 약정이 필요 없다.
애플리케이션 동작을 예상할 수 없는 경우
Reserved
장기 워크로드에 적합
애플리케이션의 데이터베이스 등
인스턴스 유형, 리전, 테넌시, OS 등 특정 속성을 예약할 수 있다.
1, 3년 단위로 예약 가능
전환형 예약 인스턴스의 경우 인스턴스 유형, 패밀리, OS, 테넌시를 변경할 수 있다.
Saving Plans
장기 워크로드에 적합, 사용량 기반
시간 당 과금되는 액수를 1, 3년 단위로 예약 가능하다. (ex. 1년동안 500달러 쓸게~)
사용량을 초과하는 경우 온디맨드 가격으로 청구된다.
특정 리전과 제품군에 한해 사용 가능하다. ex) us-east-1 리전의 M5 장비
인스턴스 크기, OS, 테넌시는 변경 가능하다.
Spot Instances
서비스가 중단되어도 복구하기 쉬운 단기 워크로드에 적합
배치 작업, 데이터 분석, 이미지 프로세싱, 분산 워크로드, 시작 및 종료가 유동적인 워크로드
가장 저렴하다.
설정해둔 가격을 넘어가면 인스턴스가 즉시 종료될 수 있다.
Dedicated Hosts
물리 서버 전체를 예약하여 인스턴스 배치를 제어할 수 있다.
소켓, 코어, VM 소프트웨어 라이선스 마다 비용이 청구될 수 있다.
물리적인 서버를 예약하기 때문에 가장 비싸다.
복잡한 라이센싱 모델이 있거나 회사에서 강력한 규제와 규정 준수 요건이 있는 경우 적합하다.
저수준 하드웨어에 대한 가시성을 제공한다.
Dedicated Instances
전용 하드웨어 사용
사용자 하드웨어에 고유한 인스턴스를 갖는 것
같은 계정의 다른 인스턴스와 하드웨어를 공유할 수 있다.
인스턴스 배치는 제어할 수 없다.
Capacity Reservations
AZ의 특정 기간동안 얼마 만큼의 용량을 이용할 지 예약할 수 있다.
온디맨드 인스턴스가 실행중이든 아니든 용량 기반이므로 요금은 계속 나간다.
시간 약정이 없다.
특정 AZ에 존재하는 단기 연속적인 워크로드에 적합하다.
EBS
특징
Elastic Block Store
인스턴스가 실행중인 동안 연결 가능한 네트워크 드라이브
물리 드라이브가 아니다. 따라서 인스턴스와 EBS 볼륨이 통신하기 위해 네트워크 연결이 필요하다. 이로 인해 지연이 발생할 수 있다.
하지만 인스턴스가 내려가고 다른 인스턴스를 구동시켜야 할 때 다시 쉽게 붙일 수 있다.
CCP 레벨의 EBS는 한 번에 하나의 인스턴스에만 마운트 가능하다.
Associate 레벨의 경우 일부 EBS를 다중 연결 가능하다.
특정 AZ에만 바운드되어 사용 가능하다. 스냅샷을 이용하면 서로 다른 AZ 간 이동이 가능하다. (매핑할 EC2와 같은 AZ에 있어야 한다.)
사용할 용량을 미리 결정해야 한다.
EC2와 함께 삭제될 지 여부는 직접 설정할 수 있다.
루트 EBS 볼륨은 기본적으로 EC2 인스턴스가 삭제될 때 함께 삭제되도록 설정되어 있다. 다른 EBS 볼륨은 기본적으로 함께 삭제되지 않는다.
스냅샷
EBS 볼륨의 특정 시점에서의 백업
EBS 스냅샷을 다른 AZ 혹은 리전에 복사할 수 있다.
재해 복구 시에 AWS의 다른 리전에 데이터를 백업해둘 수 있다. 백업 시에는 IO를 사용하므로 애플리케이션에 많은 부하가 있을 때에는 진행하면 안된다.
AZ 간에 EBS 볼륨을 이동시키려면 스냅샷을 이용해야 한다.
ex) AZ-1에서 스냅샷 생성 -> AZ-2에서 스냅샷을 기반으로 EBS 볼륨 생성 후 사용
기능
스냅샷 아카이브
스냅샷을 75% 저렴한 아카이브 티어로 옮겨둘 수 있다.
아카이브된 스냅샷은 복원하는 데에 24~72시간 정도가 걸린다.
스냅샷을 휴지통 보관
실수로 스냅샷을 지웠을 때 복원할 수 있도록 한다.
휴지통에 스냅샷을 보관하는 기간을 Retention Rules로 설정 가능하다.
빠른 스냅샷 복원
스냅샷을 완전히 초기화한다.
스냅샷이 매우 클 때 EBS 볼륨을 초기화해야 하거나 매우 빠르게 인스턴스화해야 할 때 유용하다.
비용이 비싸다.
볼륨 유형
크기, 처리량, 초당 I/O 작업 수(IOPS)로 구분된다.
범용 SSD
gp2 / gp3
다양한 워크로드에 대해 가격과 성능의 균형을 맞추는 범용 SSD 볼륨
비용 효율적이다.
지연이 적고 시스템 부트 볼륨, 가상 데스크톱, 개발 및 테스트 환경에 적합하다.
gp3는 gp2보다 최근에 개발되었으며 IOPS와 처리량을 각각 독립적으로 설정할 수 있다.이 때 볼륨 크기와는 상관 없다.
gp2는 볼륨의 크기와 IOPS가 연관되어 있다. 즉, 볼륨 크기가 커져야 IOPS가 올라갈 수 있다.
둘 다 최대 16000 IOPS 까지 지원한다.
IOPS 프로비저닝 SSD
io1 / io2 Block Express
지연이 적고 처리량이 높은 워크로드에 적합한 가장 높은 성능의 SSD 볼륨 (프로비저닝 되어 있다.)
16000 IOPS 이상이 필요한 경우 사용해야 한다.
io1의 경우 기본 32000 IOPS, Nitro EC2 인스턴스와 함께 사용 시 64000 IOPS까지 지원한다.
io2의 경우 최대 256,000 IOPS까지 지원한다.
데이터베이스 워크로드와 같이 스토리지 성능과 일관성에 민감한 경우에 적합하다.
EBS 다중 연결 기능을 지원한다.
하드디스크 드라이브
st 1
자주 접근되고 처리량이 많은 작업을 위한 저비용 대용량 볼륨
빅데이터, 데이터 웨어하우스, 로그 프로세싱 등에 적합하다.
sc1
자주 접근되지 않는 데이터를 위한 가장 저렴한 HDD
EC2의 부팅 볼륨(OS의 루트가 실행되는 위치)으로는 gp2/gp3/io1/io2 만 사용 가능하다.
다중 연결
동일한 EBS 볼륨을 동일 AZ에 있는 여러 개의 EC2 인스턴스와 연결할 수 있다.
io1, io2 제품에서만 사용 가능하다.
각 EC2 인스턴스는 고성능 볼륨에 대한 동시 읽기 및 쓰기 권한을 갖게 된다.
클러스터링된 리눅스 애플리케이션 사용 시 가용성이 높아진다.
지정된 AZ에서만 사용 가능하다.
한 번에 최대 16개의 EC2 인스턴스에 연결 가능하다.
EC2 인스턴스 스토어
EBS 볼륨은 네트워크 드라이브이므로 확장성 이식성은 좋지만 성능이 제한되어 있다.
고성능의 하드디스크가 필요하다면 EC2 인스턴스 스토어를 사용해 같은 서버에 물리적으로 연결된 디스크 공간을 이용할 수 있다.
EC2 인스턴스가 중지되거나 종료되면 스토리지가 사라지므로 임시 스토리지로 부른다.
버퍼나 캐시, 스크래치 데이터, 임시 콘텐츠 등을 담아둘 수 있다.
EC2 인스턴스의 서버에 장애가 발생할 때(hardware fail) 데이터가 사라질 위험이 있다.
필요 시 주기적으로 백업하거나 복제해두어야 한다.
EFS
Elastic File System
수백개의 EC2 인스턴스에 마운트 가능한 네트워크 파일 시스템
기본적으로 여러 AZ에 분포된 EC2 인스턴스들에 마운트될 수 있다.
고가용성, 확장성을 지원하지만 EBS 볼륨에 비해 3배 정도 비싸다. 사용하는 데이터 용량(GB)에 따라 비용이 과금된다.
파일 시스템이 자동으로 petabytes 단위까지 확장되므로 미리 용량을 지정하지 않아도 된다.
콘텐츠 관리, 웹서비스 제공, 데이터 공유, 워드프레스 등을 위해 사용 가능하다.
NFS 프로토콜을 사용한다.
EFS에 대한 접근을 제어하기 위해서 보안 그룹을 사용해야 한다. 이는 EC2 생성 시 EFS와 연동하면 AWS가 자동으로 만들어준다.
Linux 기반 AMI와 호환된다. POSIX 파일 시스템을 사용하고 표준 파일 API를 가진다.
KMS를 사용해 암호화를 활성화할 수 있다.
모드
성능 모드
General Purpose (기본으로 활성)
웹서버, CMS 등 지연 시간에 민감한 경우 사용한다.
Max I/O
낮은 지연 시간, 많은 처리량, 병렬성이 필요한 빅데이터, 미디어 프로세싱 등에 사용한다.
처리량 모드
Bursting
파일 시스템의 사용 용량에 따라 처리량을 조금 더 확장할 수 있다.
버스팅 성능은 TiB 당 100MiBps가 제공된다.
Provisioned
스토리지 크기에 관계 없이 처리량을 지정할 수 있다.
ex) 1TB 스토리지에서 1 GiB/s의 처리량이 나오도록 지정
Elastic (추천)
워크로드에 따른 처리량 자동 조절
ex) 읽기는 최대 3GiB/s, 쓰기는 최대 1GiB/s가 되도록 지정
일정 주기로 실행되는 배치 작업으로 디스크에 접근하는 것이 아니라 특정 요인으로 인해 랜덤하게 접근되는 등 워크로드를 예측하기 어려울 때 유용하다.
스토리지 클래스
스토리지 계층
파일을 일정 시간을 기준으로 스토리지 계층 간 이동을 시키기 위해 수명 주기 정책을 구현할 수 있다.
Standard
자주 접근하는 파일을 위한 계층
Infrequenct access (EFS-IA)
자주 접근하지 않을 때 사용
파일을 조회 시 비용이 발생한다.
이 스토리지 계층을 이용해 비용을 절감시킬 수 있다.
Archive
1년에 n번 접근하는 경우
파일 시스템 타입
가용성과 지속성을 기준으로 두 타입으로 나뉜다.
Standard(Regional): multi AZ, 운영 환경에 적합하다.
One Zone: 하나의 AZ에서만 사용 가능하며 개발 환경에 적합하다. 백업이 기본적으로 활성화되어 있으며, 접근 빈도가 낮은 스토리지 계층인 EFS One Zone-IA와 호환된다.
AMI
Amazon Machine Image
사용자 지정 EC2 인스턴스를 의미한다.
각 소프트웨어 구성에 대한 설정 파일, OS, 모니터링 도구 등을 정의해 부팅과 설정 시간이 단축된다.
보안 소프트웨어, 필수 소프트웨어 등 EC2 인스턴스에 설치하고자 하는 소프트웨어가 AMI를 통해 사전에 패키징된다.
특정 리전에 맞도록 구축하고, 원하는 리전에 복사해놓을 수 있다.
EC2 인스턴스를 여러 종류의 AMI에 실행시킬 수 있다.
Public AMI: AWS가 제공하는 AMI
Custom AMI: 직접 사용자가 만들어서 유지하는 AMI
AWS Marketplace AMI: 마켓플레이스에서 특정 판매자가 만든 AMI
AMI 사용 과정
EC2 인스턴스를 시작하고 커스터마이즈한다.
인스턴스를 중지시켜 데이터 무결성을 확보한다.
AMI를 빌드한다. 이 때 EBS 스냅샷이 같이 생성된다.
다른 AMI들에 인스턴스를 실행할 수 있다.
Last updated