본문 바로가기

Infrastructure/Cloud Computing

[AWS] EC2

이번 장에서는 AWS에서 제공하는 클라우드에서 확장 가능 컴퓨팅 용량인 EC2(Elastic Compute Cloud)와 EC2를 사용하기 위한 개념들에 대해서 알아보도록 한다.

클라우드 용어

AWS에서는 전세계의 주요 지역에 IDC(Internet Data Center)를 구축하여 운영하고 있다.

그림1

AWS에서는 클라우드 서비스를 위한 인프라 환경을 크게 리전(Region), 가용 영역(Avaliability Zone), 엣지 로케이션(Edge Location)으로 구분한다.

리전(Region): AWS가 전 세계적으로 데이터 센터를 클러스터링하는 물리적 위치다. 한국의 서울 리전은 2016년 1월 28일에 오픈되었다.

가용 영역(Availibility Zone, AZ): AWS리전의 중복 전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성된다.
우리가 흔히 알고 있는 IDC(Internet Data Center)로 이해하면 된다. AWS는 하나의 리전에 다수의 가용 영역(AZ)를 보유하고 있다. 하나의 리전이 여러개의 가용 영역으로 구성되어 있으므로 하나의 가용 지역에 문제가 생기더라도 다른 가용 영역의 데이터는 문제없이 사용이 가능하다. 이러한 방식으로 AWS는 높은 가용성과 내결함성 및 확장성을 제공한다.

그림2

그림을 확인해보면 미국 동부(버지니아 북부) 리전은 총 6개의 가용 지역과 10개의 로컬 영역으로 이루어진 것을 확인할 수 있다.

엣지 로케이션(Edge Location): Amazon의 CDN(Content Delivery Network) 서비스인 CloudFront를 위한 캐시 서버.
각 엣지 로케이션은 용량이 큰 데이터(이미지, 동영상등)을 캐싱하고 있어서 고객의 요청에 더 빠르게 응답할 수 있게 해준다.


EC2(Elastic Compute Cloud)란?

AWS 클라우드에서 제공하는 확장 가능한 컴퓨팅 용량이다. 이러한 EC2를 사용하여 우리는 서버를 구축하는 비용에 선투자할 필요없이 어플리케이션을 빠르게 개발하고 배포할 수 있다. AWS에서는 이러한 가상화 서버를 인스턴스(Instance)라고 부르며 필요에 따라 손쉽게 한 개의 인스턴스에서 수천 개의 인스턴스까지 컴퓨팅을 확장할 수 있다.

인스턴스 유형(Instance Type)

그림3

인스턴스에는 자신이 개발하는 서비스의 성향에 맞게 인스턴스의 유형을 선택할 수 있다.
필자가 글을 작성하는 날 기준으로 수십개의 인스턴스 유형이 있다.

너무 많은 인스턴스 유형이 존재하므로 모두 살펴볼 수는 없고 각 카테고리 별로 대표적인 유형만 알아보도록 한다.

  • 범용(General Purpose): 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공한다. 대표적으로 M Series와 T Series가 있다. 저렴한 비용과 인텔 제온 프로세서를 사용한다. 단, T Series는 크레딧을 사용하는 버스팅 인스턴스이므로 사용할 때 이러한 특징을 이해하고 사용해야한다. 버스트 가능 성능 인스턴스에 대한 개념은 여기 (링크)에 자세하게 나와있으므로 사용하기 전에 확인해보기 바란다.
  • 컴퓨팅 최적화(Compute Optimized): 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합한 유형이다. 쉽게 말해서 고성능의 CPU를 사용하고 있다고 생각하면 된다. 대표적으로 C Series가 있다.
  • 메모리 최적화(Memory Optimized): 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계된 유형이다. 최대 하나의 인스턴스에 512GiB의 메모리를 사용가능하다. 대표적으로 R Series가 있다.
  • 가속화된 컴퓨팅(Accelerated Computing): 부동 소수점 계산, 그래픽 처리, 데이터 패턴 등 GPU를 필요로하는 애플리케이션을 위한 유형이다. GPU를 사용하여 컴퓨팅 최적화 유형보다 더 높은 프로세서 사양을 제공한다. 대표적으로 P Series가 있다.
  • 스토리지 최적화(Storage Optimized): 로컬 스토리지에 저장되어 있는 매우 큰 데이터에 대해 많은 순차적 읽기 및 쓰기 액세스를 처리하기 위해 설계된 유형이다. 대표적으로 I Series가 있다.

이렇게 여러가지 유형이 있다.
일반적으로 범용적인 유형을 사용한다면 큰 문제가 되지 않는다. 또한 인스턴스의 사양이 부족하다고 판단되어 범용 인스턴스의 사양을 높이는 것 만으로도 대부분의 문제는 해결할 수 있다.
하지만 자신의 애플리케이션이 사용하는 리소스를 잘 확인해보고 유형을 결정해야한다. 자신의 애플리케이션이 메모리는 별로 사용하지 않지만 연산이 많아서 CPU 사용량이 높다면 컴퓨팅 최적화 유형을 선택하여 좋은 프로세서를 선택하고 상대적으로 적은 메모리를 사용하게 하면된다. 반대로 자신의 애플리케이션이 단순히 메모리 사용량만 높다면 메모리 최적화 유형을 선택하여 프로세서는 비교적 낮은 사양으로 맞추고 메모리만 필요한 만큼 선택할 수도 있다.

