[문제 19]
회사는 기존 온프레미스 모놀리식 애플리케이션을 AWS로 마이그레이션하려고 합니다. 회사는 프런트엔드 코드와 백엔드 코드를 최대한 많이 유지하려고 합니다. 그러나 회사는 애플리케이션을 더 작은 애플리케이션으로 분할하기를 원합니다. 다른 팀이 각 애플리케이션을 관리합니다. 회사에는 운영 오버헤드를 최소화하는 확장성이 뛰어난 솔루션이 필요합니다.
어떤 솔루션이 이러한 요구 사항을 충족합니까?
A. AWS Lambda에서 애플리케이션을 호스팅합니다. 애플리케이션을 Amazon API Gateway와 통합합니다.
B. AWS Amplify를 사용하여 애플리케이션을 호스팅합니다. AWS Lambda와 통합된 Amazon API Gateway API에 애플리케이션을 연결합니다.
C. Amazon EC2 인스턴스에서 애플리케이션을 호스팅합니다. Auto Scaling 그룹의 EC2 인스턴스를 대상으로 하여 Application Load Balancer를 설정합니다.
D. Amazon Elastic Container Service(Amazon ECS)에서 애플리케이션을 호스팅합니다. Amazon ECS를 대상으로 하여 Application Load Balancer를 설정합니다.
[문제 분석]
이 문제는 기존 온프레미스 모놀리식 애플리케이션을 AWS로 마이그레이션하고, 이를 마이크로서비스로 분리하는 과정을 묻고 있습니다. 회사는 프런트엔드 및 백엔드 코드를 유지하면서, 운영 오버헤드를 최소화하고 확장성을 제공하는 솔루션이 필요합니다. 따라서 마이크로서비스 아키텍처를 도입하고, 이를 관리할 수 있는 확장성 있는 서비스를 선택해야 합니다.
[각 보기 분석]
A. AWS Lambda에서 애플리케이션을 호스팅하고 Amazon API Gateway와 통합
- 설명: AWS Lambda는 서버리스 컴퓨팅을 제공하며, API Gateway와 통합해 REST API를 쉽게 구축할 수 있습니다.
- 부적합: Lambda는 서버리스 아키텍처로서 개별 함수로 분리된 애플리케이션에 적합하나, 애플리케이션 전체를 관리하거나 프런트엔드 및 백엔드 코드 유지에는 적합하지 않습니다. Lambda는 상태 유지 애플리케이션이나 복잡한 애플리케이션 구조에 제한적일 수 있습니다.
B. AWS Amplify를 사용하여 애플리케이션을 호스팅
- 설명: AWS Amplify는 주로 프런트엔드 애플리케이션 개발에 최적화되어 있으며, AWS Lambda와의 통합을 통해 백엔드 기능을 구현할 수 있습니다.
- 부적합: Amplify는 모놀리식 애플리케이션을 마이크로서비스로 분리하는 요구 사항에 적합하지 않습니다. 주로 프런트엔드에 적합한 솔루션이며, 확장성 있는 백엔드 처리에는 한계가 있습니다.
C. Amazon EC2 인스턴스에서 애플리케이션을 호스팅하고 Auto Scaling 그룹과 Application Load Balancer 설정
- 설명: EC2 인스턴스에서 애플리케이션을 호스팅하면 사용자는 서버를 직접 관리해야 하며, Auto Scaling 그룹을 통해 인스턴스를 자동으로 확장할 수 있습니다.
- 부적합: EC2 인스턴스는 사용자가 서버 관리를 직접 해야 하기 때문에 운영 오버헤드가 크며, 이는 문제에서 요구하는 운영 간소화와는 거리가 멉니다.
D. Amazon Elastic Container Service(Amazon ECS)에서 애플리케이션을 호스팅하고 Application Load Balancer를 설정
- 설명: Amazon ECS는 컨테이너 기반의 마이크로서비스 아키텍처를 지원하며, 애플리케이션을 더 작은 컨테이너 단위로 분할해 배포할 수 있습니다. Application Load Balancer는 ECS와 함께 확장성과 고가용성을 제공하며, 각 마이크로서비스를 독립적으로 관리할 수 있습니다.
- 적합성: ECS는 운영 오버헤드를 최소화하면서도 확장 가능한 솔루션을 제공합니다. 컨테이너 기반의 마이크로서비스 아키텍처를 통해 애플리케이션을 작은 서비스로 분리하고, 각 서비스의 관리와 확장성을 팀별로 나눌 수 있습니다.
[정답 분석]
가장 적합한 답은 D. Amazon Elastic Container Service(ECS)에서 애플리케이션을 호스팅하고, Application Load Balancer를 설정하는 것입니다. ECS는 컨테이너 기반의 아키텍처로, 애플리케이션을 더 작은 서비스로 분리하고 운영 오버헤드를 최소화하면서도 확장성을 제공합니다.
[서비스 및 관련 옵션]
- Amazon Elastic Container Service (ECS): AWS에서 제공하는 컨테이너 오케스트레이션 서비스로, 애플리케이션을 작은 컨테이너로 분리하여 배포하고 확장할 수 있습니다.
- Application Load Balancer (ALB): 여러 애플리케이션 또는 마이크로서비스 간에 트래픽을 분산하는 데 사용됩니다. ECS와 함께 고가용성과 자동 확장을 지원합니다.
- Amazon EC2 Auto Scaling: 트래픽 변화에 따라 EC2 인스턴스를 자동으로 확장하거나 축소할 수 있지만, 서버 관리에 대한 오버헤드가 존재합니다.
[도메인]
이 문제는 도메인 3: 고성능 및 확장 가능한 아키텍처 설계에 해당합니다. 마이크로서비스 아키텍처를 도입하고, 운영 오버헤드를 줄이면서 확장성 있는 인프라를 설계하는 방법이 관련됩니다.
1. 태스크 설명: 태스크 3.2: 자동 확장 및 탄력적인 컴퓨팅 환경을 설계합니다.
2. 관련 지식:
1) ECS 및 컨테이너 아키텍처.
2) Application Load Balancer를 사용한 확장성 및 가용성 관리.
[시험에서 주로 출제되는 핵심 개념]
Amazon ECS
Amazon Elastic Container Service (ECS)는 AWS에서 제공하는 컨테이너 오케스트레이션 서비스로, 애플리케이션을 마이크로서비스 아키텍처로 분리하여 배포하고 확장할 수 있습니다. ECS는 운영 오버헤드를 최소화하면서도 자동 확장과 고가용성을 제공합니다.
개념
1. 컨테이너 기반 아키텍처
- ECS는 컨테이너를 사용하여 애플리케이션을 작은 단위로 분리하고, 각 컨테이너를 독립적으로 배포하고 확장할 수 있습니다.
- 컨테이너는 리소스 격리와 이식성을 제공하여, 애플리케이션을 더 유연하고 효율적으로 운영할 수 있습니다.
2. ECS 클러스터
- ECS는 클러스터 단위로 컨테이너를 관리하며, 클러스터 내에서 여러 컨테이너를 실행할 수 있습니다.
- 사용자는 Fargate 또는 EC2를 선택하여, 서버리스 환경에서 컨테이너를 실행하거나 EC2 인스턴스 기반으로 운영할 수 있습니다.
3. 서비스 및 태스크
- ECS에서는 컨테이너 애플리케이션을 서비스로 정의하고, 서비스 내에서 개별 태스크(Task)를 실행합니다. 각 서비스는 로드 밸런싱 및 자동 확장을 통해 유연하게 관리됩니다.
4. Application Load Balancer (ALB)와 통합
- ALB는 여러 컨테이너 또는 애플리케이션 간에 트래픽을 분산하며, ECS와 통합하여 자동 확장 및 고가용성을 제공합니다.
- 각 마이크로서비스에 독립적인 경로를 제공하여 동시에 여러 애플리케이션을 실행할 수 있습니다.
5. 운영 오버헤드 최소화
- ECS는 Fargate 모드를 통해 서버 관리를 완전히 자동화할 수 있어 운영 오버헤드를 최소화합니다. 인프라를 직접 관리하지 않고, 컨테이너 실행만 관리하면 됩니다.
시험에서 자주 출제되는 주제
1. ECS와 Fargate의 차이점
- **ECS on Fargate
는 서버리스 방식으로 컨테이너를 실행하며, **ECS on EC2는 EC2 인스턴스를 기반으로 컨테이너를 관리합니다. 이 두 가지 방식의 차이를 이해해야 합니다.
2. ALB와 ECS의 통합
- ALB는 여러 마이크로서비스에 트래픽을 분산하며, 라우팅 및 로드 밸런싱 기능을 제공합니다. ECS와 ALB의 통합 방식을 이해하는 것이 중요합니다.
3. ECS에서의 확장성 관리
- ECS는 자동 확장 기능을 통해 트래픽 증가에 따라 자동으로 컨테이너 인스턴스를 추가할 수 있습니다. 시험에서는 이와 관련된 확장성 관리 시나리오가 자주 출제됩니다.
4. ECS와 서버리스 컨테이너(Fargate)
- ECS Fargate는 서버 관리를 하지 않고도 컨테이너를 실행할 수 있는 서버리스 옵션입니다. 서버 관리를 피하면서 확장성과 유연성을 제공하는 Fargate의 활용 방안이 출제될 수 있습니다.
예시 문제
1. Amazon ECS에서 애플리케이션을 마이크로서비스로 분리하고 각 서비스를 독립적으로 배포하려고 합니다. 어떤 서비스가 가장 적합합니까?
- 정답: Amazon ECS
2. 운영 오버헤드를 최소화하면서 컨테이너 기반 애플리케이션을 AWS에서 호스팅하려고 합니다. 어떤 ECS 실행 모드를 선택해야 합니까?
- 정답: Fargate
요약
Amazon ECS는 컨테이너 기반 마이크로서비스 아키텍처를 지원하며, 애플리케이션을 분리하고 확장할 수 있는 최적의 솔루션입니다. ECS는 운영 오버헤드를 최소화하면서도 자동 확장과 고가용성을 제공하며, 특히 Application Load Balancer(ALB)와의 통합을 통해 확장성과 성능을 극대화할 수 있습니다. ECS Fargate를 사용하면 서버 관리를 최소화하면서도 효율적으로 컨테이너를 운영할 수 있습니다.
'스케쥴 > 시험' 카테고리의 다른 글
AWS SAA-C03 한국어 샘플 21번 (0) | 2024.10.20 |
---|---|
AWS SAA-C03 한국어 샘플 20번 (0) | 2024.10.20 |
AWS SAA-C03 한국어 샘플 18번 (0) | 2024.10.20 |
AWS SAA-C03 한국어 샘플 17번 (0) | 2024.10.20 |
AWS SAA-C03 한국어 샘플 16번 (2) | 2024.10.20 |