AWS에서 제공하는 다양한 서비스들 중 가장 잘 알려진 기본 서비스가 EC2입니다. EC2는 독립된 컴퓨터 한대를 임대해서 사용할 수 있게 해주는 서비스입니다. 기업들은 EC2를 여러 대 사용하고 있는데 많은 트래픽이 EC2로 들어오면 이 트래픽을 여러 개의 EC2에 분산 처리할 수 있도록 해주는 서비스가 ELB 입니다. 이 두 가지 서비스에 대해서 더 자세히 알아보겠습니다.
EC2란
Amazon Elastic Compute Cloud
위에서 언급했듯이 독립된 컴퓨터 한 대(EC2 Instance)를 제공하여 안전하고 크기 조정이 가능한 컴퓨팅 용량을 제공해 주는 서비스입니다. EC2를 사용하면 어떤 이점이 있을까요?
장점
- 몇 번의 클릭만으로도 컴퓨터 한 대를 구성할 수 있습니다. 즉, 짧은 시간 안에 Amazon EC2 인스턴스를 프로비저닝 하고 시작할 수 있다는 의미입니다.
- EC2를 사용하여 특정 워크로드의 실행을 완료했다면, 인스턴스 사용을 중지할 수 있습니다. 즉, 인스턴스가 실행 중일 때 사용한 컴퓨팅 시간에 대해서만 비용을 지불하고 인스턴스가 중지 또는 종료된 상태에서는 비용을 지불하지 않아 비용적인 측면에서 매우 효율적입니다.
- 필요한 서버 용량에 맞추어 간단하고 쉽게 EC2의 스펙을 줄이거나 높일 수 있습니다.
위에서 살펴본 바와 같이, EC2는 확장성 및 탄력성이 매우 뛰어납니다. EC2 사용자는 필요한 리소스만으로 시작해서, 확장 및 축소를 통해 수요 변화에 자동으로 대응하도록 아키텍쳐를 설계해야 합니다. Amazon EC2 Auto Scaling 서비스가 이러한 프로세스가 자동으로 수행되도록 해 줍니다. 이 서비스에 대해서 좀 더 알아보겠습니다.
Amazon EC2 Auto Scaling
위에서 설명했다시피, 변화하는 애플리케이션 수요에 따라 Amazon EC2 인스턴스를 자동으로 추가하거나 제거할 수 있습니다. 이 프로세스를 2가지 방식으로 접근합니다.
- 동적 조정: 수요 변화에 대응
- 예측 조정: 예측된 수요에 따라 적절한 수의 인스턴스 자동 예약
또한 증가하는 수요는 두 가지 방법으로 처리할 수 있습니다.
- 수직 확장: 실행 중인 장치의 성능 추가
- 수평 확장: 장치 수 추가
이 서비스를 통해 필요에 따라 인스턴스를 자동으로 조정하여 애플리케이션의 가용성을 효과적으로 유지할 수 있습니다.
이번에는 EC2 인스턴스의 4가지 유형에 대해서 알아보겠습니다. 각 유형이 어떤 기능을 제공하는지 확인하고 필요한 유형을 선택하여 사용할 수 있어야 합니다.
EC2 인스턴스 유형
- 범용 인스턴스 (general purpose)
- 컴퓨팅 최적화 인스턴스
- 메모리 최적화 인스턴스
- 엑셀러레이티드 컴퓨팅 인스턴스
- 스토리지 최적화 인스턴스
| 유형 | 범용 | 컴퓨팅 최적화 | 메모리 최적화 | 엑셀러레이티드 | 스토리지 최적화 |
| 기능 | - 컴퓨팅, 메모리, 네트워킹 리소스를 균형 있게 제공 - 애플리케이션 서버, 게임 서버, 웹 서버, 엔터프라이즈 애플리케이션용 백엔드 서버, 데이터베이스 등 매우 다양한 워크로드에 사용 |
- 단일 그룹에서 많은 트랜잭션을 처리해야 하는 일괄 처리 워크로드 지원 - 고성능 웹 서버, 컴퓨팅 집약적 애플리케이션 서버 및 게임 전용 서버 지원 |
- 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능 제공 | 하드웨어 엑셀러레이터(데이터 처리를 가속화할 수 있는 구성 요소) 또는 코프로세서를 사용하여 일부 기능을 CPU에서 실행되는 소프트웨어에서보다 더 효율적으로 수행 (부동 소수점 계산, 그래픽 처리, 데이터 패턴 일치 등) | - 로컬 스토리지의 대규모 데이터 세트에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계된 인스턴스 - 지연시간이 짧은 임의 IOPS를 애플리케이션에 제공 가능 |
| Use Cases | 어느 한 리소스 영역에 대한 최적화가 필요 없는 애플리케이션 | 고성능 프로세서를 활용하는 컴퓨팅 집약적 애플리케이션 | 애플리케이션을 실행하기 전에 많은 데이터를 미리 로드해야 하는 워크로드 | 그래픽 애플리케이션, 게임 스트리밍, 애플리케이션 스트리밍과 같은 워크로드 | 로컬에 저장된 데이터를 위해 고성능이 요구되는 워크로드(IOPS 요구 사항이 높은 애플리케이션) |
* IOPS: 스토리지 디바이스의 성능을 측정하는 지표로, 초당 입출력 작업수를 의미합니다. (디바이스가 1초 내에 수행할 수 있는 입력/출력 작업 수)
이렇게 EC2에 관해서 자세하게 알아보았습니다.
기업들은 여러 개의 EC2 인스턴스를 구축하여 들어오는 트래픽을 처리하는데 이때 트래픽을 어떻게 잘 분산하여 여러 개의 EC2 인스턴스에게 나누어 줄 것인지 생각해 봐야 합니다. 이런 노력을 덜 수 있도록 AWS에서는 ELB라는 서비스를 제공합니다. 이제 ELB에 대해서 알아보겠습니다.
ELB
Elastic Load Balancing
ELB란, 앞에서도 설명했듯이 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스와 같은 여러 리소스에 자동으로 분산하는 AWS 서비스를 의미합니다.
트래픽을 적절히 분산한다면,
- 고성능
- 비용 효율성 증가
- 고가용성
- 자동 확장 기능
등의 이점을 얻을 수 있습니다. ELB를 사용하지 않으면 매우 복잡해지는 트래픽 경로를 ELB를 사용함으로써 깔끔하게 교통정리를 해주는 것이죠.

아래 그림과 같이 ELB는 Auto Scaling 그룹으로 들어오는 모든 웹 트래픽의 단일 접점 역할을 합니다. 들어오는 트래픽 양에 맞추어 Amazon EC2 인스턴스를 추가하거나 제거하므로, 이런 요청이 Load Balancer로 먼저 라우팅 됩니다. 그 후, ELB가 요청을 처리할 여러 인스턴스에 워크로드를 분산합니다.

즉, ELB와 EC2 Auto Scaling은 별도의 서비스이지만, 서로 연동하여 Amazon EC2에서 실행되는 애플리케이션이 뛰어난 성능과 가용성을 제공하도록 해 줍니다.
출처: https://explore.skillbuilder.aws/