인스턴스 구입 옵션
같은 유형의 인스턴스를 사용하더라도 여러가지 방법으로 구입할 수 있다.

  • 온디맨드 인스턴스(On-Demand Instance): 필요할 때 바로 생성해서 사용하는 방식이다. 사용하는 인스턴스에 대해 시간 단위로 사용하고 비용을 지불한다.
  • 예약 인스턴스(Reserved Instance, RI): 인스턴스에 대한 일회성 지불을 통해 용량을 예약할 수 있다. 미리 시간당 요금과 용량을 예약하고 비용을 미리 지불하면 온디맨드 인스턴스 대비 최대 72%의 비용으로 사용이 가능하다. RI에도 총 세가지의 유형이 있으므로 세부 유형이 궁금하다면 여기 (링크)에서 확인하도록 한다.
  • 스팟 인스턴스(Spot Instance): 경매 방식의 인스턴스로 인스턴스의 유형을 정해 입찰하고 가장 높은 가격을 제시한 사용자에게 인스턴스가 할당된다. 스팟 인스턴스의 경우 개념보다 "어디에 써야할까?"라는 의문이 들 수 있다. AWS에서 친절하게 어떠한 경우에 사용해야하는지를 제공하고 있으므로 궁금하다면 여기 (링크)에서 확인해보도록 한다.
  • 전용 인스턴스(Dedicated): 단일 고객 전용 하드웨어의 VPC(Virtual Private Cloud)에서 실행되는 인스턴스. 자세한 사항 (링크).

EBS(Elastic Block Storage)란?

지금까지 EC2에 대해서 살펴보았다. 우리는 여러가지 유형을 통해서 인스턴스를 선택하였다.
우리가 이렇게 선택한 인스턴스에는 프로세서(CPU)와 메모리는 있지만 데이터를 저장할 수 있는 디스크가 없다. 우리는 인스턴스를 생성할 때
데이터를 저장할 수 있는 디스크를 선택해서 장착해주어야하는데 이러한 저장소를 EBS라고 한다. (물론 인스턴스 스토어라는 개념도 존재하지만 인스턴스 스토어의 경우 인스턴스를 중지, 종료하는 경우 데이터가 손실되기 때문에 AWS에서도 EBS의 사용을 권장한다. 관련자료 (링크))

EBS는 크게 아래와 같은 특징이 있다.

  • 1GB 단위로 1GB ~ 1TB까지 선택이 가능하다.
  • 크기 / 사용 기간을 기준으로 비용이 발생한다.
  • 마그네틱의 경우 발생하는 I/O 횟수에도 비용이 과금된다.
  • EC2 인스턴스와 독립적으로 사용 가능하며 공유가 가능하다.
  • 원하는 가용 영역(AZ)내에서 영구적으로 데이터가 저장된다.
  • 백업된 스냅샷으로 원하는 상태의 EBS 볼륨을 생성 복원이 가능하다.

EBS 유형
EBS에도 EC2 인스턴스와 같이 다양한 유형이 존재하며 사용자는 자신의 애플리케이션에 맞는 유형을 선택할 수 있다.

  • 범용 SSD(gp3, gp2): 광범위하며 다양한 트랜잭션을 처리하기 위한 비용 효과적인 스토리지다. gp3와 gp2가 존재하며 인스턴스 유형 중 T Series와 유사하게 I/O 크레딧과 버스트가 존재하므로 여기 (링크)를 참고하여 자신의 상황에 맞는 유형을 선택하길 바란다.

그림4
  • 프로비저닝된 IOPS (Provisioned IOPS, io1, io2): 스토리지 성능과 일관성에 민감한 I/O 집약적 워크로드를 위해 설계되었다. 특히 데이터베이스 워크로드의 요구 사양을 충족하도록 설계되었다.
  • 처리량 최적화 HDD(st1): IOPS가 아닌 처리량으로 성능을 정의하는 저비용 마그네틱 스토리지다. 데이터 웨어하우스, 로그 처리 같은 대용량 순차 워크로드에 적합하다. 범용 SSD의 gp2와 같이 처리량 크레딧 및 버스트가 존재하므로 개념을 확인하고 사용하도록 한다.
  • 골드 HDD(sc1): 데이터 조회 빈도가 적을 때(처리량 최적화 HDD를 사용하기에는 필요 이상으로 크레딧이 남을 때 고려)사용하는 유형으로 데이터에 드물게 액세스하는 경우를 위해 설계되었다. 또한 처리량 크레딧 및 버스트가 존재한다.
  • 마그네틱(Magnetic): 이전 세대의 볼륨으로 낮은 성능과 적은 저장 공간을 가지고 있다. AWS에서도 이전 세대의 볼륨이므로 사용을 지양하라고 말하고 있다.

보안 그룹(Security Group)이란?

그림5

지금까지 인스턴스와 인스턴스에 장착되어 데이터를 저장하는 EBS에 대해서 알아보았다.
우리는 인스턴스와 EBS를 보호해주는 방화벽이 필요한다. 이러한 가상의 방화벽 역할을 수행해주는 것이 보안 그룹이다.
하지만 일반적인 방화벽과는 다르게 특정 트래픽에 대한 허용만 가능하고 차단을 설정할 수 없다.
이러한 이유는 보안 그룹이 인스턴스의 수준에 적용되기 때문에 적용되는 규칙이다. 만약 차단 기능이 필요하다면 보안 그룹을 통과하기 이전인 네트워크 ACL을 통해 서브넷(Subnet) 수준에서 네트워크의 흐름을 제어해야 한다.


이 글은 아마존 웹 서비스 AWS Discovery Book 도서와 AWS 공식문서를 참고하여 작성하였다.

이미지 출처:

'Infrastructure > Cloud Computing' 카테고리의 다른 글

[AWS] Route53  (0) 2022.02.16
[AWS] RDS  (0) 2022.02.16
[AWS] Network  (0) 2022.02.14
[AWS] S3  (0) 2022.02.14
[AWS] 클라우드 컴퓨팅이란?  (0) 2022.02.10