Q176 프라이빗 서브넷의 EC2 인스턴스에서 실행 중인 애플리케이션이 DynamoDB 테이블에 접근해야 합니다. 트래픽이 보안을 위해 절대 인터넷망(공용 네트워크)으로 나가지 않게 하면서, 가장 안전하게 테이블에 연결하는 비결은? DynamoDB용 VPC 게이트웨이 엔드포인트를 생성하여 사용합니다. 퍼블릭 서브넷에 NAT 게이트웨이를 설치하여 통신합니다. 프라이빗 서브넷에 NAT 인스턴스를 두고 외부 연결을 시도합니다. VPC에 인터넷 게이트웨이를 달고 인스턴스에 퍼블릭 IP를 부여합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. VPC 내부에서 S3나 DynamoDB 같은 AWS 공용 서비스에 프라이빗하게 접근하고 싶을 때는 게이트웨이 엔드포인트가 정답입니다. 이 방식을 쓰면 데이터가 인터넷을 한 발짝도 밟지 않고 AWS 내부 전용망을 통해서만 이동하므로, 보안성이 가장 높으면서도 별도의 장비 비용(NAT 등)이 들지 않아 매우 경제적입니다. 다른 옵션인 B와 C는 결국 NAT라는 중계기를 통해 외부망(인터넷) 경로를 거쳐야 하므로 보안상 덜 안전하며, D의 인터넷 게이트웨이 방식은 프라이빗 서브넷이라는 전제 조건을 아예 무너뜨리는 위험한 설계입니다. 💡 이 문제의 핵심 용어 VPC Endpoint (Gateway): 인터넷망을 거치지 않고 VPC 내부에서 S3나 DynamoDB에 직접 연결되는 전용 통로 Private Subnet: 외부 인터넷에서 직접 들어올 수 없는 안전한 내부 네트워크 구역 DynamoDB: 서버 없이 사용하는 초고속 NoSQL 데이터베이스
Q177 DynamoDB에 미디어 정보를 담아 쓰고 있는데, 읽기 요청이 너무 많아 지연 시간이 발생하고 있습니다. 운영 인력은 부족하고 앱 코드를 뜯어고칠 여유도 없을 때, 성능을 단숨에 끌어올릴 최고의 추천 서비스는? Redis용 Amazon ElastiCache를 도입합니다. Amazon DynamoDB Accelerator(DAX)를 사용합니다. 전역 테이블(Global Tables)을 만들어 데이터를 여러 곳에 복제합니다. Memcached용 Amazon ElastiCache 클러스터를 구성합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. DynamoDB의 성능 효율을 높이면서 '앱 코드 수정 최소화'와 '운영 부담 감소'라는 두 마리 토끼를 잡으려면 DAX가 유일한 해답입니다. DAX는 DynamoDB 전용 캐시 서버로, 기존 API와 완벽히 호환되기 때문에 코드 수정 없이 설정만으로 읽기 성능을 마이크로초 단위로 단축해주는 효자 서비스입니다. 다른 옵션인 A와 D의 ElastiCache는 범용 캐시라 성능은 좋지만, 이를 쓰기 위해 애플리케이션의 데이터 읽기/쓰기 로직을 대대적으로 수정해야 하므로 이번 요구 사항과는 맞지 않습니다. C의 전역 테이블은 전 세계 배포에는 유리하지만 단일 리전 내의 읽기 지연 해소와는 직접적인 관계가 적습니다. 💡 이 문제의 핵심 용어 DAX (DynamoDB Accelerator): DynamoDB 앞에 붙어서 읽기 속도를 획기적으로 높여주는 전용 인메모리 캐시 Latency: 데이터 요청 후 응답이 올 때까지 걸리는 지연 시간
Q178 단일 리전에서 EC2와 RDS를 운영 중인 회사가 모든 데이터를 다른 리전으로 백업하려 합니다. 관리자가 일일이 손대지 않아도 되는 '최소한의 운영 오버헤드'를 보장하는 똑똑한 솔루션은? AWS Backup을 사용하여 EC2와 RDS 백업을 타 리전으로 자동 복제합니다. Data Lifecycle Manager(DLM)를 써서 백업본을 타 리전으로 복사합니다. EC2는 AMI로 구워 옮기고, RDS는 타 리전에 읽기 복제본을 만듭니다. EBS 스냅샷을 찍어 옮기고, RDS 스냅샷은 S3로 내보낸 뒤 CRR 기능을 켭니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 여러 서비스의 백업을 한곳에서 통합 관리하고 타 리전 복사까지 알아서 해주는 'AWS Backup'이 정답입니다. 관리 콘솔에서 정책 하나만 세워두면 EC2와 RDS 모두를 약속된 시간에 백업하고 안전한 다른 나라 리전으로 옮겨주기 때문에, 운영자의 수고를 가장 많이 덜어주는 현대적인 방식입니다. 다른 옵션인 B의 DLM은 주로 EBS 볼륨 백업에 특화되어 있어 RDS까지 아우르기엔 부족하며, C와 D는 서비스마다 설정법이 다르고 수동 작업이나 복잡한 파이프라인이 들어가서 운영 오버헤드가 크게 발생합니다. 💡 이 문제의 핵심 용어 AWS Backup: AWS의 다양한 자산(EC2, RDS, S3 등)을 한곳에서 중앙 관리하는 백업 비서 Cross-Region Copy: 재해 복구를 위해 백업 데이터를 물리적으로 멀리 떨어진 다른 리전으로 옮겨두는 것
Q179 EC2 인스턴스에서 돌아가는 앱이 RDS에 접속할 때 쓰는 아이디와 비번을 안전하게 보관하려 합니다. Systems Manager의 파라미터 스토어(Parameter Store)를 쓰기로 했을 때, 인스턴스가 이 정보를 가져오게 하는 가장 정석적인 방법은? 파라미터 읽기 권한과 KMS 복호화 권한이 있는 IAM 역할을 만들어 인스턴스에 부여합니다. 파라미터 읽기 및 KMS 복호화 권한을 담은 IAM 정책을 인스턴스 사용자에게 직접 할당합니다. 파라미터 스토어와 EC2 사이의 신뢰 관계를 맺고 보안 주체를 RDS로 정합니다. RDS와 EC2 사이에 신뢰 관계를 맺고 보안 주체를 Systems Manager로 정합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. EC2 인스턴스에게 특정 권한(파라미터 읽기 및 암호 풀기)을 안전하게 전달하는 표준 방법은 IAM 역할을 사용하는 것입니다. 아이디와 비번 같은 민감 정보는 파라미터 스토어에서 암호화되어 저장되므로, 이를 읽기 위한 'Get' 권한과 암호를 풀기 위한 'KMS Decrypt' 권한을 하나로 묶어 역할로 부여하는 것이 가장 보안상 우수하고 깔끔합니다. 다른 옵션인 B의 정책 직접 할당은 인스턴스 단위가 아닌 개별 사용자 단위라 관리 효율이 떨어지며, C와 D에서 언급한 신뢰 관계 설정 방식은 이 상황의 권한 부여 로직과는 전혀 다른 엉뚱한 기술적 접근입니다. 💡 이 문제의 핵심 용어 Parameter Store: 비밀번호나 설정값 같은 민감한 데이터를 안전하게 보관해주는 저장소 KMS (Key Management Service): 데이터를 암호화하거나 풀 때 사용하는 열쇠(암호화 키)를 관리하는 서비스 IAM Role: 서버나 서비스에게 일시적으로 특정 행동을 할 수 있는 자격을 주는 가상의 신분증
Q180 NLB 뒤에 EC2 서버가 있고 API Gateway를 통해 외부 유저를 받고 있습니다. SQL 인젝션 공격을 막고, 대규모 지능형 DDoS 공격까지 완벽하게 차단하고 싶을 때 설계자가 추천하는 최강 보안 조합 두 가지는? (2개 선택) AWS WAF를 사용하여 NLB를 철저히 보호합니다. NLB 앞에 AWS Shield Advanced를 활성화하여 방어력을 높입니다. AWS WAF를 Amazon API Gateway에 연결하여 웹 공격을 필터링합니다. GuardDuty와 Shield Standard를 결합하여 탐지 시스템을 구축합니다. API Gateway와 Shield Standard를 연동하여 기본 방어 체계를 갖춥니다. 정답 확인 및 해설 📖 해설 정답은 B와 C입니다. 웹 공격(L7)과 네트워크 공격(L3/L4)을 모두 잡으려면 WAF와 Shield Advanced의 협공이 필요합니다. 먼저 API Gateway에 WAF를 붙여 SQL 인젝션 같은 지저분한 웹 공격을 1차로 걸러내고, NLB에는 Shield Advanced를 적용해 폭풍처럼 쏟아지는 대규모 DDoS 공격으로부터 인프라를 지켜내는 것이 가장 완벽한 방패 구성입니다. 다른 옵션인 A의 WAF는 NLB에 직접 붙일 수 없고(ALB만 가능), D와 E의 Standard 서비스는 기본적인 방어는 해주지만 '대규모 지능형 공격'을 확실히 밀어내기에는 힘이 부칩니다. 💡 이 문제의 핵심 용어 SQL Injection: 입력창에 악성 코드를 심어 데이터베이스의 정보를 탈취하거나 망가뜨리는 공격 기법 DDoS: 엄청난 트래픽을 한꺼번에 쏘아 서버를 마비시키는 거친 공격 AWS Shield Advanced: 공격이 들어오면 전문가들이 직접 투입되어 대응까지 해주는 프리미엄 보안 서비스
Q181 덩치가 큰 레거시 앱을 ECS 마이크로서비스로 쪼개서 다시 만들려 합니다. 데이터 처리 순서는 상관없지만, 서비스끼리 서로 영향을 주지 않고 안정적으로 데이터를 주고받게 만들고 싶을 때 가장 좋은 통신 방식은? SQS 대기열을 만들어 생산자가 데이터를 넣고 소비자가 꺼내 쓰게 합니다. SNS 주제를 만들어 생산자가 알림을 쏘고 소비자가 구독하게 합니다. Lambda 함수를 거쳐서 데이터를 전달하는 로직을 앱에 추가합니다. DynamoDB에 데이터를 쓰고 스트림 기능을 켜서 변화를 감지하게 합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 마이크로서비스들 사이에서 '서로 몰라도 일이 되게' 만드는(디커플링) 일등 공신은 SQS입니다. 데이터가 들어오는 대로 SQS라는 바구니에 담아두면, 받는 쪽 서버가 바쁘더라도 데이터가 날아가지 않고 안전하게 보관되었다가 여유가 생길 때 순차적으로 처리할 수 있어 시스템 전체의 안정성이 비약적으로 상승합니다. 다른 옵션인 B의 SNS는 알림을 뿌리는 용도라 데이터를 안전하게 '보관'했다가 처리하기엔 부족하며, C와 D는 불필요하게 구조가 복잡해지거나 추가적인 코딩 부담이 커서 운영 효율 면에서 SQS에게 밀립니다. 💡 이 문제의 핵심 용어 Microservices: 하나의 거대한 앱을 작고 독립적인 기능들로 나누어 만드는 방식 SQS (Simple Queue Service): 메시지를 잃어버리지 않게 비동기로 보관했다가 전달해주는 완충 바구니 Decoupling: 시스템 구성 요소들이 서로 의존하지 않게 떼어놓아 하나가 고장 나도 전체가 멈추지 않게 하는 설계
Q182 온프레미스 MySQL을 AWS로 옮기려 합니다. 최근 DB 중단 사고로 큰 피해를 보았던 터라, 이번에는 어떤 사고가 터져도 절대 데이터 손실이 없도록 최소 두 개의 노드에 실시간으로 복제되는 구조를 만들고 싶습니다. 정답은? 3개의 가용 영역에 3개의 노드를 동기식으로 복제하는 RDS를 만듭니다. 다중 AZ(Multi-AZ) 기능을 켠 RDS MySQL 인스턴스를 생성합니다. RDS를 만들고 다른 리전에 비동기식으로 복제되는 읽기 전용 복제본을 둡니다. EC2에 MySQL을 깔고 Lambda 함수를 짜서 실시간으로 데이터를 복사합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 고가용성과 데이터 무결성을 위한 AWS의 표준 답안은 '다중 AZ(Multi-AZ) 배포'입니다. 이 기능을 켜면 AWS가 알아서 다른 가용 영역에 똑같은 복제본을 동기식으로 만들어 관리하며, 메인 DB가 죽더라도 0.1초의 망설임 없이 복제본을 메인으로 승격시켜 서비스를 유지해주기 때문에 데이터 손실 걱정을 싹 날려줍니다. 다른 옵션인 A는 비용이 너무 많이 들고 관리 포인트가 늘어나며, C의 읽기 복제본은 '비동기' 방식이라 메인 DB가 죽는 찰나의 데이터는 잃어버릴 위험이 있습니다. D는 사람이 수동으로 시스템을 구축하는 것이라 신뢰도가 낮고 운영 부담만 큽니다. 💡 이 문제의 핵심 용어 Multi-AZ (Multi-Availability Zone): 물리적으로 떨어진 두 곳의 데이터 센터에 실시간으로 데이터를 복사해두는 고가용성 기술 Synchronous Replication (동기 복제): 메인에 기록할 때 복제본에도 똑같이 기록될 때까지 기다렸다가 완료하는 철저한 방식
Q183 새로운 주문 사이트를 만드는데, 서버 관리나 패치 같은 노가다는 아예 안 하고 싶습니다. 앱은 사용량에 따라 읽기/쓰기 용량이 즉시 확장되어야 하고 가용성도 높아야 합니다. 어떤 조합이 가장 이상적일까요? S3(정적) + API Gateway/Lambda(동적) + DynamoDB 온디맨드 조합을 씁니다. S3(정적) + API Gateway/Lambda(동적) + Aurora 오토 스케일링 조합을 씁니다. EC2 오토 스케일링 그룹과 ALB를 쓰고 DB는 DynamoDB 프로비저닝 모드를 씁니다. EC2 오토 스케일링 그룹과 ALB를 쓰고 DB는 Aurora 오토 스케일링을 씁니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. '서버 관리 최소화'와 '무한 확장성'을 원한다면 무조건 서버리스(Serverless) 라인을 타야 합니다. 화면은 S3, 로직은 람다, 디비는 다이너모DB로 구성하면 우리가 직접 관리할 서버가 단 한 대도 없게 됩니다. 특히 DynamoDB 온디맨드 모드는 미리 용량을 정할 필요 없이 손님이 1만 명 오든 100만 명 오든 알아서 받아내기 때문에 이번 요구 사항에 완벽히 부합합니다. 다른 옵션인 B의 Aurora도 훌륭하지만 기본 설정이 서버리스라기보단 관리형에 가깝고, C와 D는 EC2라는 '관리해야 할 서버'가 포함되어 있어 운영 수고를 줄이고 싶다는 목표에 어긋납니다. 💡 이 문제의 핵심 용어 Serverless: 서버를 빌려 쓰는 게 아니라 서비스 단위로 사용하여 인프라 고민을 없앤 기술 DynamoDB On-demand: 사용량에 상관없이 쓴 만큼만 돈 내고 용량 조절도 필요 없는 똑똑한 DB 모드
Q184 프라이빗 서브넷에 있는 온프레미스 데이터베이스에 우리 쪽 Lambda 함수가 접속해야 합니다. 이미 Direct Connect라는 전용선은 깔려 있는 상태네요. 람다 일꾼이 사내망 DB로 안전하게 찾아가게 하려면 무엇을 해줘야 할까요? VPC에 연결되도록 람다 함수 설정을 변경하고 적절한 보안 그룹을 부여합니다. AWS와 사내망 사이에 VPN을 따로 뚫어서 람다 트래픽을 거기로 보냅니다. VPC 라우팅 테이블을 고쳐서 람다가 전용선을 바로 타게 길을 내줍니다. 람다에게 탄력적 IP를 주고 전용선 없이 인터넷을 통해 돌아가게 만듭니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 람다 함수가 우리 쪽 VPC 안의 사설망 자원(전용선 포함)을 쓰게 하려면, 먼저 람다를 VPC에 소속시켜야 합니다. 일단 VPC 일원이 되면 기존에 깔려 있는 Direct Connect나 VPN 통로를 마치 자기 집 안방 쓰듯 자연스럽게 이용해서 사내 데이터베이스까지 안전하게 도달할 수 있게 됩니다. 다른 옵션인 B는 이미 전용선이 있는데 또 길을 만드는 꼴이라 낭비이며, C는 람다를 먼저 VPC에 넣어야만 의미가 있는 조치입니다. D는 보안상 매우 위험할뿐더러 프라이빗 서브넷에 있는 DB에는 아예 접근조차 할 수 없는 방식입니다. 💡 이 문제의 핵심 용어 VPC (Virtual Private Cloud): AWS 안에 만든 우리 회사 전용 가상 네트워크 운동장 Hyperplane ENI: 람다가 VPC 내부와 통신하기 위해 사용하는 보이지 않는 특수 네트워크 카드 Direct Connect: 인터넷망이 아닌 회사와 AWS를 직접 잇는 전용 물리 회선
Q185 ECS에서 돌아가는 이미지 앱이 S3에 결과물을 저장하려 합니다. 앱이 S3 창고에 들어갈 '열쇠(권한)'를 확실히 쥐어주는 가장 올바른 IAM 설정 방법은 무엇인가요? ECS의 전체 관리 권한을 업데이트하고 모든 컨테이너를 한 번 껐다 켭니다. S3 권한을 담은 IAM 역할을 만들고, ECS 작업 정의(Task Definition)에 taskRoleArn으로 등록합니다. ECS 클러스터의 실행 설정(Launch Configuration)에서 보안 그룹을 열어줍니다. S3 전용 IAM 계정을 하나 파서 ID/PW로 로그인한 뒤 클러스터를 재부학합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. ECS에서 권한 관리를 할 때 가장 중요한 원칙은 '작업(Task)' 단위로 권한을 주는 것입니다. '태스크 역할(Task Role)'을 하나 구워두고 이를 작업 정의서에 딱 적어두면, 컨테이너가 실행될 때 자동으로 필요한 권한을 부여받아 안전하게 S3에 파일을 올릴 수 있습니다. 이는 서버 전체에 권한을 주는 것보다 훨씬 안전하고 세밀한 보안 관리 방식입니다. 다른 옵션인 A는 보안 범위가 너무 넓어 위험하고, C의 보안 그룹은 '통로'만 여는 것이지 '열쇠'를 주는 것이 아닙니다. D는 아이디와 비번을 코드나 설정에 노출하게 되어 보안의 금기를 깨는 방식입니다. 💡 이 문제의 핵심 용어 ECS Task Role: 컨테이너 하나하나가 AWS 서비스를 이용할 때 쓰는 전용 권한 카드 Task Definition: 컨테이너가 어떤 CPU, 메모리를 쓰고 어떤 역할 카드를 가질지 적어둔 명세서
Q186 윈도우 기반 앱들을 AWS로 옮기려는데, 여러 대의 서버(EC2 Windows)가 동시에 접속해서 읽고 쓸 수 있는 '공유 파일 시스템'이 꼭 필요합니다. 어떤 솔루션을 구축하는 것이 가장 현명할까요? Storage Gateway를 볼륨 게이트웨이 모드로 구성해서 인스턴스에 붙입니다. Windows 파일 서버용 Amazon FSx를 만들어 각 인스턴스에 마운트합니다. Amazon EFS를 만들고 각 윈도우 인스턴스에 네트워크 드라이브로 연결합니다. 거대한 EBS 볼륨을 하나 만들어서 여러 서버에 동시에 연결(Multi-Attach)합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 윈도우 서버끼리 파일을 공유할 때 쓰는 표준 기술(SMB)을 AWS가 통째로 서비스화한 것이 바로 'FSx for Windows File Server'입니다. 윈도우 환경과 100% 호환되므로 기존 앱을 고칠 필요 없이 바로 연결해서 쓸 수 있고, 여러 가용 영역에 걸쳐 고가용성까지 보장하기 때문에 윈도우 마이그레이션의 필수 아이템입니다. 다른 옵션인 A는 사내망과 클라우드를 잇는 용도라 성격이 다르고, C의 EFS는 리눅스 전용이라 윈도우에서는 성능과 호환성이 크게 떨어집니다. D의 EBS Multi-Attach는 특정 타입의 초고속 디스크에서만 동작하며 윈도우 파일 시스템 수준의 공유 기능(파일 잠금 등)을 제공하지 않아 적절치 않습니다. 💡 이 문제의 핵심 용어 FSx for Windows File Server: 윈도우 서버의 정석적인 파일 공유 방식을 클라우드에서 그대로 제공하는 서비스 SMB (Server Message Block): 윈도우 컴퓨터끼리 파일을 주고받을 때 사용하는 표준 대화 언어 Mount (마운트): 외부 저장 장치를 내 컴퓨터의 폴더나 드라이브처럼 연결해서 쓰는 과정
Q187 전자상거래 사이트를 개발 중인데, 관계형 데이터베이스와 컨테이너 앱을 고가용성으로 구성하고 싶습니다. 사람이 일일이 손대지 않아도 '알아서 잘' 굴러가는 자동화된 고가용성 솔루션 두 가지를 고른다면? (2개 선택) 다중 AZ(Multi-AZ) 모드로 RDS 데이터베이스를 생성합니다. 다른 가용 영역에도 RDS를 만들고 읽기 복제본을 수동으로 여러 개 둡니다. EC2 기반의 Docker 클러스터를 직접 구축하여 부하에 대응합니다. Fargate 기반의 ECS 클러스터를 만들어 애플리케이션 부하를 처리합니다. EC2 타입을 명시한 ECS 클러스터를 만들어 애플리케이션을 배포합니다. 정답 확인 및 해설 📖 해설 정답은 A와 D입니다. '수동 개입 최소화'와 '고가용성'을 달성하는 치트키는 완전 관리형 서비스를 쓰는 것입니다. DB는 알아서 백업하고 장애를 감지하는 Multi-AZ RDS에게 맡기고, 앱은 서버 사량 고민 없이 알아서 늘어나는 서버리스 엔진인 Fargate(ECS)에게 맡기면, 시스템이 폭주하거나 데이터 센터 한 곳이 무너져도 관리자가 밤잠 설칠 일 없이 안정적으로 서비스가 유지됩니다. 다른 옵션인 B는 수동으로 복제본을 관리해야 해서 힘들고, C와 E는 결국 '서버(EC2) 본체'를 우리가 관리하고 패치해야 하는 수고가 남아 있어 요구 사항을 100% 만족하지 못합니다. 💡 이 문제의 핵심 용어 High Availability (고가용성): 장비 고장이 나도 서비스가 중단 없이 끈질기게 계속되는 성능 Fargate: 서버를 빌리는 게 아니라 컨테이너만 던져주면 알아서 굴려주는 서버리스 컴퓨팅
Q188 S3를 데이터 레이크로 쓰는데, 새로운 파트너사가 옛날 방식인 SFTP로 파일을 올리겠다고 고집합니다. 운영 부담은 싹 줄이면서도 탄탄하게 돌아가는 SFTP 통로를 만들어주는 정답 서비스는? AWS Transfer Family를 써서 S3를 종착지로 하는 SFTP 서버를 만듭니다. S3 파일 게이트웨이를 만들고 그 주소를 파트너사에게 공유합니다. EC2 서버를 하나 띄우고 VPN을 뚫은 뒤 크론탭으로 파일을 S3로 옮깁니다. EC2 서버 앞에 NLB를 세우고 수동으로 SFTP 서비스를 구축한 뒤 S3로 쏘아줍니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. SFTP 같은 낡은 통신 규약을 최신 S3 저장소와 바로 잇고 싶을 땐 'AWS Transfer Family'가 최고의 솔루션입니다. 우리가 직접 서버를 설치하고 보안 패치를 할 필요 없이, 설정 몇 번으로 고가용성 SFTP 입구를 만들어주기 때문에 운영자의 오버헤드를 제로에 가깝게 줄여주면서도 파트너사의 요구를 완벽히 들어줄 수 있습니다. 다른 옵션인 B의 파일 게이트웨이는 사내망 컴퓨터가 S3를 하드디스크처럼 쓸 때 쓰는 용도이며, C와 D는 서버를 직접 관리하고 패치해야 하는 노가다가 뒤따르기 때문에 운영 효율성이 매우 낮습니다. 💡 이 문제의 핵심 용어 SFTP (Secure File Transfer Protocol): 암호화된 통로를 통해 파일을 주고받는 고전적이고 안전한 방식 AWS Transfer Family: SFTP, FTPS, FTP 같은 옛날 프로토콜을 AWS 스토리지와 바로 연결해주는 관리형 서비스 Data Lake: 나중에 분석하기 위해 온갖 종류의 데이터를 원본 그대로 쌓아두는 거대한 저장 공간
Q189 중요한 계약 문서를 5년 동안 보관해야 하는데, 이 기간 동안 절대 누구도 지우거나 덮어쓸 수 없게 철저히 보호해야 합니다. 또한 매년 암호화 키를 자동으로 갈아주는 기능까지 원할 때 가장 좋은 조합은? (2개 선택) 거버넌스 모드에서 S3 Object Lock을 사용합니다. 규정 준수(Compliance) 모드에서 S3 Object Lock을 설정합니다. S3 관리 키(SSE-S3)를 사용하고 자동 키 순환을 켭니다. AWS KMS 고객 관리형 키(CMK)를 사용하고 키 순환 옵션을 활성화합니다. 고객이 직접 가져온 키(SSE-C)를 써서 수동으로 키를 교체합니다. 정답 확인 및 해설 📖 해설 정답은 B와 D입니다. 절대로 지워지면 안 되는 강력한 금지령을 내리려면 S3 Object Lock의 '규정 준수(Compliance) 모드'가 필수입니다. 이 설정은 루트 계정조차도 잠금을 풀 수 없게 만들어버리거든요. 여기에 우리가 직접 관리하고 세밀하게 설정할 수 있는 'KMS 고객 관리형 키'를 쓰면서 '자동 순환' 옵션을 체크해두면, 보안 규정을 100% 충실히 이행하는 철통 보안 시스템이 완성됩니다. 다른 옵션인 A는 권한이 있으면 지울 수 있어서 위험하고, C의 SSE-S3는 키 관리가 너무 단순해서 매년 자동 교체되는지 제어하기 어렵습니다. E는 사람이 수동으로 키를 갈아줘야 해서 운영 부담이 크고 실수의 위험이 있습니다. 💡 이 문제의 핵심 용어 S3 Object Lock: 파일을 금고에 넣고 일정 기간 동안 절대 못 꺼내게 잠그는 하드웨어적 보안 기능 Key Rotation: 보안을 위해 주기적으로 암호화 열쇠를 새것으로 교체하는 과정 Compliance Mode: 법규 준수를 위해 관리자도 함부로 못 건드리게 막는 가장 높은 단계의 보호 모드
Q190 Java와 PHP로 만든 웹 앱을 AWS로 옮기려는데, 새로운 기능을 자주 테스트해야 하고 운영 수고는 최소로 줄이고 싶습니다. 가용성까지 챙겨주는 가장 '관리하기 쉬운' 솔루션은 무엇일까요? S3 정적 호스팅을 켜고, 동적 로직은 전부 람다(Lambda)로 새로 짭니다. Elastic Beanstalk에 앱을 올리고, 기능 테스트 시 URL 스와핑을 활용합니다. EC2 서너 대에 수동으로 앱을 깔고 ALB와 오토 스케일링으로 관리합니다. 앱을 컨테이너로 만든 뒤 EC2에 올리고 로드 밸런서로 트래픽을 제어합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 기존의 Java/PHP 코드를 거의 고치지 않으면서도 클라우드의 자동화 혜택을 다 누리고 싶을 땐 'Elastic Beanstalk'가 딱입니다. 이 서비스는 서버 구성부터 부하 분산, 자동 확장까지 다 알아서 해주며, 특히 새 기능을 테스트할 때 현재 서버와 새 서버의 주소만 슥 바구는 'URL 스와핑' 기능을 지원해서 위험 부담 없이 자주 배포하고 실험하기에 최적입니다. 다른 옵션인 A는 코드를 통째로 다시 짜야 하는 대공사가 필요하고, C와 D는 서버 한 대 한 대를 우리가 직접 관리하고 조율해야 해서 운영자의 다크서클이 깊어지는 비효율적인 방식입니다. 💡 이 문제의 핵심 용어 AWS Elastic Beanstalk: 코드만 올리면 서버, 네트워크, DB 설정을 AWS가 다 차려주는 뷔페식 배포 서비스 URL Swapping: 서비스 중단 없이 새 버전과 구 버전을 교체하는 세련된 배포 기술(Blue/Green 배포)
Q191 주문 시스템 DB(MySQL)에서 직원들이 무거운 보고서 쿼리를 자꾸 돌리는 바람에 고객 주문이 타임아웃 나고 난리가 났습니다. 직원들이 쿼리를 마음껏 돌리게 해주면서도 주문 서비스는 생생하게 유지하는 비결은? 읽기 전용 복제본(Read Replica)을 만들고 보고서 팀은 그쪽으로만 접속하게 합니다. 읽기 복제본을 만들고 주문 앱 자체를 메인과 복제본에 반반씩 나눠서 돌립니다. 아예 모든 시스템을 확장성이 좋은 DynamoDB로 통째로 옮겨버립니다. 직원들이 일하는 낮 시간엔 쿼리를 못 날리게 막고 밤에만 예약제로 운영합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 가장 확실하고 간단한 해결책은 '일하는 곳과 보고서 뽑는 곳'을 물리적으로 떼어놓는 것입니다. 원본 DB의 내용을 실시간으로 복사해가는 '읽기 전용 복제본'을 하나 만들어주고 무거운 쿼리는 그쪽에서만 돌리게 하면, 메인 DB의 CPU는 고객 주문 처리에만 집중할 수 있게 되어 타임아웃 문제가 눈 녹듯 사라집니다. 다른 옵션인 B는 복제본에 부하가 걸리면 여전히 주문 처리에 지장을 줄 수 있고, C는 시스템을 뜯어고치는 수준의 대공사라 위험합니다. D는 직원들의 업무 효율을 깎아먹는 임시방편일 뿐 근본적인 기술 해결책이 아닙니다. 💡 이 문제의 핵심 용어 Read Replica: 메인 DB에 무리를 주지 않고 조화 작업만 전담하는 실시간 복사본 서버 Time-out: 요청을 보냈는데 정해진 시간 안에 답이 안 와서 실패 처리되는 것
Q192 병원에서 매일 쏟아지는 수백 장의 종이 서류를 스캔해서 디지털화하려 합니다. 단순히 저장만 하는 게 아니라 의료 정보를 쏙쏙 뽑아내고, 나중에 SQL로 편리하게 검색까지 하고 싶습니다. 운영 효율을 극대화한 비법은? (2개 선택) EC2 서버를 띄워 MySQL을 직접 깔고 문서 정보를 하나하나 기록합니다. 뽑아낸 정보를 S3에 담아두고 Amazon Athena를 써서 SQL로 즉시 쿼리합니다. EC2 오토 스케일링 그룹을 만들고 직접 만든 문서 분석 앱을 계속 돌립니다. 람다와 Amazon Rekognition을 써서 이미지를 텍스트로 바꾸고 분석합니다. 람다와 Textract를 써서 글자를 추출하고, Comprehend Medical로 전문 의료 정보를 뽑아냅니다. 정답 확인 및 해설 📖 해설 정답은 B와 E입니다. 병원 노가다를 줄이려면 AI와 서버리스를 제대로 써야 합니다. 먼저 Textract라는 AI가 스캔 이미지에서 글자를 긁어모으고, Comprehend Medical이라는 전문가 AI가 그 안에서 처방전이나 병명 같은 핵심 의료 데이터를 콕 집어 추출하게 만듭니다. 이렇게 뽑은 데이터를 S3에 쌓아두면, 서버 한 대 없이도 SQL로 즉시 검색 가능한 Athena가 환상적인 데이터 분석 환경을 완성해줍니다. 다른 옵션인 A와 C는 직접 서버를 관리하고 앱을 짜야 해서 운영 부담이 크고, D의 Rekognition은 일반 사진 분석용이지 문서 글자 추출이나 의료 전문 용어를 이해하는 데는 적합하지 않습니다. 💡 이 문제의 핵심 용어 Amazon Textract: 종이 문서나 이미지 속의 글자와 표를 AI가 정확히 읽어내는 서비스(OCR) Amazon Comprehend Medical: 복잡한 의료 텍스트를 분석해 병명, 투약 정보 등을 알아내는 의료 전문 AI Amazon Athena: S3에 있는 결과물들을 마치 DB 테이블처럼 SQL로 검색하게 해주는 서비스
Q193 EC2 배치 애플리케이션이 여러 RDS 데이터베이스에서 수많은 데이터를 읽어오느라 DB가 비명을 지르고 있습니다. DB 읽기 횟수를 확 줄여서 부하를 낮추는 동시에 고가용성까지 챙기는 가장 빠른 길은? RDS 읽기 전용 복제본(Read Replica)을 추가하여 조회 요청을 분산시킵니다. Redis용 ElastiCache를 도입해서 자주 보는 정보를 메모리에 캐싱합니다. Route 53 DNS 캐싱을 활용해 네트워크 지연을 줄입니다. Memcached용 ElastiCache를 구성해서 데이터베이스 연결을 최적화합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 데이터베이스 자체의 읽기 부하를 정공법으로 해결하는 방법은 '읽기 전용 복제본'을 늘리는 것입니다. 조화 전용 비서(복제본)를 여러 명 두면 원본 DB는 중요한 기록 작업에만 집중할 수 있고, 혹시 하나가 고장 나더라도 다른 비서가 즉시 업무를 대신할 수 있어 읽기 성능 향상과 고가용성이라는 두 마리 토끼를 가장 깔끔하게 잡을 수 있습니다. 다른 옵션인 B와 D의 캐싱도 훌륭하지만, 이를 적용하려면 앱 코드를 상당 부분 뜯어고쳐야 하므로 즉각적인 대응으로는 복제본 추가가 훨씬 빠르고 확실합니다. C의 DNS 캐싱은 도메인 주소 찾는 속도만 높일 뿐 DB 안의 데이터 읽기 부하와는 무관합니다. 💡 이 문제의 핵심 용어 Read Replica: 메인 DB의 부하를 덜어주기 위해 읽기 전용으로 운영되는 실시간 복사본 서버 Offloading: 원본 서버가 할 일을 다른 곳으로 넘겨서 부담을 줄여주는 기술
Q194 회사가 아주 중요한 앱의 데이터베이스를 굳이 EC2에 직접 깔아서 쓰겠다고 합니다. 그런데 죽어도 가용성은 포기 못 한답니다. 서버 한 대가 꺼져도 자동으로 다음 서버가 일을 이어받게 만들려면 어떻게 설계해야 할까요? 서로 다른 가용 영역(AZ)에 EC2 두 대를 띄우고 데이터베이스 복제와 클러스터 구성을 합니다. 한 가용 영역에 EC2를 띄우고 AMI로 계속 백업하다가 사고 나면 CloudFormation으로 새로 굽습니다. 각각 다른 리전(나라)에 서버를 두고 동기식 복제를 하다가 수동으로 장애 조치를 합니다. 단일 가용 영역에서 EC2를 보다가 하드웨어 에러 나면 자동 복구(Auto Recovery)가 되게 설정합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. EC2에서 돌아가는 DB를 고가용성으로 만드는 정석은 '다중 AZ 클러스터' 구성입니다. 물리적으로 떨어진 두 데이터 센터(AZ)에 서버를 각각 두고, 데이터가 들어올 때마다 양쪽에 똑같이 기록되게(복제) 설정한 뒤 한쪽이 죽으면 나머지 한쪽이 즉시 주인공이 되도록 묶어주는 것이 가장 확실한 생존 전략입니다. 다른 옵션인 B와 D는 서버가 새로 켜질 때까지 한동안 서비스가 멈추는 '다운타임'을 피할 수 없어 고가용성이라 부르기 부족하며, C는 리전 간 통신 속도가 느려 실시간 복제가 힘들뿐더러 '자동 장애 조치'가 안 되어 관리자가 직접 뛰어야 하는 불편함이 있습니다. 💡 이 문제의 핵심 용어 Failover (장애 조치): 주인공 서버가 쓰러졌을 때 대기하던 보조 서버가 즉시 주인공 자리를 이어받는 과정 Cluster: 여러 대의 서버를 하나처럼 묶어서 성능을 높이거나 안정성을 지키는 기술
Q195 주문 시스템이 가끔 뻗어버리면 그동안 들어온 주문들이 다 증발해서 난리입니다. 시스템이 잠시 멈추더라도 주문 데이터는 안전하게 보관되었다가 나중에 자동으로 처리되는 '끈기 있는' 시스템을 만들고 싶을 때 무엇을 추가해야 할까요? EC2를 오토 스케일링 그룹에 넣고 EventBridge로 에러를 감시합니다. Application Load Balancer(ALB)를 앞에 두고 서버가 죽으면 다른 서버로 토스하게 합니다. SQS 대기열(바구니)을 만들어서 주문을 일단 담아두고 서버가 하나씩 꺼내 쓰게 합니다. SNS 주제를 만들고 람다 함수를 구독시켜서 비상시 경보를 울리게 합니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 시스템 장애에도 굴하지 않는 맷집을 키우는 최고의 무기는 'SQS(메시지 대기열)'입니다. 주문이 들어오는 즉시 SQS라는 튼튼한 바구니에 담아두면, 서버가 잠시 고장 나서 고치고 오는 동안에도 주문은 그 안에서 얌전히 기다립니다. 서버가 다시 살아나서 바구니를 확인하면 밀려있던 일을 하나씩 처리할 수 있어, 주문 유실 없이 탄력적인 운영이 가능해집니다. 다른 옵션인 A와 B는 서버의 건강 상태만 챙길 뿐 이미 날아간 '데이터'를 살려주지는 못하며, D는 소식만 전할 뿐이지 실제 데이터를 안전하게 보관해주는 역할과는 거리가 멉니다. 💡 이 문제의 핵심 용어 SQS (Simple Queue Service): 할 일을 잊지 않게 차곡차곡 쌓아두는 클라우드의 안전한 작업 바구니 Resilience (탄력성): 장애가 발생해도 시스템이 무너지지 않고 빠르게 회복하여 서비스를 이어가는 능력
Q196 EC2 서버들이 DynamoDB에 데이터를 계속 쌓고 있는데, 가만 보니 최근 30일치 데이터만 쓰면 된답니다. 옛날 데이터 지우는 코드를 짜기엔 귀찮고 비용은 아끼고 싶을 때, 클릭 몇 번으로 해결하는 가장 우아한 비법은? 30일마다 전체 시스템을 밀어버리고(CloudFormation 삭제) 새로 구축합니다. 별도의 감시용 EC2를 띄워서 스캔 돌리며 30일 지난 건 수동으로 지우는 스크립트를 돌립니다. DynamoDB 스트림을 켜고 람다 함수를 연결해서 30일 지난 데이터를 지우게 코딩합니다. 테이블에 '만료 시간' 항목을 추가하고, DynamoDB의 TTL 기능을 켜서 자동 삭제되게 합니다. 정답 확인 및 해설 📖 해설 정답은 D입니다. 데이터에 '수명'을 부여하는 자동 기능인 'TTL(Time to Live)'이 이번 문제의 정답입니다. 항목을 만들 때 30일 뒤의 날짜를 딱 적어주면, DynamoDB가 알아서 시계를 보다가 시간이 지난 데이터들을 별도의 비용이나 개발 노력 없이 공짜로 슥 지워주기 때문에 지갑도 지키고 개발자의 주말도 지켜주는 아주 고마운 기능입니다. 다른 옵션인 A는 서비스 중단 위험이 있고, B와 C는 지우는 데 드는 비용(쓰기 용량)과 개발 수고가 발생하여 '비용과 노력 최소화'라는 요구 사항에 정면으로 어긋나는 구식 방식입니다. 💡 이 문제의 핵심 용어 TTL (Time To Live): 데이터에 유효 기간을 정해주고 시간이 지나면 알아서 소멸하게 만드는 기능 Attribute (속성): 데이터베이스의 한 칸에 들어가는 구체적 정보(이름, 날짜 등)
Q197 윈도우 서버에서 .NET 앱과 Oracle DB를 운영 중인데, 이걸 AWS로 옮기면서도 코드 수정은 거의 안 하고 고가용성은 챙기고 싶습니다. 어떤 서비스들로 이사를 보내는 게 가장 속 편할까요? (2개 선택) .NET Core로 리팩터링해서 람다(Lambda) 서버리스로 옮깁니다. 다중 AZ 설정을 한 AWS Elastic Beanstalk에 .NET 앱을 통째로 올립니다. Amazon Linux 서버로 OS를 바꾸고 EC2 인스턴스로 이식합니다. DMS를 써서 관계형인 Oracle DB를 비관계형인 DynamoDB로 바꿉니다. 다중 AZ 환경의 RDS for Oracle 서비스를 이용해서 DB를 마이그레이션합니다. 정답 확인 및 해설 📖 해설 정답은 B와 E입니다. 기존 환경을 최대한 유지하면서(최소한의 개발 변경) 클라우드의 혜택만 쏙쏙 빼먹는 최고의 조합입니다. 앱은 코드 변경 없이 바로 받아주는 Elastic Beanstalk에게 맡기고, 데이터베이스는 쓰던 엔진 그대로인 RDS for Oracle로 옮기면 됩니다. 둘 다 클릭 몇 번으로 '다중 AZ' 고가용성 설정을 할 수 있어, 운영 부담은 줄이고 안정성은 최고로 높이는 깔끔한 이사 전략이 완성됩니다. 다른 옵션인 A와 C, D는 코드를 처음부터 다시 짜거나 데이터 구조를 통째로 뒤흔드는 큰 공사가 필요해서 '개발 변경 최소화'라는 약속을 지킬 수 없게 됩니다. 💡 이 문제의 핵심 용어 AWS Elastic Beanstalk: 소스 코드만 던져주면 서버 세팅부터 배포까지 알아서 다 해주는 기사님 같은 서비스 RDS for Oracle: 오라클 데이터베이스를 AWS 가이드에 맞춰 관리형으로 편하게 쓰는 서비스
Q198 온프레미스 쿠버네티스에서 MongoDB를 써서 앱을 굴리고 있습니다. 이걸 AWS로 그대로 옮기고 싶은데 코드를 고치거나 배포 방식을 바꿀 여유가 전혀 없네요. 운영 수고를 최소로 줄이면서 그대로 옮길 수 있는 서비스 세트는? EC2 서버를 직접 관리하며 ECS 클러스터를 만들고 MongoDB도 직접 깝니다. Fargate와 DynamoDB 조합으로 ECS 시스템을 새로 구축합니다. EC2 노드를 쓰는 EKS를 구축하고 데이터베이스는 DynamoDB를 씁니다. 서버리스인 Fargate 기반 EKS를 구축하고, MongoDB와 호환되는 DocumentDB를 씁니다. 정답 확인 및 해설 📖 해설 정답은 D입니다. 기존의 쿠버네티스(K8s)와 몽고DB 환경을 '코드 수정 없이' 옮기는 가장 영리한 방법입니다. 컴퓨팅 엔진은 K8s의 AWS 버전인 EKS를 쓰되 서버 관리가 필요 없는 Fargate를 선택하고, 데이터베이스는 몽고DB와 대화 방식이 똑같은 DocumentDB를 고르면 됩니다. 이렇게 하면 겉모양은 그대로 유지하면서 운영의 고통에서만 해방되는 최고의 결과를 얻을 수 있습니다. 다른 옵션인 B와 C는 몽고DB와 데이터 담는 방식이 아예 다른 DynamoDB를 쓰라고 해서 대규모 코드 수정이 필수적이며, A는 서버 관리라는 지옥에서 벗어날 수 없는 구식 방식입니다. 💡 이 문제의 핵심 용어 Amazon EKS: 쿠버네티스를 AWS가 직접 관리하고 업데이트해주는 전문 서비스 Amazon DocumentDB: MongoDB를 쓰던 사람들이 코드 한 줄 안 고치고 그대로 갈아탈 수 있는 초고성능 관리형 DB
Q199 고객 전화 내용을 받아적어서 대본(Transcript)을 만들고, 여러 사람의 목소리를 구별해서 분석해야 합니다. 이 대본 파일들은 나중에 SQL로 꼼꼼히 뒤져볼 수 있어야 하고 7년이나 보관해야 하네요. 어떤 서비스들이 필요할까요? Rekognition으로 사람 얼굴을 인식하고, 람다로 대본을 대조 분석합니다. Amazon Transcribe로 목소리를 글자로 바꾸고, S3에 담긴 파일을 Athena로 바로 검색합니다. Translate로 다른 나라 말을 번역하고, Redshift 대형 분석실에 담아 분석합니다. Rekognition으로 영상을 분석하고, S3에 저장한 뒤 Textract로 글자를 긁어모읍니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 음성을 텍스트로 바꾸는 일에는 'Transcribe'가 세계 최고의 전문가입니다. 심지어 화자 분리(SpeakerID) 기능까지 있어서 누가 무슨 말을 했는지도 정확히 가려냅니다. 이렇게 뽑아낸 대본들을 S3 저장소에 잘 쌓아두면, 원할 때마다 Athena라는 돋보기를 통해 SQL 문법으로 대본 구석구석을 순식간에 검색해 비즈니스 인사이트를 얻을 수 있습니다. 다른 옵션인 A와 D의 Rekognition은 이미지/영상 전문이라 소리를 못 들으며, C의 Translate는 번역 서비스라 말소리를 글자로 적는 이번 업무와는 핀트가 어긋납니다. 💡 이 문제의 핵심 용어 Amazon Transcribe: 오디오 파일을 텍스트로 받아 적어주고 목소리의 주인공까지 구별하는 신묘한 서비스 Amazon Athena: S3 바구니에 담긴 수많은 텍스트 파일들을 마치 DB처럼 SQL로 분석하는 도구
Q200 Cognito로 로그인한 회원들이 앱에서 API Gateway를 거쳐 DynamoDB 데이터를 가져가려 합니다. 개발자의 수고는 줄이면서 오직 '승인된 우리 회원'만 API를 쓸 수 있게 입구를 막아주는 가장 손쉬운 AWS 관리형 솔루션은? API Gateway 입구에 직접 람다 함수 권한 부여자를 소스코드로 짜넣습니다. 회원마다 전용 API 키를 발행해주고 람다로 번번이 유효성을 검사합니다. 헤더에 이메일 주소를 실어보내게 하고 람다가 그 이메일이 우리 회원인지 조회합니다. API Gateway 설정에서 'Amazon Cognito 사용자 풀 권한 부여기'를 구성합니다. 정답 확인 및 해설 📖 해설 정답은 D입니다. 이미 Cognito 회원 정보를 가지고 있다면, API Gateway와 한 몸처럼 연결되는 'Cognito 권한 부여기(Authorizer)' 기능을 켜기만 하면 됩니다. 복잡한 코딩 한 줄 없이 설정 몇 번으로 로그인한 사람의 신분증(토큰)을 검사해서 문(API)을 열어주기 때문에, 보안은 완벽하게 챙기면서 운영 오버헤드는 획기적으로 줄일 수 있습니다. 다른 옵션인 A, B, C는 개발자가 직접 보안 로직을 코딩해야 해서 버그가 생길 위험도 크고, 관리해야 할 코드가 늘어나는 비효율적인 방식이기에 정답에서 멀어집니다. 💡 이 문제의 핵심 용어 Amazon Cognito User Pool: 웹이나 앱의 회원 가입, 로그인을 담당하는 통합 회원 관리 시스템 Authorizer (권한 부여기): API 입구에서 손님이 올바른 신분증을 갖고 있는지 검사하는 디지털 수문장