본문 바로가기
aws

AWS EC2 Instance 종류

by 초특급하품 2020. 4. 9.

AWS는 사용자 입맛에 맞게 시스템을 만들 수 있도록 아주 다양한 선택지를 제공해준다. 이 덕분에 비용에 대한 최적화도 쉽게 할 수 있다. 문제는 인프라를 구축하기도 벅차서 각 서비스마다 특성을 고려해서 만들기가 어렵다는 것이다. 하지만 웬만한 aws 서비스의 기본은 ec2 instance라서 이것의 종류와 생성 방법에 대해서만 알아도 많은 부분에 적용할 수 있다.

 

Instance Type

Instance type은 인스턴스 패밀리, 세대, 크기 등으로 구분해서 이름 지어진다.

 

가장 앞에 나타나는 인스턴스 패밀리는 계속 추가되고 있지만 자주 사용하는 패밀리는 다음과 같다.

 

  • R
    Ram 중심으로 메모리를 많이 사용하는 처리나 인메모리 디비 등에 사용한다.
  • C
    CPU 중심으로 고성능의 처리가 필요한 경우 사용한다.
  • I
    I/O 중심으로 IOPS가 높은 작업에 사용한다.
  • G, P
    GPU 중심으로 딥러닝이나 그래픽 등에 사용한다.
  • M
    각종 리소스가 균형 있게 할당된 타입으로, 범용적으로 사용한다.
  • T
    트래픽이 급증하거나 자원이 많이 소모될 때 burst모드로 좋은 성능을 내며 감당한다. 이러는 동안 credit는 줄어들고 전부 소진되면 CPU 성능이 떨어진다. 따라서 서비스에 문제가 생겼을 때 credit도 모니터링을 해야 한다.
    기준 성능보다 덜 사용하면 소진된 credit은 다시 점차 채워지고 다시 burst모드로 진입할 수 있다. 이게 불안하면 unlimited burst 모드도 있는데, 추가적인 비용이 계속 나가기 때문에 이런 경우라면 다른 instance type을 생각해보는 게 좋다.

인스턴스 세대는 아무래도 최신 타입을 선택하는 게 성능 대비 비용의 효율이 좋고, 인스턴스 크기는 8xlarge와 같이 표현하는데 이는 2xlarge보다 4배의 vCPU와 메모리를 가진다는 뜻이다. 필요한 성능 패턴에 맞게 크기가 큰 인스턴스를 사용할지, 크기가 작은 인스턴스를 여러 개 사용할지 선택한다.

 

 

Launch Type

인스턴스를 어떤 방법으로 생성할지 선택한다.

 

  • On-demand
    클라우드 환경답게 사용할 때만 빌리고 사용한 만큼만 과금한다. 아무 제약 조건이 없기 때문에 다른 방법에 비해서 저렴하다.
  • Reserved Instance
    인스턴스를 장기간 빌려 할인받는 방법이다.
    • RI: On-demand와 비교하면 최대 75% 저렴
    • Convertible RI: 빌려 놓은 기간 동안 instance type을 변경할 수 있다. 당연히 가격은 좀 더 비싸다.
    • Scheduled RI: 주기적으로 특정 시간에만 인스턴스를 사용한다.
  • Spot Instance
    aws에서 쉬고 있는 ec2 instance를 가격 경쟁을 통해 입찰해서 사용한다. 즉 내가 제시한 max price보다 spot price가 더 비싸지면 뺏길 수 있다. spot pool은 aws에서 관리하는데 공급이 부족하거나 다른 기타 이유로 언제든 중단될 수 있다.

    Spot Instance를 고르는 방법도 여러 가지가 있다.
    Fleet request를 통해 여러 instance type을 후보로 spot instance를 생성할 수도 있고, n개의 instance/vCPU를 할당받을 수도 있으며, 할당받은 spot instance가 뺏겼을 때에 대한 정책도 설정할 수 있다.

    싼 가격만큼 희생되는 게 가용성인데 다행인 점은 인스턴스를 중단시키기 전에 CloudWatch Event로 미리 알림을 받을 수 있기 때문에 이를 활용하면 On-demand 수준의 가용성을 구현할 수도 있다.
  • Dedicated Instance
    서로 다른 계정의 인스턴스와 물리적으로 격리된다
  • Dedicated Host
    Dedicated Instace에 추가적으로 소켓 / pysical core 수를 제공한다. 보통 이를 기반으로 계약하는 Lisence 이슈가 있을 때 사용한다.

 

Placement Groups

단순히 생성 요청하고 할당받지 않고, n개의 인스턴스를 어떤 배치로 할당받을지에 대한 정책도 세울 수 있다. 적절한 배치를 통해 낮은 latency, 고가용성 등의 이점을 얻을 수 있다.

  • Cluster
    하나의 AZ에 배치해 낮은 latency로 통신할 수 있다. 하지만 한꺼번에 문제가 생길 수 있는 위험이 있다. 
  • Spread
    최대 7개의 인스턴스를 다른 하드웨어에 배치해서 가용성을 높인다.
  • Partition
    Spread와 비슷한데 서로 다른 파티션에 속한 인스턴스가 하드웨어를 공유하지 않도록 배치한다. 논리적으로 나눈 파티션에 여러 대의 인스턴스를 할당할 수 있어 대규모 분산처리 등에 사용된다.

 

Metadata / Userdata

EC2 Instance 자체에서 EC2 자신에 대한 정보를 확인할 수 있다.

http://169.254.169.254/latest/meta-data/ 에서는 EC2 instance 정보를 보여준다. 이 ip 주소는 aws에서 관리하는 주소로 ec2에서만 접근할 수 있다. http://169.254.169.254/latest/user-data/ 에서는 인스턴스가 기동 될 때 사용하는 user data를 보여준다. 

'aws' 카테고리의 다른 글

AWS ElastiCache Redis  (0) 2020.04.11
AWS RDS와 Aurora  (0) 2020.04.11
AWS IAM 보안 정책  (0) 2020.04.07
DNS 과정과 route 53 사용법  (0) 2020.04.04
Security Group vs Network ACL 정리  (0) 2020.04.02

댓글