안녕하세요, AWS SAA(Solution Architect Associate) 자격증을 준비하시는 여러분!
저는 넥스트클라우드에서 SA로 활동하고 있는 손유림이라고 합니다. 😆
혹시 자격증 시험 준비에 어려움을 겪고 계시나요?
저도 처음 문제를 풀 때는 방대한 범위와 복잡한 개념들로 인해 막막했던 기억이 납니다.
마찬가지로 여러분들도 AWS SAA 자격증 준비 과정에서 비슷한 경험을 하셨을 거예요.
공식 문서나 강의 자료를 보면 어려운 용어와 복잡한 개념들이 마구 쏟아지죠.
"Amazon Kinesis Data Streams를 사용해 실시간으로 데이터를 수집하고, Amazon S3에 저장합니다."
"Amazon Redshift를 활용한 대규모 데이터 분석”
"Amazon CloudFront를 통해 콘텐츠를 전 세계에 배포”
이런 문구들을 보고 단번에 이해하기 어렵듯이, SAA 자격증 문제도 처음엔 쉽게 이해되지 않을 거예요.
그래서 이 글에서는 여러분이 AWS SAA 자격증을 준비하면서 마주하게 되는 문제들을 쉽고 명확하게 설명하려 합니다!
누구나 이해할 수 있는 언어로, 세 가지 과정을 통해 문제를 효과적으로 해결하는 방법을 공유 해볼게요.
이 글을 읽고 다시 문제를 풀어보면 이전보다는 쉽게 문제를 이해하고 풀 수 있을 거예요.
- 문제의 요구사항 분석하기
- 요구사항과 관련된 AWS 서비스 생각하기
- 선택지 분석하기
오늘은 3문제를 분석해 보도록 할게요.
자, 그럼 첫 번째 문제부터 살펴볼까요?
문제
한 회사에서 300개 이상의 글로벌 웹사이트와 애플리케이션을 호스팅 합니다.
이 회사는 매일 30TB 이상의 클릭스트림 데이터를 분석할 플랫폼이 필요합니다.
솔루션 설계자는 클릭스트림 데이터를 전송하고 처리하기 위해 무엇을 해야 합니까?
선택지
- 데이터를 Amazon S3 버킷에 보관하고 데이터로 Amazon EMR 클러스터를 실행하여 분석을 생성하도록 AWS Data Pipeline을 설계합니다.
- Amazon EC2 인스턴스의 Auto Scaling 그룹을 생성하여 데이터를 처리하고 Amazon Redshift가 분석에 사용할 수 있도록 Amazon S3 데이터 레이크로 보냅니다.
- 데이터를 Amazon CloudFront에 캐시합니다. 데이터를 Amazon S3 버킷에 저장합니다. 객체가 S3 버킷에 추가될 때. AWS Lambda 함수를 실행하여 분석을 위해 데이터를 처리합니다.
- Amazon Kinesis Data Streams에서 데이터를 수집합니다. Amazon Kinesis Data Firehose를 사용하여 데이터를 Amazon S3 데이터 레이크로 전송합니다. 분석을 위해 Amazon Redshift에 데이터를 로드합니다.
첫 번째 과정은 “문제의 요구사항 분석하기”입니다.
이 문제에서는 3가지의 요구사항이 존재해요.
- 300개 이상의 글로벌 웹사이트와 애플리케이션을 호스팅
- 매일 30TB 이상의 클릭스트림 데이터 분석
- 클릭스트림 데이터를 전송하고 처리
"300개 이상의 글로벌 웹사이트와 애플리케이션을 호스팅" → 많은 웹사이트와 앱이 이 서비스를 이용해 작동하고 있어요.
"매일 30TB 이상의 클릭스트림 데이터 분석" → 사용자들이 웹사이트에서 어떤 행동을 하는지 엄청난 양의 정보를 매일 살펴봐요.
"클릭스트림 데이터를 전송하고 처리" → 사람들이 웹사이트에서 무엇을 클릭하고 어떻게 사용하는지 정보를 수집하고 정리해요.
처음에는 복잡한 기술 용어들과 긴 지문에 압도되어 '도대체 이 문제가 뭘 원하는 거지?'라는 생각이 들 수도 있죠.
문제의 요구사항을 정확히 파악하는 것은 SAA 시험 성공의 첫걸음이에요.
천천히, 그리고 꾸준히 연습하다 보면 어느새 문제 속 핵심을 콕 집어내는 자신을 발견하게 될 거예요.
두 번째 과정은 “요구사항과 관련된 AWS 서비스 생각하기”입니다.
요구사항과 관련된 서비스가 무엇이 있는지 생각해 보면 정답을 찾는 과정이 빨라질 거예요.
1. 300개 이상의 글로벌 웹사이트와 애플리케이션을 호스팅
- Amazon EC2 (Elastic Compute Cloud): 확장 가능한 온디맨드 컴퓨팅 용량을 제공하는 서비스입니다. EC2를 사용하면 필요한 만큼 가상 서버를 프로비저닝하여, 보안 및 네트워킹을 구성하고, 스토리지를 관리할 수 있습니다.
아직 어렵죠? 확장 가능한 온디맨드 컴퓨터 용량 제공? 프로비저닝? 이게 다 무슨 말일까요.
“확장 가능한 온디맨드 컴퓨팅 용량 제공” → 필요할 때 언제든지 늘리거나 줄일 수 있는 인터넷 컴퓨터 대여 서비스에요.
“가상 서버를 프로비저닝” → 사용자가 IT 자원이 필요할 시 즉시 사용할 수 있게 미리 준비해주는 것을 말해요.
300개 이상의 글로벌 웹사이트와 애플리케이션이 작동 중에 갑자기 사람이 몰리거나, 컴퓨터가 고장이 나면 사용자는 해당 서비스를 이용하지 못하는 일이 발생하고 결국 고객들이 떠날 거예요. 그럴 때를 대비해 아래 두 서비스는 이렇게 큰 웹사이트가 겪을 수 있는 문제들을 해결해 주는 역할을 해줘요.
- Amazon EC2 Auto Scaling: 트래픽 변화에 따라 EC2 인스턴스 수를 자동으로 조정하는 서비스입니다. 최대 부하를 처리할 수 있는 용량을 추가하고 수요가 낮을 때는 용량을 제거하여 애플리케이션 가용성을 유지하고 비용을 절감할 수 있습니다.
“애플리케이션 가용성” → 웹사이트나 앱이 잘 작동하는 시간을 의미해요. 가용성이 높다는 건 갑자기 멈추거나 튕기는 일이 거의 없다는 의미고, 가용성이 낮다는 건 사용 중에 갑자기 멈추거나 튕기는 일이 자주 발생한다는 의미예요.
- Elastic Load Balancing: 하나 이상의 가용 영역에 있는 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 수신 트래픽을 자동으로 분산시키는 서비스입니다. 트래픽을 여러 EC2 인스턴스로 분산시켜 가용성 및 안정성을 보장합니다.
- Amazon S3 (Simple Storage Service): 객체 스토리지 서비스로, 대규모 데이터 저장이 가능합니다. 클릭스트림 데이터는 대량의 로그 데이터를 생성하므로, S3에 데이터를 저장하면 안정적으로 데이터를 보관할 수 있습니다.
2. 매일 30TB 이상의 클릭스트림 데이터 분석
- Amazon Redshift: 대규모 데이터 집합에 대한 분석을 위한 데이터 웨어하우스 서비스입니다. 대규모 데이터를 빠르게 쿼리하고 분석할 수 있습니다.
- Amazon Redshift Spectrum: 데이터를 Amazon Redshift 테이블에 로드하지 않고도 S3의 파일에서 정형 및 비정형 데이터를 효율적으로 쿼리하고 가져올 수 있습니다.
쉽게 말하면 아마존에서 제공하는 아주 큰 디지털 창고예요. 이 창고에 엄청나게 많은 정보를 저장할 수 있고, 필요할 때 빠르게 찾아볼 수 있어요. 그래서, 회사들이 중요한 결정을 내릴 때 필요한 정보를 쉽고 빠르게 얻을 수 있게 도와줍니다.
Redshift는 대규모 데이터 집합을 다루기 때문에 데이터를 옮기는 데 드는 시간과 비용이 발생할 수 있어요. 그럴 때, 데이터를 더 유연하고 효율적으로 다룰 수 있게 해주는 도구가 바로 “Amazon Redshift Spectrum” 입니다.
- Amazon Athena: S3에 저장된 데이터를 SQL을 사용하여 직접 쿼리 할 수 있는 서버리스 서비스입니다. 매일 30TB 이상의 데이터를 즉시 분석할 수 있어 클릭스트림 데이터 분석에 매우 유용합니다.
- Amazon QuickSight: 클라우드 기반 비즈니스 인텔리전스(BI) 서비스로, 대화형 대시보드와 시각화 기능을 제공합니다. 클릭스트림 데이터의 분석 결과를 시각적으로 표현하여 비즈니스 의사 결정을 지원합니다.
3. 클릭스트림 데이터를 전송하고 처리
- Amazon Kinesis: 비디오 및 데이터 스트림을 실시간으로 수집, 처리 및 분석할 수 있는 서비스입니다.
- Amazon Kinesis Data Streams: 대규모 스트리밍 데이터를 실시간으로 수집하고 처리할 수 있는 서비스입니다. Kinesis Data Streams는 높은 처리량과 낮은 지연 시간을 제공하여 대규모 데이터를 실시간으로 처리할 수 있게 합니다.
- Amazon Kinesis Data Firehose: 실시간 스트리밍 데이터를 다양한 대상(Amazon S3, Redshift, Elasticsearch 등)으로 전송할 수 있는 서비스입니다. 데이터를 자동으로 배치하고 포맷을 변환하여 저장소로 전송할 수 있으며, 설정이 간단하고 관리가 용이합니다. 클릭스트림 데이터를 다양한 분석 도구로 쉽게 전송하여 저장하고 분석할 수 있습니다.
위의 두 서비스가 같이 사용될 때는 Kinesis Data Streams가 계속해서 흘러들어오는 많은 데이터를 받아들이고, Kinesis Data Firehose가 이 데이터를 정리해서 여러 저장소로 보냅니다.
- AWS Lambda: 이벤트 기반으로 코드를 실행하여 실시간 데이터를 처리할 수 있는 서버리스 컴퓨팅 서비스입니다. Lambda 함수를 사용하여 클릭스트림 데이터를 실시간으로 처리하고, 변환 작업을 수행하거나 다른 서비스로 데이터를 전송할 수 있습니다.
헷갈릴 수 있는 용어가 나왔네요. 저도 처음에는 이 용어가 헷갈려서 어려웠어요.
“서버리스 컴퓨팅 서비스” → ‘서버리스'라고 해서 서버가 없는 게 아니에요. 서버는 있지만, 사용자가 직접 관리할 필요가 없다는 뜻입니다.
마지막 과정은 “선택지 분석하기” 입니다.
이 글에서는 선택지마다 어떤 서비스를 사용하고 있고, 해당 선택지가 왜 정답인지, 아닌지 이유를 설명할 거예요. 문제를 풀 때는 요구사항에 맞는 서비스를 사용하는 최적의 선택지가 어떤 것인지 빠르게 찾아 선택하면 돼요.
선택지 1번은 “데이터를 Amazon S3 버킷에 보관하고 데이터로 Amazon EMR 클러스터를 실행하여 분석을 생성하도록 AWS Data Pipeline을 설계합니다.” 입니다.
- Amazon EMR (Elastic MapReduce): 대규모 데이터를 처리하는 관리형 클러스터 서비스로, 대규모 배치 데이터 처리에 적합합니다. 그러나 스트리밍 데이터 처리를 위한 낮은 지연 시간과 즉시성을 제공하지 못합니다.
“대규모 배치 데이터 처리” → 클러스터란 여러 대의 컴퓨터가 함께 일하는 그룹을 의미해요. 관리형 클러스터 서비스란 여러 컴퓨터를 한꺼번에 사용하게 해주는 서비스인데, AWS가 대신 관리해 줘요.
“관리형 클러스터 서비스” → 배치 처리는 데이터를 모아서 한꺼번에 처리하는 방식을 말해요.
- AWS Data Pipeline: 데이터 이동 및 변환 워크플로를 자동화하고 스케줄링하는 서비스로, 주기적인 배치 데이터 이동과 변환 작업을 자동화하는 데 적합하지만 실시간 스트리밍 데이터 처리를 지원하지 않습니다.
선택지가 정답이 아닌 이유는 클릭스트림 데이터는 실시간으로 수집되고 처리되어야 하기 때문입니다. Amazon EMR, AWS Data Pipeline 조합은 주로 배치 처리를 위한 것이며, 실시간 스트리밍 데이터를 효과적으로 처리하지 못합니다. 또한, AWS Data Pipeline을 사용해 Amazon EMR 클러스터를 관리하고 데이터를 S3에서 처리하는 것은 설정과 유지 관리가 복잡합니다. 이는 운영 오버헤드를 증가시키고, 특히 매일 30TB 이상의 데이터를 처리하는 경우에는 더 큰 부담이 됩니다.
→ 여기서 “운영 오버헤드”라는 건 주요 목적 외에 추가로 들어가는 관리 비용과 노력을 말해요. 이를 줄이면 더 효율적으로 일을 할 수 있게 되죠.
선택지 2번은 “Amazon EC2 인스턴스의 Auto Scaling 그룹을 생성하여 데이터를 처리하고 Amazon Redshift가 분석에 사용할 수 있도록 Amazon S3 데이터 레이크로 보냅니다.”입니다.
- Amazon EC2: 가상 서버 인스턴스를 통해 컴퓨팅 리소스를 제공하는 서비스로, 유연한 컴퓨팅 리소스를 제공합니다. 그러나 클릭스트림 데이터의 실시간 수집과 처리에는 적절한 도구가 아닙니다.
- Auto Scaling: 트래픽 변화에 따라 EC2 인스턴스 수를 자동으로 조정합니다. 컴퓨팅 리소스를 자동으로 조정하여 트래픽 부하를 처리하는 데 유용하지만, 클릭스트림 데이터의 실시간 수집 및 처리에는 추가적인 데이터 스트리밍 솔루션이 필요합니다.
선택지가 정답이 아닌 이유는 Amazon EC2와 Auto Scaling은 실시간 데이터 스트리밍을 효과적으로 처리하지 못하기 때문입니다. Amazon EC2와 Auto Scaling을 사용하여 클릭스트림 데이터를 처리하려면 인프라 관리와 설정, 유지 관리가 필요합니다. 이는 운영 오버헤드를 증가시키고, 특히 매일 30TB 이상의 데이터를 처리하는 경우에는 더 큰 부담이 됩니다.
선택지 3번은 “데이터를 Amazon CloudFront에 캐시합니다. 데이터를 Amazon S3 버킷에 저장합니다. 객체가 S3 버킷에 추가될 때. AWS Lambda 함수를 실행하여 분석을 위해 데이터를 처리합니다.” 입니다.
- Amazon CloudFront: 웹 콘텐츠를 캐싱 하여 사용자에게 빠르고 안전하게 전달하는 서비스입니다. 그러나 클릭스트림 데이터의 실시간 수집 및 처리에는 적절하지 않습니다. CloudFront는 주로 데이터 전달에 중점을 두고 있으며, 데이터 수집 및 처리를 위한 기능은 제공하지 않습니다.
- AWS Lambda: 서버리스 컴퓨팅 서비스로, 이벤트 기반으로 코드를 실행합니다. Lambda 함수는 짧은 시간 내에 실행을 완료해야 하며, 대규모 데이터를 실시간으로 처리하는 데 제한이 있습니다. 매일 30TB 이상의 클릭스트림 데이터를 처리하는 데 필요한 지속적인 대규모 데이터 처리에는 적절하지 않을 수 있습니다.
선택지가 정답이 아닌 이유는 Amazon CloudFront는 웹 콘텐츠 캐싱에 적합하지만, 실시간 데이터 수집 및 처리를 지원하지 않기 때문입니다. AWS Lambda는 짧은 실행 시간에 적합하며, 대규모 데이터 처리를 위해서는 많은 수의 Lambda 함수를 동시에 실행해야 합니다. 이는 복잡성을 증가시키고 Lambda의 실행 시간 및 리소스 한계로 인해 매일 30TB 이상의 데이터를 처리하는 데 비효율적일 수 있습니다.
선택지 4번은 “Amazon Kinesis Data Streams에서 데이터를 수집합니다. Amazon Kinesis Data Firehose를 사용하여 데이터를 Amazon S3 데이터 레이크로 전송합니다. 분석을 위해 Amazon Redshift에 데이터를 로드합니다.” 입니다.
- Amazon Kinesis Data Streams: 실시간 데이터 수집 및 처리하는 서비스로, 높은 처리량과 낮은 지연 시간을 제공하여 실시간으로 데이터를 수집하고 여러 소비자 애플리케이션으로 데이터를 스트리밍할 수 있습니다.
- Amazon Kinesis Data Firehose: 실시간 데이터 전송 및 변환할 수 있는 서비스로, 클릭스트림 데이터를 자동으로 배치하고 포맷을 변환하여 S3와 Redshift로 전송할 수 있습니다. 설정이 간단하고 관리가 용이하여 운영 오버헤드를 최소화합니다.
- Amazon S3: 객체 스토리지 서비스로, 클릭스트림 데이터와 같은 대용량 데이터를 저장하는 데 매우 적합합니다. S3에 데이터를 저장하면 다양한 분석 도구에서 쉽게 접근할 수 있습니다.
- Amazon Redshift: 대규모의 데이터를 처리할 수 있는 고성능 데이터 웨어하우스 서비스로, 고성능 SQL 엔진을 통해 대규모 데이터를 효율적으로 분석할 수 있으며, Redshift Spectrum을 사용하면 S3에 저장된 데이터를 직접 쿼리 하여 비용 효율적인 분석이 가능합니다.
이 선택지는 Amazon Kinesis Data Streams를 사용하여 클릭스트림 데이터를 실시간으로 수집, 처리하고, Amazon Kinesis Data Firehose를 통해 데이터를 자동으로 변환하며, Amazon S3에 대규모 데이터를 저장하고 Redshift로 실시간으로 데이터를 분석하는 것을 제안합니다. 이는 300개 이상의 글로벌 웹사이트와 애플리케이션의 요구 사항을 충족하는 최적의 솔루션이 될 수 있습니다.
첫 번째 문제에 대한 정답은 선택지 4번이었습니다!
이어서 두 번째 문제 살펴볼게요.
문제
한 로봇 회사가 의료 수술을 위한 솔루션을 설계하고 있습니다.
로봇은 고급 센서, 카메라 및 AI 알고리즘을 사용하여 환경을 인식하고 수술을 완료합니다.
회사에는 백엔드 서비스와의 원활한 통신을 보장할 AWS 클라우드의 공용 로드 밸런서가 필요합니다.
로드 밸런서는 쿼리 문자열을 기반으로 트래픽을 다른 대상 그룹으로 라우팅할 수 있어야 합니다.
트래픽도 암호화되어야 합니다.
어떤 솔루션이 이러한 요구 사항을 충족합니까?
선택지
- ACM(AWS Certificate Manager)에서 첨부된 인증서와 함께 Application Load Balancer를 사용합니다. 쿼리 매개변수 기반 라우팅을 사용합니다.
- Network Load Balancer를 사용하십시오. AWS Identity and Access Management(IAM)에서 생성된 인증서를 가져옵니다. 인증서를 로드 밸런서에 연결합니다. 쿼리 매개변수 기반 라우팅을 사용합니다.
- 게이트웨이 로드 밸런서를 사용합니다. AWS Identity and Access Management(IAM)에서 생성된 인증서를 가져옵니다. 인증서를 로드 밸런서에 연결합니다. HTTP 경로 기반 라우팅을 사용합니다.
- ACM(AWS Certificate Manager)에서 첨부된 인증서와 함께 Network Load Balancer를 사용하십시오. 쿼리 매개변수 기반 라우팅을 사용합니다.
첫 번째 과정은 “문제의 요구사항 분석하기”입니다.
이 문제에서는 1가지의 요구사항이 존재해요. 그렇지만 세부적으로 알아야 할 내용이 존재하죠.
- AWS 클라우드의 공용 로드 밸런서
- 백엔드 서비스와의 원활한 통신을 보장
- 쿼리 문자열을 기반으로 트래픽을 다른 대상 그룹으로 라우팅
- 트래픽 암호화
“백엔드 서비스와의 원활한 통신을 보장” → 웹사이트의 보이지 않는 부분인 서버와 잘 대화할 수 있게 해줘요.
“쿼리 문자열을 기반으로 트래픽을 다른 대상 그룹으로 라우팅” → 웹주소에 있는 특별한 정보를 보고, 사용자를 다른 곳으로 안내해요.
“트래픽 암호화” → 웹사이트와 사용자 사이에 오가는 정보를 안전하게 보호해요.
두 번째 과정은 “요구사항과 관련된 AWS 서비스 생각하기”입니다.
1. AWS 클라우드의 공용 로드 밸런서
로드 밸런서란 웹사이트나 앱으로 들어오는 사용자 요청을 여러 서버에 골고루 나눠주는 역할을 하는 서비스예요. 앞 문제에서 간단하게 설명했지만, AWS의 로드 밸런서는 네트워크 계층에 따라 여러 로드밸런서가 존재해요.
- Application Load Balancer (ALB): 7계층 (애플리케이션 계층)에서 작동하며, HTTP 및 HTTPS 트래픽을 처리하는 로드 밸런서입니다.
- 고가용성과 자동 확장 기능을 제공하여 안정적인 통신을 보장합니다. → 사용자가 많아지면 자동으로 시스템을 키워서 모든 사람이 불편 없이 사용할 수 있게 해줘요.
- 전 세계적으로 분산된 AWS 인프라를 사용하여 일관된 성능을 제공합니다. → AWS는 전 세계 여러 곳에 컴퓨터를 두고 있기 때문에 어디에서 접속하든 빠르고 안정적으로 서비스를 이용할 수 있어요.
- HTTP/HTTPS 요청의 쿼리 문자열, 경로, 헤더 등을 기반으로 세밀한 라우팅 규칙을 설정할 수 있습니다.→ 웹사이트 주소나 요청에 포함된 특별한 정보를 보고 사용자를 어디로 보낼지 정할 수 있어요.
- Network Load Balancer (NLB): 4계층 (전송 계층)에서 작동하며, TCP 및 UDP 트래픽을 처리하는 로드 밸런서입니다.
- TCP 및 UDP 트래픽을 처리하여 매우 낮은 지연 시간을 제공합니다.
- 초당 수백만 개의 요청을 처리할 수 있으며, 높은 성능과 안정성을 요구하는 애플리케이션에 적합합니다.
- Gateway Load Balancer (GWLB): 3계층(네트워크 계층)에서 작동하며, 주로 네트워크를 보호하는 특별한 도구들을 설치하고 관리하는 데 사용되는 AWS의 관리형 서비스입니다. GWLB는 트래픽 중계 및 네트워크 보안 기능을 손쉽게 통합할 수 있게 해줍니다.
- Classic Load Balancer (CLB): AWS에서 제공하는 초기 로드 밸런서로, 4계층(TCP)과 7계층 (HTTP/HTTPS) 로드 밸런싱을 모두 지원합니다. 기본적인 로드 밸런싱 기능을 제공합니다.
- 로드 밸런서 트래픽 암호화
- AWS Certificate Manager (ACM): SSL/TLS 인증서를 손쉽게 생성, 관리 및 배포할 수 있도록 도와주는 서비스입니다. ACM은 AWS 서비스를 위한 SSL/TLS 인증서를 자동으로 갱신하고, 손쉽게 관리할 수 있게 해줌으로써 보안 프로토콜을 구현하는 복잡성과 비용을 줄여줍니다.
“SSL/TLS 인증서” → 웹사이트가 안전하다는 것을 보여주는 디지털 증명서예요.
마지막 과정은 “선택지 분석하기” 입니다.
선택지 1번은 “ACM(AWS Certificate Manager)에서 첨부된 인증서와 함께 Application Load Balancer를 사용합니다. 쿼리 매개변수 기반 라우팅을 사용합니다.” 입니다.
- Application Load Balancer (ALB): ALB는 7계층 로드 밸런서로, HTTP 및 HTTPS 트래픽을 처리하며, 웹 애플리케이션에 적합합니다. ALB는 클라이언트와 백엔드 서비스 간의 원활한 통신을 보장하며, 고가용성과 자동 확장 기능을 제공합니다. 또한, HTTP/HTTPS 요청의 쿼리 매개변수, 경로, 헤더 등을 기반으로 세밀한 라우팅 규칙을 설정할 수 있습니다.
- AWS Certificate Manager (ACM): ACM은 SSL/TLS 인증서를 손쉽게 생성, 관리 및 배포할 수 있는 서비스로, ACM을 통해 인증서를 자동 갱신하고 안전하게 관리할 수 있습니다.
이 선택지는 ALB를 사용하여 HTTP/HTTPS 트래픽을 처리하고, ACM을 통해 인증서를 관리하며, 쿼리 매개변수 기반 라우팅을 사용하여 복잡한 트래픽 라우팅 시나리오를 처리하는 것을 제안합니다. 이는 로봇 회사의 의료 수술 솔루션 요구 사항을 충족하는 최적의 솔루션이 될 수 있습니다.
선택지 2번은 “Network Load Balancer를 사용하십시오. AWS Identity and Access Management(IAM)에서 생성된 인증서를 가져옵니다. 인증서를 로드 밸런서에 연결합니다. 쿼리 매개변수 기반 라우팅을 사용합니다.”입니다.
- Network Load Balancer (NLB): NLB는 4계층 로드 밸런서로, TCP 및 UDP 트래픽을 처리하며 매우 낮은 지연 시간과 고성능을 제공합니다.
- AWS Identity and Access Management (IAM): AWS 리소스에 대한 액세스를 안전하게 관리할 수 있는 서비스로, IAM을 통해 SSL/TLS 인증서를 생성하고 이를 NLB에 연결하여 트래픽 암호화를 구현할 수 있습니다.
선택지가 정답이 아닌 이유는 NLB는 4계층에서 작동하여 쿼리 매개변수 기반 라우팅을 지원하지 않기 때문입니다. HTTP/HTTPS 계층의 세밀한 라우팅을 필요로 하는 경우 적합하지 않기 때문입니다.
선택지 3번은 “게이트웨이 로드 밸런서를 사용합니다. AWS Identity and Access Management(IAM)에서 생성된 인증서를 가져옵니다. 인증서를 로드 밸런서에 연결합니다. HTTP 경로 기반 라우팅을 사용합니다.” 입니다.
- Gateway Load Balancer (GWLB): GWLB는 3계층 로드 밸런서로, 주로 네트워크 보안 어플라이언스를 배포하는 데 사용됩니다.
- AWS Identity and Access Management (IAM): AWS 리소스에 대한 액세스를 안전하게 관리할 수 있는 서비스로, IAM을 통해 SSL/TLS 인증서를 생성하고 이를 GWLB에 연결하여 트래픽 암호화를 구현할 수 있습니다.
선택지가 정답이 아닌 이유는 GWLB는 3계층에서 작동하여 HTTP 경로 기반 라우팅을 지원하지 않기 때문입니다. HTTP/HTTPS 트래픽의 세밀한 라우팅을 필요로 하는 경우 적합하지 않기 때문입니다.
선택지 4번은 “ACM(AWS Certificate Manager)에서 첨부된 인증서와 함께 Network Load Balancer를 사용하십시오. 쿼리 매개변수 기반 라우팅을 사용합니다.” 입니다.
- Network Load Balancer (NLB): NLB는 4계층 로드 밸런서로, TCP 및 UDP 트래픽을 처리하며 매우 낮은 지연 시간과 고성능을 제공합니다.
- AWS Certificate Manager (ACM): ACM은 SSL/TLS 인증서를 손쉽게 생성, 관리 및 배포할 수 있는 서비스로, ACM을 통해 인증서를 자동 갱신하고 안전하게 관리할 수 있습니다.
선택지가 정답이 아닌 이유는 NLB는 4계층에서 작동하여 쿼리 매개변수 기반 라우팅을 지원하지 않기 때문입니다. HTTP/HTTPS 계층의 세밀한 라우팅을 필요로 하는 경우 적합하지 않기 때문입니다.
두 번째 문제에 대한 정답은 선택지 1번이었습니다!
마지막으로 한 문제 더 분석해 볼게요.
문제
솔루션 설계자는 Amazon EC2 인스턴스를 호스팅하는 VPC 네트워크를 보호해야 합니다.
EC2 인스턴스는 매우 민감한 데이터를 포함하고 프라이빗 서브넷에서 실행됩니다.
회사 정책에 따라 VPC에서 실행되는 EC2 인스턴스는 타사 URL을 사용하는 소프트웨어 제품 업데이트를 위해 인터넷에서 승인된 타사 소프트웨어 리포지토리에만 액세스할 수 있습니다.
다른 인터넷 트래픽은 차단되어야 합니다.
어떤 솔루션이 이러한 요구 사항을 충족합니까?
선택지
- 아웃바운드 트래픽을 AWS 네트워크 방화벽으로 라우팅하도록 프라이빗 서브넷의 라우팅 테이블을 업데이트합니다. 도메인 목록 규칙 그룹을 구성합니다.
- AWS WAF 웹 ACL을 설정합니다. 소스 및 대상 IP주소 범위 집합을 기반으로 트래픽 요청을 필터링하는 사용자 지정 규칙 집합을 만듭니다.
- 엄격한 인바운드 보안 그룹 규칙을 구현합니다. URL을 지정하여 인터넷에서 승인된 소프트웨어 리포지토리에 대한 트래픽만 허용하는 아웃바운드 규칙을 구성합니다.
- EC2 인스턴스 앞에 Application Load Balancer(ALB)를 구성합니다. 모든 아웃바운드 트래픽을 ALB로 보냅니다. 인터넷에 대한 아웃바운드 액세스를 위해 ALB의 대상 그룹에서 URL 기반 규칙 리스너를 사용합니다.
첫 번째 과정은 “문제의 요구사항 분석하기”입니다.
이 문제에서는 2가지의 요구사항이 존재해요.
- VPC 네트워크 보호
- 프라이빗 서브넷에서 실행
“VPC 네트워크 보호” → "Virtual Private Cloud"의 약자로, 가상 사설 네트워크를 말해요.
“프라이빗 서브넷에서 실행” → 서브넷은 VPC를 더 작게 나눈 공간이에요. 프라이빗 서브넷은 이 중에서도 특별히 숨겨진 공간이라고 생각하면 돼요.
두 번째 과정은 “요구사항과 관련된 AWS 서비스 생각하기”입니다.
1. VPC 네트워크 보호
- AWS WAF (Web Application Firewall): 웹 애플리케이션을 악성 트래픽으로부터 보호하는 서비스입니다. 주로 HTTP/HTTPS 트래픽을 검사하고 SQL 인젝션, 크로스 사이트 스크립팅(XSS) 등 웹 애플리케이션 레벨의 공격을 방어합니다.
SQL 인젝션이나 크로스 사이트 스크립팅은 인터넷을 사용하는 모든 웹사이트가 조심해야 하는 위험한 공격 방법들이랍니다. 클라우드 전문가가 되려면 이런 공격들이 어떤 건지 알아두면 도움이 돼요. 그래서 이 두 가지 공격에 대해 간단하게 설명해 드릴게요.
“크로스 사이트 스크립팅(XSS)” → 웹사이트의 데이터베이스를 공격하는 방법이에요. 웹사이트에서 정보를 입력하는 곳에 특별한 코드를 넣어서 데이터베이스를 속이는 거죠. 이렇게 하면 해커가 데이터베이스의 중요한 정보를 빼내거나, 심지어는 전체 데이터를 지워버릴 수도 있어요.
“SQL 인젝션” → 웹사이트에 나쁜 코드를 몰래 심는 방법이에요. 보통 댓글이나 게시판 같은 곳에 이 코드를 숨겨놓죠. 그러면 다른 사용자들이 그 페이지를 볼 때 자신도 모르게 이 나쁜 코드를 실행하게 돼요. 이를 통해 해커는 사용자의 개인 정보를 훔치거나, 사용자의 계정을 탈취할 수 있어요.
- AWS Network Firewall: 네트워크 레벨에서 트래픽을 검사하고 제어하는 관리형 방화벽 서비스입니다. VPC 전체에 대해 방화벽 정책을 적용하여 광범위한 네트워크 보안을 제공합니다.
→ 간단한 구조도를 통해 어떻게 방화벽이 사용되는지 설명해볼게요. 인터넷에서 오는 트래픽은 Internet Gateway를 통과한 후 첫 번째 퍼블릭 서브넷에서 트래픽을 필터링하고 필요에 따라 차단하거나 허용한 뒤에, 두 번째 퍼블릭 서브넷의 EC2 인스턴스로 전달됩니다. 이런 다층 보안 구조로 데이터를 보호해요
- AWS Security Groups: VPC 내에서 인스턴스 수준의 트래픽을 제어하는 방화벽 역할을 합니다.
→ 보안그룹은 주로 네트워크 수준의 보안을 제공하는 서비스들에 적용돼요. 주로 EC2 인스턴스, RDS 인스턴스, ELB 등에서 사용되고 있답니다. 간단하게 EC2 인스턴스에서 보안그룹을 사용하는 구조도를 설명하면, 사용자는 인터넷을 통해 Internet Gateway를 거쳐 VPC의 Public subnet에 있는 EC2 인스턴스에 접근할 수 있습니다. Security group은 이 EC2 인스턴스들에 대한 접근을 제어하여 보안을 강화해요.
- Network ACL: 서브넷 수준에서 트래픽을 제어하는 추가적인 보안 계층을 제공합니다.
→ NACL은 서브넷 레벨에서 작동하므로, VPC 내의 서브넷과 연관된 모든 리소스에 영향을 줍니다. 그러나 VPC 외부에서 동작하는 서비스 (예: S3, DynamoDB)나 VPC와 직접적으로 연결되지 않는 서비스들에는 NACL이 적용되지 않아요. 이 구조도는 VPC 내에서 네트워크 트래픽이 어떻게 흐르고 제어되는지를 보여줍니다. 인터넷에서 들어오는 트래픽은 인터넷 게이트웨이를 통해 VPC에 진입하고, 네트워크 ACL을 통해 트래픽이 제어된 다음 공개 서브넷 내의 인스턴스로 전달돼요.
마지막 과정은 “선택지 분석하기” 입니다.
선택지 1번은 “아웃바운드 트래픽을 AWS 네트워크 방화벽으로 라우팅하도록 프라이빗 서브넷의 라우팅 테이블을 업데이트합니다. 도메인 목록 규칙 그룹을 구성합니다.” 입니다.
- AWS 네트워크 방화벽: 네트워크 레벨에서 트래픽을 검사하고 제어하는 관리형 방화벽 서비스입니다. 상태 기반 트래픽 검사, 애플리케이션 및 네트워크 레벨 필터링, 도메인 및 IP 기반 필터링, 침입 방지 시스템(IPS) 기능을 제공합니다.
- 라우팅 테이블: VPC 내에서 네트워크 트래픽이 라우팅되는 방식을 정의합니다. 라우팅 테이블을 사용하여 프라이빗 서브넷의 모든 아웃바운드 트래픽이 AWS 네트워크 방화벽을 통하도록 설정합니다.
- 도메인 목록 규칙 그룹: 특정 도메인 목록을 기반으로 트래픽을 필터링합니다. 승인된 도메인에만 접근을 허용하고, 나머지 도메인은 차단할 수 있습니다.
이 선택지는 프라이빗 서브넷에서 나가는 모든 아웃바운드 트래픽을 AWS 네트워크 방화벽을 통해 라우팅하고, 도메인 목록 규칙 그룹을 사용하여 승인된 소프트웨어 리포지토리에 대한 트래픽만 허용하는 효과적인 방법입니다. 이렇게 하면 네트워크 레벨에서 세밀하게 트래픽을 제어할 수 있습니다.
선택지 2번은 “AWS WAF 웹 ACL을 설정합니다.소스 및 대상 IP주소 범위 집합을 기반으로 트래픽 요청을 필터링하는 사용자 지정 규칙 집합을 만듭니다.”입니다.
- AWS WAF (Web Application Firewall): 웹 애플리케이션을 악성 트래픽으로부터 보호하는 서비스입니다. 주로 HTTP/HTTPS 트래픽을 검사하고 SQL 인젝션, 크로스 사이트 스크립팅(XSS) 등 웹 애플리케이션 레벨의 공격을 방어합니다.
- 웹 ACL: AWS WAF를 사용하여 웹 애플리케이션에 대한 접근 제어를 설정합니다. 사용자 지정 규칙 집합을 통해 소스 및 대상 IP 주소 범위를 기반으로 트래픽 요청을 필터링할 수 있습니다.
선택지가 정답이 아닌 이유는 AWS WAF는 주로 웹 애플리케이션에 대한 보호를 제공하며, 네트워크 레벨의 트래픽 필터링에는 적합하지 않기 때문입니다. 또한, 승인된 타사 소프트웨어 리포지토리에 대한 아웃바운드 트래픽을 효과적으로 제어하는 데 제한이 있을 수 있습니다.
선택지 3번은 “엄격한 인바운드 보안 그룹 규칙을 구현합니다. URL을 지정하여 인터넷에서 승인된 소프트웨어 리포지토리에 대한 트래픽만 허용하는 아웃바운드 규칙을 구성합니다.” 입니다.
- AWS Security Groups: VPC 내에서 인스턴스 수준의 트래픽을 제어하는 방화벽 역할을 합니다. 인바운드 및 아웃바운드 트래픽 제어가 가능합니다.
- 아웃바운드 규칙 구성: 보안 그룹의 아웃바운드 규칙을 사용하여 승인된 소프트웨어 리포지토리에 대한 트래픽만 허용하고, 나머지 트래픽을 차단할 수 있습니다.
선택지가 정답이 아닌 이유는 보안 그룹은 인스턴스 수준에서 트래픽을 제어하는 데 적합하지만, 도메인 이름으로 아웃바운드 트래픽을 필터링할 수 없으며, URL 기반 필터링에는 한계가 있기 때문입니다.
선택지 4번은 “EC2 인스턴스 앞에 Application Load Balancer(ALB)를 구성합니다. 모든 아웃바운드 트래픽을 ALB로 보냅니다. 인터넷에 대한 아웃바운드 액세스를 위해 ALB의 대상 그룹에서 URL 기반 규칙 리스너를 사용합니다.” 입니다.
- Application Load Balancer (ALB): HTTP/HTTPS 트래픽을 처리하기 위해 설계된 로드 밸런서로, URL 기반 라우팅, SSL 종료, 웹소켓 및 HTTP/2 지원 등의 기능을 제공합니다.
- URL 기반 규칙 리스너: ALB의 리스너 규칙을 사용하여 특정 URL에 대한 트래픽을 대상 그룹으로 라우팅할 수 있습니다.
선택지가 정답이 아닌 이유는 ALB는 주로 인바운드 트래픽을 처리하는 데 사용되며, 아웃바운드 트래픽을 제어하는 데는 적합하지 않기 때문입니다. 또한, URL 기반 아웃바운드 필터링을 직접 지원하지 않습니다.
마지막 문제에 대한 정답은 선택지 1번이었습니다!
지금까지 SAA 자격증 문제를 분석해 보았는데요.
문제의 요구사항과 관련된 서비스를 미리 생각해 보고, 선택지를 분석하니 서비스들이 낯설게 안 느껴지죠?
복잡해 보이는 문제도 차근차근 접근하면 충분히 해결할 수 있다는 점을 기억하세요.
AWS SAA 자격증을 따기 위한 여정은 결코 쉽지 않지만, 그 과정에서 여러분은 더 큰 성장을 경험할 수 있습니다.
여러분이 목표를 향해 나아가는 그 의지와 열정을 응원합니다.
작은 한 걸음 한 걸음이 모여 큰 성과를 이루는 법이죠!
오늘 글이 유익하셨길 바라며, 다음에는 또 다른 문제로 찾아뵙겠습니다.
감사합니다. 다음 글에서 만나요! 😊
'AWS > SAA 준비' 카테고리의 다른 글
AWS SAA 합격으로 가는 길 #6: [CloudWatch] 마스터하기 (0) | 2024.08.19 |
---|---|
AWS SAA 합격으로 가는 길 #5: [CloudFront] 마스터하기 (0) | 2024.08.16 |
AWS SAA 합격으로 가는 길 #4: [S3 데이터보호] 마스터하기 (1) | 2024.08.12 |
AWS SAA 합격으로 가는 길 #3: [Windows 파일 공유] 마스터하기 (0) | 2024.08.07 |
AWS SAA 합격으로 가는 길 #2: [S3 마이그레이션] 마스터하기 (0) | 2024.07.30 |