AWS Certified Developer - EC2 (1)

Juls·2023년 12월 28일
0

AWS Certified Developer

목록 보기
4/6
post-thumbnail

시리즈의 이번 포스트는 AWS EC2 서비스이다. AWS의 가상 컴퓨팅 서버 인스턴스를 제공하는 IaaS 서비스로, 가장 기본적인 클라우드 서비스라고 볼 수 있다. EC2 서비스 내에 다른 서비스가 사용하는 ELB, ASG, TG 등의 요소가 남아있는 흔적을 보면, ECS, Lambda와 같은 서비스가 탄생하기 전부터 있었던 것 같다. 여기저기서 사용되는 요즘같은 시점에는 메뉴가 따로 존재해야할 것 같은데 말이다. 그만큼 EC2는 초기부터 있었던 가장 기본적인 서비스이며 다른 서비스를 알기 전 반드시 알고 가야할 서비스가 아닐까 생각해본다.(ELB, ASG, TG는 간단히 후술하고, 이후 다른 포스트에서 자세히 다루겠다)

EC2 개요

Full name은 Amazon Elastic Compute Cloud라고 한다. ECC인데 C가 2개여서 EC2라고 부른다(Simple Storage Service인 S3도 같은 방식의 약칭이다).

과금

  • 인스턴스가 작동하는동안의 시간을 기준으로 과금되는 구조이다.
  • 인스턴스 타입에 따라 상이한데, 일반적으로 성능이 좋은 타입일수록 매우 비싸다. 그래서 사용자들은 보통 작은 성능의 인스턴스를 ASG를 통해 분산 처리한다고 한다('scale-out'이라고도 한다).
  • 데이터 트래픽 요금도 존재하는데, 월별로 일정 트래픽까지는 무료이고, 이후 요금이 청구된다. 그러므로 데이터가 수시로 전송되는 인스턴스라면 네트워크 비용도 고려해야한다.

구성 요소

  • EC2: EC2 인스턴스를 생성하고 관리
  • EBS: Elastic Block Store Volume. EC2 인스턴스를 위한 네트워크 드라이브
  • ELB: Elastic Load Balancer. 로드밸런서의 관리
  • ASG: Auto-scaling Group. 자동스케일링의 설정과 그 그룹의 관리

EC2 User Data

  • User Data 스크립트를 통해 인스턴스를 bootstrap할 수 있다. 즉, 부팅 작업 자동화이다.
  • 머신 시작 시, 단 한번 실행된다.
  • root 권한으로 실행된다. 그러므로, 무언가를 설치하려고 할 때 관리자 권한을 설정할 필요가 없다.
  • 당연하게도, 많은 일을 할수록 부팅이 오래 걸린다.

사용 예시

  • EC2 인스턴스를 DB 서버로 사용하기 위해 시작 시 MySQL을 설치해야할 때
  • 커맨드 apt update; apt upgrade의 입력이 EC2 인스턴스를 새로 생성할 때마다 반복될 때
  • EC2 인스턴스를 웹서버로 사용하기 위해 시작 시 Apache web server, php 등을 설치해야할 때

Instance Type

EC2에는 인스턴스의 타입이 나뉘고 이에 따라 CPU, 메모리, storage, networking 등 성능과 용량 등이 달라진다. 다음 예시를 보자.

m5.2xlarge

간단히 말하면, m 클래스에, 5 세대, 2xlarge 의 메모리와 CPU 수준을 가진 인스턴스 타입이다. 정리하면 구조는 다음과 같다.

<instance class><generation>.<size>

1) instance class

인스턴스의 클래스를 지칭한다. 인스턴스의 사용 목적에 따라 나눠져있다.

a. general purpose

  • compute, memory, networking가 균형있게 성능 분배되어있는 범용 목적의 클래스이다.
  • 예시: t2, t3, m3, m4, t3a, …

b. compute optimized

  • 연산에 특화된 인스턴스 클래스이다.
  • 주로 batch, gaming server, HPC, 고성능 웹서버, media transcoding, scientific modeling & machine learning에 사용된다.
  • 예시: (접두사 c를 가진다) c5, c6, …

c. memory optimized

  • 인메모리 데이터셋 처리에 빠른 퍼포먼스를 요구하는 서버에 사용되는 클래스이다.
  • 관계형/비관계형 데이터베이스, 웹 캐시 스토어, 비구조화된 데이터의 실시간 처리 애플리케이션로 사용된다.
  • 예시: (접두사 r, x를 가진다) r5, r6g, x1, …

