AWS에서 제공하는 서비스형 infrastructure이다.
하나의 서비스가 아니라 많은 것을 포함하고 있다.
Amazon EC2 인스턴스 유형 – Amazon Web Services
General Purpose(범용)
웹 서버나 코드 저장소와 같은 다양한 작업에 적합하다.
컴퓨팅, 메모리, 네트워킹 간의 균형도 잘 맞는다.
Compute Optimized(컴퓨팅 최적화)
고성능 프로세서가 필요한 집약적인 작업에 최적화된 인스턴스이다.
C로 시작하는 이름을 가진다.
Memory Optimized(메모리 최적화)
메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공한다.
Storage Optimized(스토리지 최적화)
로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스이다.
ex) m5.2xlarge
m - 인스턴스 클래스
5 - 인스턴스 세대
2xlarge - 인스턴스 클래스 내에서 크기
보안 그룹은 AWS 클라우드에서 네트워크 보안을 실행하는데 핵심
이 된다.
EC2 인스턴스에 들어오고 나가는 트래픽을 제어한다. 허용 규칙만 포함
한다.
통제 요소
특징
타임아웃이 발생하거나, 컴퓨터가 계속 멈추고 대기한다면?
➡️ 보안 그룹의 문제이다.
연결 거부 오류가 발생하면?
➡️ 보안 그룹은 실행되었고, 트래픽은 통과했지만 애플리케이션에 문제가 있거나 실행되지 않은 것이다.
EC2 인스턴스의 IP와는 상관없다.
올바른 보안 그룹에 연결되어 있기 때문에 다른 인스턴스를 통해서 바로 통신할 수 있다.
EC2 인스턴스에서 aws iam list-users
명령어를 입력하면 aws configure를 하라고 나온다.
하지만, 인스턴스에 자격증명을 넣으면 다른 사람이 들어와서 가져갈 수 있기 때문에 위험하다.
➡️ 이때, Role을 사용한다.
인스턴스에 원하는 권한을 가진 Role을 붙여주면 된다.
On-Demand(온디맨드)
필요한 대로 인스턴스를 실행할 수 있다. 단기적인 워크로드에 사용하기 좋다.
비용을 예측할 수 있고 초 단위로 요금을 지불하면 된다.
단기적이고, 중단없고, 워크로드를 예측할 수 없을 때 사용하면 좋다.
Reserved(예약)
1년이나 3년동안 예약해서 인스턴스를 사용할 수 있다.
Reserved Instance
장기간의 기간동안 사용할 때 사용할 수 있다.
오랫동안 데이터베이스를 실행할 계획이라면 이 인스턴스가 좋다.
Convertible Reserved Instance
시간이 지나고, 인스턴스 타입을 변경하기 원할 때 상요할 수있다.
Savings Plans(절약 플랜)
1년이나 3년동안 사용할 수 있다.
특정한 인스턴스 유형을 약정하는 게 아니라 달러 단위로 특정한 사용량을 약정하는 것이기 때문에 좀더 현대적인 방식이다.
사용량이 한도를 넘어서면 온디맨드 가격으로 청구를 하게 된다.
Spot(스팟)
아주 짧은 워크로드를 위한 것이다. 아주 저렴하다.
하지만 언제라도 그 인스턴스들이 손실될 수 있어서 신뢰성이 낮다.
AWS에서 가장 비용 효율적인 인스턴스이다.
→ 배치 작업이나 데이터 분석, 이미지 처리, 모든 종류의 분산형 워크로드
→ 시작 시간과 종료 시간이 유연한 워크로드
아주 중요한 작업이나 데이터베이스에는 적절하지 않다.
Dedicated Hosts(전용 호스트)
물리적 서버 전체를 예약해서 인스턴스 배치를 제어할 수 있다.
AWS에서 가장 비싼 옵션이다.
→ 라이선싱 모델과 함께 제공되는 소프트웨어(BYOL)
→ 규정이나 법규를 반드시 준수해야 하는 회사
Capacity Reservations(용량 예약)
원하는 기간 동안 특정한 AZ에 용량을 예약할 수 있다.
특정한 AZ에 있어야 하는 단기적이고 중단 없는 워크로드에 아주 적합하다.
리조트에 비유해 본다.
스팟 인스턴스를 사용하면, 온디맨드와 비교해 온디맨드와 비교해 최대 90%까지 할인
을 받을 수 있다.
어떤 스팟 인스턴스에 대해 지불할 의향이 있는 스팟 최고가를 정의한 후에 인스턴스의 비용이 최고가보다 낮은 한 인스턴스를 계속해서 사용한다.
: 한 세트의 스팟 인스턴스에 선택적으로 온디맨드 인스턴스를 조합해 사용하는 방식
스팟 플릿은 정의된 비용 제한 내에서 용량을 맞추려 노력한다.
사용 가능한 런치풀(Launch Pool)을 통해서 실행 된다. 다양한 인스턴스 유형, OS, 가용 영역을 가질 수 있다.
플릿이 가장 적합하고 좋은 런치풀을 선택한다.
정해진 예산이나 용량에 달하면 인스턴스 실행을 멈춘다.
스팟 플릿 내에 스팟 인스턴스를 할당해 줄 전략을 정의한다.