EC2 - Elasitc Compute Cloud, AWS에서 제공하는 서비스형 인프라스트럭쳐이다.
- EC2 Instance : 가상 머신 임대
- EBS : 데이터를 가상 드리어브나 EBS 볼륨에 저장
- ELB : 로드 밸런싱
- ASG : Auto Scaling Group을 이용해 서비스 확장
EC2 선택 사항
- OS : Linux, Windows, Mac
- CPU
- RAM
- 스토리지 : Network-attacked(EBS, EFS), Hardware(EC2 Instance Store)
- Network Card : EC2 인스턴스에 연결할 네트워크 종류, 속도, public IP
- Secutiry Group
- Bootstrap script : 인스턴스 구성, EC2 User Data를 이용해 인스턴스를 부트스트래핑 할 수 있다. 머신이 작동될 때 명령이 시작된다. 처음 시작할 때 한번만 실행되고 후에는 실행되지 않는다. 업데이트, 설치, 다운로드 등의 작업을 할 수 있다. 루트 계정에서 실행되므로 sudo를 사용해야 한다.
m5.2xlarge
m - instance class
5 - generation
2xlarge - instance size
General Instance - 웹 서버, 코드 저장소 같은 다양한 작업에 사용하기 좋다. 컴퓨팅, 메모리, 네트워킹의 밸런스가 좋다.
Compute Optimized - 집약적인 작업에 사용하기 좋다. 데이터 일괄 처리, 미디어 트랜스코딩, 고성능 웹 서버, 고성능 컴퓨팅, 머신러닝, 전용 게임 서버 등에 사용한다. C로 시작한다.
Memory Optimized - 대규모 데이터셋을 처리하는 작업에 사용하기 좋다. 고성능 관계형/비관계형 데이터베이스, 분산 웹 스케일 캐시 저장소, 비즈니스 인텔리전스에 최적화된 데이터베이스, 대규모 비정형 데이터의 실시간 처리를 실행하는 어플리케이션 등에 사용한다. R로 시작한다. X나 Z도 있다.
Storage Optimized - 로컬 스토리지에서 대규모의 데이터셋에 접근할 때 사용하기 좋다. 고주파 온라인 트랜잭션 처리 시스템, 관계형/비관계형 NoSQL 데이터베이스, 메모리 데이터베이스의 캐시, 데이터 웨어하우징 어플리케이션, 분산 시스템 등에 사용한다. I, G, H 로 시작한다.
Security Group - AWS에서 네트워크 보안의 핵심, 방화벽이다. EC2 인스턴스의 트래픽을 제어한다. 허용 그룹만 포함한다. IP 주소나 다른 보안 그룹을 기반으로 한다. 포트 접근을 제어한다. IP 주소 범위를 확인하고 인바운드, 아웃바운드 네트워크를 제어한다. 한 보안 그룹을 여러 인스턴스에 연결할 수 있다. 리전과 VPC에 영향을 받는다. 리전이 바꾸면 새로 생성해야 한다. EC2 외부의 방화벽이다. SSH 접속을 위해 별도의 보안 그룹이 있는 것이 좋다. 타임아웃으로 인스턴스에 접근할 수 없다면 보안 그룹 문제이다. connection refused는 보안 그룹은 통과했지만 어플리케이션에 문제가 있거나 실행되지 않는 등의 문제이다. 기본적으로 인바운드 트래픽은 차단되어 있고, 아웃바운드 트래픽은 허용되어 있다.
22 port - SSH(Secure Shell), EC2 인스턴스에 로그인하기 위해 사용한다.
21 port - FTP(File Transfer Protocol), 파일 업로드 및 공유에 사용한다.
22 port - SFTP(Secure File Transfer Protocol), SSH를 사용해 파일을 업로드하기 때문에 22번 포트를 사용한다.
80 port - HTTP, 보안이 되지 않은 사이트에 접속하기 위해 사용한다.
443 port - HTTPS, 보안 사이트에 접속하기 위해 사용한다.
3389 port - RDP(Remote Desktop Protocol), 윈도우 인스턴스에 로그인하기 위해 사용한다.
On Demand Instance - 단기 워크로드, 비용 예측 가능, 초 단위로 요금을 지불한다.
Reserved - 1년 또는 3년의 장기 워크로드 예약 인스턴스, 인스턴스 타입을 변경할 수 있는 Convertible 예약 인스턴스가 있다.
Savings - 1년 또는 3년 기간으로 특정한 인스턴스 유형을 특정 사용량을 약정한다.
Spot Instance - 초단기 워크로드로 매우 저렴하다. 언제든 인스턴스가 손실될 수 있어 신뢰성이 낮다.
Dedicated Hosts - 물리적 서버 전체를 예약해 인스턴스 배치를 제어할 수 있다.
Dedicated Instance - 다른 고객이 내 하드웨어를 공유하지 않는다.
Capacity Reservations - 원하는 기간동안 특정한 AZ에 용량을 예약할 수 있다.
Spot Instance - 어떤 스팟 인스턴스에 대해 지불할 의향이 있는 스팟 최고가를 정의한 후에 인스턴스 비용이 정한 비용보다 낮은 경우에 해당 인스턴스를 계속해서 사용할 수 있다. 스팟 최고가는 변동될 수 있다. 인스턴스 비용이 정한 비용보다 높아질 경우에 2분의 유예 시간이 주어진다. 인스턴스를 중단 후에 비용이 낮아질 때 다시 작업을 이어하거나 인스턴스를 완전히 종료할 수 있다. 스팟 블럭을 이용해 스팟 인스턴스가 회수당하지 않도록 설정할 수도 있다. 스팟 블럭은 특정 기간(1~6시간) 동안 인스턴스를 차단하는 기능이다. 현재는 스팟 블럭 기능은 종료되었다.
Spot Fleets - 한 세트의 스팟 인스턴스에 선택적으로 온디맨드 인스턴스를 조합해 사용하는 방식이다. 정의된 비용 안에서 용량을 맞춘다. 사용가능한 런치풀(Launch Pool) 을 통해 실행된다. Lowestprice는 스팟 플릿이 가장 적은 비용을 가진 풀부터 인스턴스를 실행해준다. 비용 최적화가 가능하다. diversified 옵션을 사용하면 기존에 정의한 풀에 걸쳐 분산된다. 가용성이 좋다. Capacity Optimized 는 인스턴스 개수에 따라 최적의 용량으로 실행되고 적절한 풀을 찾아준다.
'AWS > AWS Architect Associate' 카테고리의 다른 글
ELB, ASG (0) | 2023.05.21 |
---|---|
EBS, EFS (0) | 2023.02.06 |
EC2 - Associate Level (0) | 2023.02.06 |
IAM (0) | 2023.02.02 |
AWS 리전, 가용 영역 (0) | 2023.01.03 |