d. storage optimized

  • 스토리지 최적화 인스턴스이다.
  • 스토리지 용량 최적화라기 보다 스토리지의 입출력 성능의 최적화이다. 공식 페이지의 설명에 특징이 잘 나와있다.

    "스토리지 최적화 인스턴스는 로컬 스토리지에서 매우 큰 데이터 세트에 대해 순차적 읽기/쓰기 액세스를 요구하는 워크로드를 위해 설계되었습니다. 이러한 인스턴스는 애플리케이션에 대해 대기 시간이 짧은, 수만 단위의 무작위 초당 I/O 작업 수(IOPS)를 지원하도록 최적화되었습니다."

  • 관계형/비관계형 데이터베이스, 인메모리 데이터베이스의 캐시, 애플리케이션의 데이터 저장, 분산 파일 시스템에 주로 사용된다.
  • OLTP 애플리케이션에도 사용되는데, OLTP라는 것이 생소할 것이다. 높은 빈도의 트랜잭션을 요구함으로써 큰 데이터셋에 대한 read/write 액세스가 필요한 애플리케이션이라고 한다. 공식 페이지의 설명과 아주 유사한데, 매우 적합한 인스턴스 타입으로 볼 수 있다. 여담으로, AWS Certified Developer - Associate 시험에서 출제 빈도가 높다.
  • 예시: (접두사는 i, d, h) i4g, i3, d2, h1, ...

2) generation

말그대로 세대를 의미한다. 숫자가 클수록 최신사양이다.

3) size

등급에 따른 분류이다. nano, micro, small, medium, large, xlarge, 2xlarge 등이 존재한다

Security Group

"보안 그룹"이라고 하는데, 인바운드와 아웃바운드, 즉 들어오는 트래픽과 나가는 트래픽을 화이트리스팅한다.

  • 인바운드의 기본값은 Deny all이고, 아웃바운드의 기본값은 Allow all이다. 쉽게 말하면 처음에는 서버로의 모든 요청이 막혀있고 서버에서의 어디로의 호출이든 열려있다.
  • 하나의 보안 그룹을 다수의 인스턴스에 적용할 수 있다.
  • region + VPC 조합으로 묶여있어, 하나의 region내, 하나의 VPC 네트워크 내에서 사용된다. 이를 벗어나면 새 보안 그룹을 생성해야한다.

Purchasing Options

EC2 인스턴스를 사용하려고 할 때, 요금을 지불하는 다양한 Purchasing Options를 소개한다.

On-Demand Instances

  • 시작하는 인스턴스에 대한 비용을 초 단위로 지불한다.

Reserved

  • 1년 또는 3년의 기간동안 인스턴스 유형 및 Region을 포함하여 일관된 인스턴스 구성을 약정한다.

Saving Plans

  • 1년 또는 3년 기간 동안 시간당 USD로 일관된 사용량을 약정하여 Amazon EC2 비용을 절감할 수 있다.

Spot Instances

  • 미사용 EC2 인스턴스를 요청하여 Amazon EC2 비용을 대폭 절약할 수 있다.
  • 다만 짧은 시간동안 작동하고 사라지기 때문에 중요한 작업이나 데이터베이스로는 사용할 수 없다.
  • 애플리케이션이 실행되는 시간을 유연하게 조정할 수 있고, 애플리케이션이 중단되도 무관한 경우에 선택하는 비용효율적인 방법이다.

Dedicated Host

  • 인스턴스 실행을 전담하는 실제 호스트 비용을 지불하며, 기존의 소켓, 코어 또는 VM 소프트웨어별 라이선스를 가져와 비용을 절감한다.

Dedicated Instance

  • 단일 테넌트 하드웨어에서 실행되는 인스턴스 비용을 시간 단위로 지불한다.
  • Dedicated Host 또는 Dedicated Instance에서는 기존의 서버 바인딩 소프트웨어 라이선스를 사용할 수 있으므로 규정 준수 요구 사항을 해결하고 비용을 절감하는 데 도움이 될 수 있다.

Capacity Reservations

  • 원하는 기간동안 특정 Availability Zone(가용 영역)의 EC2 인스턴스에 대해 용량을 예약한다.
  • 용량 예약이 필요한 경우 특정 가용 영역에 대한 위의 Reserved 옵션이나 이 옵션, Capacity Reservations을 선택한다.
profile
Large but stable

0개의 댓글

관련 채용 정보