Q376 RDS MySQL을 사용 중인데, 서버리스 앱에서 무작위로 수많은 연결이 들어와 '연결 거부' 오류가 발생합니다. 운영 오버헤드를 최소화하면서 이 문제를 해결할 방법은? RDS 프록시(Proxy)를 생성하고 이를 통해 데이터베이스를 사용하도록 구성합니다. 애플리케이션과 DB 사이에 ElastiCache for Memcached를 설치합니다. I/O 용량이 더 큰 대형 인스턴스 클래스로 데이터베이스를 마이그레이션합니다. DB 인스턴스에 다중 AZ를 설정하고 인스턴스 간에 트래픽을 분산시킵니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 서버리스 앱(Lambda 등)은 필요할 때 수백, 수천 개가 동시에 실행되면서 DB 연결을 순식간에 고갈시키곤 합니다. 이때 RDS 프록시를 사용하면 프록시가 DB 연결을 미리 맺어두고 여러 요청이 이를 돌려쓰게(인텐트 풀링) 관리해줍니다. 운영자가 직접 서버를 관리할 필요 없이 클릭 몇 번으로 '연결 거부' 문제를 깔끔하게 해결할 수 있는 가장 효율적인 레이어입니다. 다른 옵션인 B(캐시)는 데이터 조회 속도는 높여주지만 근본적인 '연결 수' 부족 문제를 풀지는 못합니다. C(인스턴스 업그레이드)는 비용만 많이 들고 서버리스의 폭발적인 연결 속도를 따라가기엔 한계가 있으며, D(다중 AZ)는 장애 대비용이지 연결 관리를 분산해주는 장치는 아닙니다. 💡 이 문제의 핵심 용어 RDS Proxy: 서버리스 애플리케이션의 데이터베이스 연결을 효율적으로 풀링하고 공유하는 완전 관리형 서비스 Connection Pooling (연결 풀링): 데이터베이스 연결을 매번 새로 맺지 않고 미리 만들어둔 연결을 재사용하는 효율적인 방식 Serverless: 서버 관리의 부담 없이 코드 실행량에 따라 자동으로 확장되는 서비스 형태
Q377 Auto Scaling 그룹으로 생성되는 모든 서버(EC2)가 켜지거나 꺼지는 즉시 감사 시스템에 자동으로 보고서를 보내야 합니다. 가장 효율적인 아키텍처는? 주기적으로 실행되는 Lambda를 만들어 모든 서버에 원격 접속해 스크립트를 돌립니다. Auto Scaling 수명 주기 후크(Lifecycle Hook)를 사용하여 시작/종료 시 스크립트를 실행합니다. EC2 사용자 데이터(User Data)에만 스크립트를 넣어 시작할 때만 보고하게 합니다. 운영 체제 내부에 스크립트를 심고 Auto Scaling이 이를 강제로 호출하게 설정합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 서버의 '탄생'과 '죽음'을 정확히 포착해서 특정 작업을 수행하고 싶을 때는 수명 주기 후크(Lifecycle Hook)가 정답입니다. 서버가 완전히 켜지기 전(Pending)이나 꺼지기 직전(Terminating)에 잠시 멈춤 상태로 두고, 감사 시스템에 보고하는 스크립트를 완벽히 실행한 뒤 다음 단계로 넘어가게 보장해줍니다. 자동화된 감사 시스템 구축에 있어 가장 신뢰할 만한 방식입니다. 다른 옵션인 A는 실시간성이 떨어지고 관리 포인트가 늘어납니다. C는 서버가 '종료'될 때의 보고를 놓치게 되며, D는 운영 체제와 Auto Scaling 간의 통신을 직접 구현해야 하므로 운영 비효율이 큽니다. 💡 이 문제의 핵심 용어 EC2 Auto Scaling Lifecycle Hook: 인스턴스가 시작되거나 종료될 때 특정 작업을 완료할 수 있도록 상태를 일시 중지하는 기능 Audit System (감사 시스템): 보안이나 규정 준수를 위해 시스템의 변경 사항이나 상태를 기록하고 검증하는 장치
Q378 UDP 프로토콜을 사용하는 실시간 게임을 개발 중입니다. 트래픽은 심하게 변동하며, 점수나 비관계형 데이터는 관리자의 개입 없이 자동으로 확장되는 DB에 담고 싶습니다. 추천 조합은? 트래픽 분산은 Route 53을 사용하고, 데이터 저장은 Aurora Serverless를 씁니다. 트래픽 분산은 Network Load Balancer(NLB)를, 저장은 DynamoDB 온디맨드를 씁니다. 트래픽 분산은 Network Load Balancer를 쓰고, 저장은 Aurora Global Database를 씁니다. 트래픽 분산은 Application Load Balancer를 쓰고, 저장은 DynamoDB 전역 테이블을 씁니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 두 가지만 기억하면 됩니다. 'UDP'와 '비관계형 자동 확장'입니다. 먼저 UDP 프로토콜을 완벽하게 처리하며 수만 건의 연결을 안정적으로 배달하는 로드 밸런서는 NLB(Network Load Balancer)가 유일한 정답입니다. 그리고 관리자가 용량 설계를 일일이 할 필요 없이 트래픽에 맞춰 무한대로 커지는 NoSQL 데이터베이스는 DynamoDB 온디맨드(On-demand) 모드입니다. 이 조합이 게임 서비스에 가장 완벽한 짝궁입니다. 다른 옵션인 D(ALB)는 UDP를 지원하지 않고, A와 C(Aurora)는 관계형 DB라 '비관계형 데이터를 관리 개입 없이 저장'하려는 목적에는 DynamoDB보다 복잡하고 비용이 많이 듭니다. 💡 이 문제의 핵심 용어 NLB (Network Load Balancer): 네트워크 4계층(L4)에서 작동하며 UDP/TCP 및 고정 IP를 지원하는 고성능 부하 분산 장치 DynamoDB On-demand: 사용자가 읽기/쓰기 용량을 미리 정하지 않아도 실제 사용량만큼 자동으로 확장되는 요금제 Non-relational Data (비관계형 데이터): 정해진 표 형식(SQL)이 아닌 유연한 구조를 가진 데이터
Q379 API Gateway, Lambda, RDS 기반 앱에서 Lambda가 실행될 때마다 무거운 라이브러리를 로드하느라 응답이 늦어집니다. 변경을 최소화하며 대기 시간을 가장 낮게 유지할 방법은? API를 거치지 않고 프런트엔드에서 데이터베이스로 직접 접속하게 합니다. 요청을 처리하는 Lambda 함수에 대해 '프로비저닝된 동시성'을 설정합니다. 자주 쓰는 쿼리 결과를 S3에 저장해두고 Lambda가 이를 캐시처럼 쓰게 합니다. 연결 통로를 더 확보하기 위해 데이터베이스(RDS)의 인스턴스 크기를 키웁니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 람다가 처음 켜질 때 라이브러리를 로드하느라 굼뜬 현상을 '콜드 스타트(Cold Start)'라고 합니다. 이를 해결하는 가장 확실한 '치트키'가 바로 프로비저닝된 동시성(Provisioned Concurrency)입니다. 람다를 미리 따뜻하게 '예열'해두고 라이브러리까지 다 불러온 상태로 대기시키기 때문에, 요청이 오는 즉시 빛의 속도로 응답할 수 있습니다. 다른 옵션인 A는 보안상 매우 위험하고 아키텍처를 파괴하는 처사입니다. C는 캐시 구현 코드를 새로 짜야 해서 변경 사항이 많고, D는 DB 사양만 높일 뿐 람다의 초기 로딩 속도를 개선해주지는 못합니다. 💡 이 문제의 핵심 용어 Provisioned Concurrency: Lambda 함수를 미리 실행 준비 상태로 유지하여 응답 지연(Cold Start)을 제거하는 기능 Cold Start: Lambda 함수가 오랫동안 안 쓰이다가 처음 실행될 때 초기화 과정 때문에 응답이 늦어지는 현상 Library Loading: 코드 실행에 필요한 외부 도구들을 메모리에 올리는 과정
Q380 업무 시간 외에는 서버(EC2)와 데이터베이스(RDS)를 자동으로 껐다가 켜서 비용을 아끼고 싶습니다. 관리 수고가 가장 적은 방법은? EC2는 탄력적 크기 조정을 쓰고, RDS는 업무 외 시간에 용량을 0으로 줄입니다. AWS Marketplace에서 유료 파트너 솔루션을 구매해 설치하고 관리합니다. 관리용 별도 EC2 서버를 하나 더 띄우고 크론탭(crontab)으로 셸 스크립트를 돌립니다. Lambda 함수를 만들고, EventBridge(CloudWatch Events) 시계로 정해진 시간에 호출합니다. 정답 확인 및 해설 📖 해설 정답은 D입니다. 매일 정해진 시각에 서버의 전원을 내리고 올리는 단순 반복 작업에는 '람다(Lambda) + 이벤트브릿지(EventBridge)' 조합이 가성비와 효율 면에서 최고입니다. 서버를 따로 관리할 필요 없이 코드만 몇 줄 올려두면, AWS 시계가 알람을 울려 람다 일꾼이 알아서 껐다 켰다 해줍니다. 인프라 유지 보수가 거의 없어 매우 경제적입니다. 다른 옵션인 A는 RDS 용량을 0으로 줄이는 기능이 없어 불가능합니다. B는 추가 비용이 들고, C는 관리용 서버를 따로 관리해야 하는 '배보다 배꼽이 큰' 상황이 발생합니다. 💡 이 문제의 핵심 용어 Amazon EventBridge: 정해진 시각이나 상태 변화에 따라 자동으로 작업을 시작해주는 중앙 스케줄러 서비스 Cost Optimization (비용 최적화): 리소스 사용량을 조절하여 불필요한 지불을 막는 전략
Q381 S3에 있는 문서들의 메타데이터를 PostgreSQL에 저장해 관리 중입니다. 매달 한 번씩 몇 시간 걸리는 보고서 작업을 해야 하는데, 평소 문서 수정에 방해 안 되면서 보고서 속도만 높일 방법은? 데이터베이스를 DocumentDB로 바꾸고 복제본을 활용해 보고서를 뽑습니다. Aurora PostgreSQL로 마이그레이션하고, Aurora 복제본(Replica)에 쿼리를 날립니다. RDS 다중 AZ 환경에서 서비스에 영향이 없도록 대기(Standby) 노드에 직접 연결합니다. 모든 데이터를 DynamoDB로 옮기고 읽기 용량을 보고서 작업 때만 늘려 봅니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 관계형 데이터베이스의 보고서 쿼리가 너무 무겁다면 원본(Master) 서버의 힘을 빌리지 말고 '읽기 전용 복제본'을 활용하는 것이 정석입니다. 특히 Aurora PostgreSQL은 복제본 생성이 빠르고 성능이 강력하여, 복제본에서 무거운 리포트 작업을 돌려도 실제 서비스 중인 메인 서버에는 아무런 지장을 주지 않습니다. 코드를 거의 안 고치고 엔드포인트(주소)만 바꿔주면 되니 효율적입니다. 다른 옵션인 A와 D는 DB 종류를 아예 바꿔야 해서 대공사가 필요하고, C인 RDS 다중 AZ의 대기 노드는 장애 대응용일 뿐 평소에는 쿼리 접속이 불가능합니다. 💡 이 문제의 핵심 용어 Amazon Aurora: AWS에서 설계한 고성능 클라우드 전용 관계형 데이터베이스(MySQL, PostgreSQL 호환) Read Replica (읽기 복제본): 메인 DB의 데이터를 실시간으로 복사해와서 읽기 작업만 따로 처리해주는 보조 서버 Metadata: 데이터의 데이터, 즉 파일의 이름, 크기, 작성일 등 그 자체를 설명하는 정보
Q382 3계층 앱이 NLB, 웹 서버(EC2), 앱 서버(EC2) 순으로 구성되어 있습니다. 전송 중인 데이터(In-transit)의 보안을 강화하기 위해 가장 먼저 해야 할 일은? NLB에 TLS 리스너를 구성하고 서버 인증서를 배포하여 암호화 통신을 수행합니다. Shield Advanced를 켜고 NLB 단계에서 WAF 보안 규칙을 활성화합니다. 로드 밸런서를 ALB로 교체하고 해킹 방어를 위해 WAF를 설치합니다. KMS를 사용하여 서버의 하드디스크(EBS) 내 데이터를 암호화합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 네트워크 선을 타고 데이터가 오갈 때 엿듣지 못하게 하는 '전송 중 보안'의 기본은 암호화(HTTPS/TLS)입니다. NLB(Network Load Balancer)가 서버 인증서를 들고 손님과 TLS 통신을 맺게 설정하면, 그 뒤에 있는 서버들까지 가는 모든 길이 암호화된 터널이 됩니다. 전송 중 보안 강화를 위해 가장 정석적이고 확실한 첫 단계입니다. 다른 옵션인 B와 C인 WAF는 데이터 암호화보다는 악성 공격 필터링에 가깝고, D인 EBS 암호화는 '보관 중(저장된) 데이터' 보안이지 네트워크 이동 중인 데이터 보안은 아닙니다. 💡 이 문제의 핵심 용어 TLS Listener: 네트워크 장비가 암호화된 통신 요청을 받아 안전하게 해독하고 전달하는 설정 In-transit (전송 중): 데이터가 저장소에 있지 않고 네트워크망을 통해 이동하고 있는 상태 Server Certificate: 내 서버가 믿을 수 있는 곳임을 증명하고 암호화 통신을 가능케 하는 디지털 인증서
Q383 온프레미스에서 쓰던 소프트웨어를 클라우드로 이주하려는데, 이 프로그램은 CPU 코어 수나 소켓 수에 따라 라이선스 비용을 매깁니다. 기존에 산 라이선스 모델을 그대로 쓰려 할 때 가장 알뜰한 EC2 옵션은? 미리 예약해두어 비용을 아끼는 '전용 예약 호스트(Dedicated Reserved Hosts)' 필요할 때만 빌리고 바로 끄는 '전용 온디맨드 호스트(Dedicated On-Demand Hosts)' 서버의 물리적인 영향은 덜 받지만 자원을 선점하는 '전용 예약 인스턴스' 일반적인 가상 서버 공유 방식인 '전용 온디맨드 인스턴스' 정답 확인 및 해설 📖 해설 정답은 A입니다. 코어 수나 소켓 기반의 기존 라이선스를 가져와야 한다면(BYOL), 가상 서버가 아닌 '물리 서버 전체'를 통째로 빌려 쓰는 Dedicated Host가 필수입니다. 여기에 장기 사용을 약속하고 '예약(Reserved)' 방식까지 선택한다면, 물리 서버 한 대를 통째로 쓰면서도 가장 저렴한 가격에 라이선스 규정까지 완벽히 준수할 수 있습니다. 다른 옵션인 C와 D(인스턴스)는 물리적 서버 정보를 제어하기 힘들어 코어 기반 라이선스를 적용하기 어렵고, B인 온디맨드는 예약 방식보다 가격이 훨씬 비쌉니다. 💡 이 문제의 핵심 용어 Dedicated Host (전용 호스트): 다른 고객과 서버를 공유하지 않고 물리적인 하드웨어 전체를 나만 사용하는 서비스 BYOL (Bring Your Own License): 이미 가지고 있는 소프트웨어 라이선스를 AWS 클라우드로 그대로 가져와서 사용하는 방식 Reserved (예약): 1년 또는 3년 사용을 약속하고 대폭 할인된 가격으로 리소스를 이용하는 요금제
Q384 여러 리눅스 서버(EC2)가 파일을 공유해야 하며, 무조건 POSIX 호환이 되어야 합니다. 처음 30일은 자주 읽고 그 뒤론 안 보는데, 가장 알뜰하면서도 여러 데이터 센터(AZ)에 걸쳐 튼튼하게 저장할 방법은? S3 Standard를 쓰다가 수명 주기 정책으로 Glacier 창고로 파일을 보냅니다. S3에 모든 걸 담고 30일 후엔 Standard-IA(자주 액세스하지 않음)로 옮깁니다. EFS Standard를 쓰고 30일 후엔 EFS Standard-IA 계층으로 넘기는 정책을 세웁니다. 가성비를 위해 EFS One Zone을 쓰고 30일 후에 저렴한 IA 계층으로 보냅니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 리눅스 서버 간의 파일 공유와 'POSIX 호환'이라는 조건이 나오면 정답은 Amazon EFS입니다. 여러 가용 영역(AZ)에 걸쳐 데이터를 복제하여 고가용성을 챙겨야 하므로 일반 Standard 모드가 적합하며, 비용 절감을 위해 자주 안 쓰는 파일은 자동으로 Standard-IA(Infrequent Access) 계층으로 보내는 수명 주기 수명 관리 기능을 쓰면 아주 알뜰하게 운영할 수 있습니다. 다른 옵션인 A와 B(S3)는 파일 시스템 형식이 아니라서 공유 드라이브처럼 쓰기엔 'POSIX 호환' 면에서 부족함이 있고, D인 One Zone은 데이터 센터 한 곳에만 저장하므로 '고가용성' 조건에 맞지 않습니다. 💡 이 문제의 핵심 용어 Amazon EFS (Elastic File System): 여러 개의 서버가 동시에 접속해서 읽고 쓸 수 있는 리눅스용 공유 파일 저장소 POSIX: 유닉스 계열 운영체제 간의 호환성을 위해 정해진 표준 인터페이스 규칙 Lifecycle Management: 파일이 생성된 지 오래되면 자동으로 더 저렴한 저장 공간으로 옮겨주는 기능
Q385 보안을 강화하기 위해 VPC를 새로 짭니다. 로드 밸런서(LB)는 443 포트를 열었고, 웹 서버(Web)는 LB로부터만 신호를 받아야 하며, DB는 Web에서만 3306 포트를 받아야 합니다. 올바른 보안 그룹 설정은? Web 보안 그룹은 0.0.0.0/0에서 443을 열고, DB는 웹 서버 보안 그룹에서 3306을 엽니다. 모든 서브넷에 ACL 규칙을 걸어서 0.0.0.0/0 기준의 포트 번호들로만 접근을 막습니다. Web 보안 그룹은 LB의 보안 그룹 ID로부터만 443을 받고, DB는 Web 보안 그룹 ID로부터만 3306을 받습니다. 웹 서버는 네트워크 ACL로 LB 주소를 허용하고, DB는 보안 그룹으로 웹 서버를 허용합니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 보안의 핵심은 '누구인지(보안 그룹 ID)'를 보고 문을 열어주는 것입니다. 웹 서버는 전 세계(0.0.0.0/0)에 문을 열 게 아니라, 오직 로드 밸런서라는 문지기를 거쳐온 신호만 받도록 LB의 보안 그룹 ID를 소스로 설정해야 합니다. DB 역시 마찬가지로 웹 서버의 보안 그룹 ID만 허용하면 됩니다. 이렇게 '보안 그룹 간의 참조'를 쓰면 IP 주소가 바뀌어도 알아서 관리되므로 운영 수고가 최소화됩니다. 다른 옵션인 A는 웹 서버를 외부 인터넷에 직접 노출하는 셈이라 위험하고, B와 D인 네트워크 ACL은 IP 주소 기반이라 관리가 매우 번거로우며 유연하지 못합니다. 💡 이 문제의 핵심 용어 Security Group (보안 그룹): 인스턴스마다 붙어 있는 가상 방화벽으로, 특정 IP나 다른 보안 그룹을 대상으로 문을 열어줌 Network ACL: 네트워크 서브넷 단위로 출입을 통제하는 보안 레이어(IP 주소 숫자 기반) Principle of Least Privilege (최소 권한 원칙): 사용자에게 업무에 꼭 필요한 최소한의 권한만 부여하는 보안의 대원칙
Q386 서버(EC2)에서 RDS(MySQL)를 쓰는데 똑같은 데이터 세트를 자꾸 다시 불러오느라 성능이 느려집니다. 백엔드 성능을 높이기 위해 가장 먼저 도입할 것은? SNS(알림 서비스)를 통해 데이터베이스 호출 신호를 분산 저장합니다. Amazon ElastiCache를 설치하여 자주 찾는 결과물을 메모리에 캐싱합니다. DB 조회를 분산하기 위해 RDS 읽기 전용 복제본(Read Replica)을 만듭니다. Kinesis Data Firehose를 써서 데이터베이스 요청을 실시간 스트리밍으로 바꿉니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 같은 걸 자꾸 물어본다면 대답을 미리 적어두는 '메모지'가 필요합니다. ElastiCache는 데이터를 하드디스크가 아닌 광속의 메모리에 담아두는 캐시 서버입니다. DB까지 가지 않고 메모리에서 바로 대답해주니 응답 속도가 비약적으로 빨라지고 DB의 부담도 획기적으로 줄어듭니다. 중복 데이터 조회의 성능 개선에는 캐싱만한 게 없습니다. 다른 옵션인 C(복제본)는 전반적인 읽기 용량은 늘려주지만, '같은 데이터를 반복 조회'하는 비효율을 근본적으로 없애주지는 못합니다. A와 D는 캐싱과는 무관한 통신 도구들입니다. 💡 이 문제의 핵심 용어 Amazon ElastiCache: Redis나 Memcached 엔진을 기반으로 데이터를 메모리에 저장해 응답 속도를 극대화하는 캐시 서비스 Caching (캐싱): 자주 쓰는 데이터를 임시 저장소에 두어 나중에 빠르게 꺼내 쓸 수 있게 하는 기술 Database Load (DB 부하): 데이터베이스가 처리해야 하는 작업의 양과 압박
Q387 신입 엔지니어가 CloudFormation 템플릿으로 리소스를 만듭니다. '최소 권한 원칙'에 따라 이 직원에게만 딱 맞는 권한을 줄 두 가지 방법은? (2개 선택) 루트 사용자(Root) 계정을 공유하여 모든 작업을 거침없이 수행하게 합니다. IAM 사용자를 만들고 모든 서비스를 만질 수 있는 PowerUsers 그룹에 넣습니다. 관리자(AdministratorAccess) 권한이 있는 그룹에 신입 사원을 가입시킵니다. CloudFormation 작업만 허용하는 IAM 정책을 만들어 이 직원의 그룹에 붙입니다. 특정 스택 생성 권한만 구체적으로 정의한 IAM 역할을 만들어 전달합니다. 정답 확인 및 해설 📖 해설 정답은 D와 E입니다. 보안의 황금률은 '필요한 만큼만 주는 것'입니다. 이 직원은 리소스를 직접 하나씩 만들기보다 CloudFormation이라는 도구로 자동 배포하는 게 주 업무이므로, CloudFormation 서비스 자체를 다루는 권한(D)과 그 과정에서 허용된 리소스만 만들 수 있는 구체적인 IAM 역할(E)을 주는 것이 가장 안전하고 올바른 권한 설정입니다. 다른 옵션인 A, B, C는 너무 과하게 큰 권한을 주는 것이라 보안 사고의 위험이 매우 큽니다. 특히 루트 계정 공유나 관리자 권한 부여는 절대 피해야 할 금기 사항입니다. 💡 이 문제의 핵심 용어 Principle of Least Privilege (최소 권한 원칙): 딱 필요한 만큼의 권한만 주어 실수나 악용으로 인한 피해를 최소화하는 보안 개념 IAM Policy (정책): 누가 어떤 행동(Action)을 할 수 있는지 명시해둔 권한 정의 파일 CloudFormation Stack: 여러 개의 AWS 리소스를 하나의 단위로 묶어서 관리하고 배포하는 시스템
Q388 VPC 안에 웹 서버와 RDS를 뒀는데 서로 연결이 안 된다고 합니다. 둘 다 가동 중이고 보안 그룹 등 모든 설정은 기본(Default)일 때, 가장 먼저 점검하고 수정할 사항은? 프라이빗 서브넷의 네트워크 ACL 규칙에 웹 서버 주소를 명시적으로 허용 추가합니다. VPC 라우팅 테이블에 웹 서버와 DB가 대화할 수 있는 경로를 새로 개설합니다. 두 서비스를 서로 다른 VPC에 이사시키고 나서 VPC 피어링을 맺어봅니다. RDS용 보안 그룹에 인바운드 규칙을 추가하여 웹 서버의 보안 그룹 신호를 허용합니다. 정답 확인 및 해설 📖 해설 정답은 D입니다. AWS의 기본 보안 그룹은 '나가는 건 자유롭지만 들어오는 건 철저히 막는' 속성이 있습니다. 따라서 RDS 입장에서 보면 웹 서버가 보내는 신호는 낯선 외부인의 침입일 뿐입니다. RDS 보안 그룹을 열어서 '우리 서비스 웹 서버 보안 그룹 딱지를 붙이고 오는 손님은 통과시켜줘'라고 규칙을 추가하는 것이 정답입니다. 대다수의 연결 문제는 이 보안 그룹 설정에서 해결됩니다. 다른 옵션인 A는 기본 ACL이 이미 다 열려있어 원인이 아닐 확률이 높고, B(라우팅 테이블)는 같은 VPC 내부 가동 중이라면 기본적으로 길이 다 뚫려 있습니다. C는 문제를 더 복잡하게 만드는 불필요한 작업입니다. 💡 이 문제의 핵심 용어 Inbound Rule (인바운드 규칙): 외부에서 내 서버로 들어오는 트래픽 중에 어떤 것을 통과시킬지 결정하는 규칙 Security Group (보안 그룹): 인스턴스를 위한 가상 방화벽으로, 상태 저장(Stateful) 방식으로 작동함 Default Configuration (기본 설정): 처음 서비스를 만들 때 AWS가 자동으로 부여하는 초기 세팅값
Q389 MySQL DB의 데이터가 너무 커져서 보고서용 읽기 쿼리가 메인 서비스의 쓰기 성능을 갉아먹고 있습니다. 서비스 성능에 지장 없이 비즈니스 보고서를 뽑아낼 가장 효율적인 방법은? RDS 읽기 전용 복제본(Read Replica)을 만들어 보고서 쿼리용으로만 사용합니다. DB를 로드 밸런서 뒤에 숨기고 서버 대수를 늘려 수평으로 확장합니다. DB 인스턴스 사양을 훨씬 큰 것으로 체급을 높여 모든 부하를 감당하게 합니다. 보고서 작업을 위해 여러 데이터 센터(AZ)에 DB를 나눠서 배포합니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 관계형 데이터베이스에서 '조회(읽기) 쿼리'가 버겁다면 읽기 전용 복제본이 만병통치약입니다. 메인 DB는 오직 저장(쓰기)에만 집중하게 하고, 무거운 보고서 작업은 복사본 서버(Read Replica)에서 따로 돌리면 원본에는 아무런 영향이 없습니다. 비용 대비 가장 확실하게 데이터베이스의 숨통을 틔워주는 방법입니다. 다른 옵션인 B는 일반적인 관계형 DB 구조에서는 불가능하며, C(스케일 업)는 비용만 치솟고 부하 분산의 근본 원인을 해결하지 못합니다. D(다중 AZ)는 장애 복구용이지 읽기 성능을 높여주지는 않습니다. 💡 이 문제의 핵심 용어 Read Replica (읽기 전용 복제본): 메인 데이터베이스를 복사하여 읽기 작업만 전문으로 처리하도록 만든 복제 서버 Write Performance (쓰기 성능): 데이터를 새로 저장하거나 수정할 때 얼마나 빠르고 안정적으로 처리하는지를 나타내는 지표
Q390 전자상거래 앱을 운영 중인데 고객의 로그인 세션 데이터를 안전하고 빠르게 유지하고 싶습니다. 서버(EC2)가 꺼져도 로그인이 풀리지 않게 세션을 저장할 두 가지 적합한 곳은? (2개 선택) 로드 밸런서(ALB)에서 '고정 세션(Sticky Session)' 기능을 활성화합니다. 어떤 서버든 바로 읽어갈 수 있도록 DynamoDB 테이블에 세션을 담습니다. Amazon Cognito 사용자 풀을 통해 사용자 가입 및 정보 관리를 맡깁니다. 속도가 생명인 세션 관리를 위해 ElastiCache for Redis 캐시를 씁니다. Systems Manager를 통해 사용자 세션 설정 정보를 기록하고 관리합니다. 정답 확인 및 해설 📖 해설 정답은 B와 D입니다. 고객의 로그인 정보(세션)는 서버(EC2) 안에 두면 안 됩니다. 서버가 죽거나 새로 생기면 로그인이 풀려버리기 때문이죠. 그래서 서버 밖의 별도 창고에 둬야 합니다. 첫 번째 추천은 빛의 속도로 읽고 쓰는 ElastiCache(Redis)이고, 두 번째는 데이터가 아무리 늘어나도 끄떡없는 DynamoDB입니다. 이 두 곳은 서버가 바뀌어도 세션을 안전하게 유지해줍니다. 다른 옵션인 A(고정 세션)는 서버가 죽으면 결국 세션도 날아가기에 불안전하고, C(Cognito)는 인증 도구이지 실시간 세션 상태 저장소로 쓰기엔 목적이 조금 다릅니다. 💡 이 문제의 핵심 용어 Session Management (세션 관리): 사용자의 로그인 상태나 장바구니 정보 등을 지속적으로 유지하는 기술 Sticky Session (고정 세션): 한 명의 사용자를 계속 특정 서버로만 보내주는 기능(서버 장애 시 취약) Stateless (무상태): 서버 자체에 데이터를 저장하지 않아 언제든 서버를 갈아끼울 수 있는 구조
Q391 3계층 웹 앱의 백업 전략을 짭니다. 서버(EC2)는 데이터가 없는 상태 비저장(Stateless) 방식이고 DB는 PostgreSQL입니다. 2시간 이내 복구가 목표(RPO)일 때 가장 똑똑한 전략은? 2시간마다 모든 서버 하드디스크(EBS)의 스냅샷을 직접 찍어 보관합니다. EBS 수명 주기 정책을 걸고, RDS에서는 기본 자동 백업만 활성화합니다. 앱 서버는 이미 구워둔 이미지(AMI)만 유지하고, RDS는 '지정 시간 복구' 기능을 씁니다. 모든 서버의 EBS 스냅샷을 2시간 간격으로 찍고, RDS도 자동 백업을 수행합니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 서버가 '상태 비저장(데이터를 서버에 안 담음)'이라면 굳이 시시콜콜하게 하드디스크 백업을 할 필요가 없습니다. 그냥 서버 설정이 다 되어있는 이미지(AMI) 하나만 잘 보관해두면 언제든 새 서버를 찍어낼 수 있으니까요. 대신 데이터가 중요한 RDS는 '자동 백업'을 켜두면 초 단위로 과거를 돌릴 수 있는 '지정 시간 복구(PITR)'가 가능해져서 2시간 RPO를 아주 가뿐하게 만족할 수 있습니다. 다른 옵션인 A와 D는 의미 없는 서버 하드 백업에 돈과 시간을 낭비하는 꼴입니다. B는 관리 수고가 C보다 조금 더 많이 듭니다. 💡 이 문제의 핵심 용어 RPO (Recovery Point Objective): 재난 시 데이터 손실을 얼마나 허용할 것인지에 대한 지표(2시간 RPO = 최대 2시간 전 데이터까진 복구해야 함) Stateless (상태 비저장): 서버가 고객 정보를 기억하지 않아 똑같은 설정의 다른 서버로 언제든 대체 가능한 방식 AMI (Amazon Machine Image): 서버의 운영 체제와 설치된 프로그램 설정을 통째로 복사해둔 붕어빵 틀
Q392 새로운 웹 사이트를 만드는데, 웹 서버(EC2)는 전 세계 고객이 써야 하고 DB(RDS)는 웹 서버만 접속해야 합니다. 보안 그룹 설정을 가장 경제적이고 안전하게 한다면? 웹 서버는 0.0.0.0/0 기준 443 포트를 열고, DB는 웹 서버의 보안 그룹 ID로부터 3306 전용선을 엽니다. 보안을 위해 웹 서버도 고객의 IP 주소들만 허용하고, DB는 그 뒤에서 웹 서버 신호를 받습니다. 웹 서버와 DB 모두 전 세계(0.0.0.0/0)를 대상으로 각자의 포트(443, 3306)를 활짝 엽니다. 웹 서버를 S3와 연결해 Lambda로만 작동하게 하고 DB는 프라이빗하게 숨깁니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. 글로벌 웹 서비스라면 웹 서버는 당연히 전 세계 어디서든(0.0.0.0/0) 들어올 수 있게 HTTPS(443)를 열어야 합니다. 하지만 소중한 DB는 전 세계에 노출되면 큰일 나죠. 그래서 '우리 회사의 웹 서버 딱지(보안 그룹 ID)'를 붙인 신호만 쏙쏙 골라 받도록 설정하는 것이 보안의 정석입니다. 이렇게 하면 복잡한 IP 주소 관리 없이도 외부 침입을 완벽히 차단하면서 고객에겐 활짝 열린 사이트를 만들 수 있습니다. 다른 옵션인 B는 전 세계 고객의 변화무쌍한 IP를 일일이 등록하는 게 불가능하고, C는 DB를 도둑에게 노출하는 매우 위험한 짓입니다. 💡 이 문제의 핵심 용어 Security Group ID: IP 주소 대신 보안 그룹 자체의 고유 코드번호를 이용해 서로를 알아보는 방식 0.0.0.0/0: 인터넷상의 모든 IP 주소, 즉 '전 세계의 모든 사람'을 의미함 HTTPS (Port 443): 웹 사이트의 데이터를 안전하게 주고받는 암호화된 표준 통로
Q393 녹음된 상담 오디오 파일을 S3에 저장 중입니다. 이 내용에서 글자를 추출(텍스트 변환)하고, 그 안에 섞인 이름이나 전화번호 같은 개인 정보(PII)를 자동으로 가린 뒤 저장하고 싶을 때 설계는? Kinesis로 오디오를 실시간 분석하고 Lambda 코드로 개인 정보를 직접 필터링합니다. S3에 파일이 오면 Lambda가 Textract를 불러서 음성 파일 속 글자를 읽게 시킵니다. Amazon Transcribe의 '개인 정보 삭제' 옵션을 켜서 글자를 따고 다른 S3 버킷에 담습니다. Amazon Connect를 써서 전화가 올 때마다 직접 스캔하고 에지 서버에서 가려줍니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. '음성을 텍스트로(Speech-to-Text)' 만들어주는 전문가가 바로 Amazon Transcribe입니다. 이 서비스에는 'Redaction(가리기)' 기능이 있어서, "안녕하세요, 제 전화번호는 010-1234..."라는 말을 듣는 즉시 텍스트에서 번호를 [PII]로 가려줄 수 있습니다. 람다로 수동 코딩할 필요 없이 클릭 설정만으로 인공지능이 알아서 해부해주니 운영 오버헤드가 가장 적습니다. 다른 옵션인 B(Textract)는 문서 이미지에서 글자를 뽑는 도구이지 소리를 듣는 도구가 아닙니다. A나 D는 구현 난이도가 너무 높고 관리가 힘듭니다. 💡 이 문제의 핵심 용어 Amazon Transcribe: 음성 파일을 인공지능이 듣고 정확한 텍스트 문장으로 받아쓰기 해주는 서비스 PII (Personally Identifiable Information): 이름, 주소, 주민번호 등 개인을 특정할 수 있는 민감한 개인 정보 Redaction (수정/가리기): 민감한 정보를 지우거나 알 수 없게 처리하는 전문 보안 용어
Q394 RDS(MySQL)의 gp3 볼륨 성능이 20,000 IOPS를 넘을 때마다 자꾸 느려집니다. 데이터베이스 관리자가 성능을 더 안정적으로 높이기 위해 취할 조치는? 처리량을 높이기 위해 하드디스크 타입을 마그네틱(Magnetic) 계열로 바꿉니다. 기존 gp3 볼륨의 설정 메뉴에 들어가서 단순히 'IOPS 숫자'만 더 키워봅니다. 고성능 전문 저장소인 프로비저닝된 IOPS SSD(io2) 타입으로 볼륨을 교체합니다. 2,000GB짜리 하나를 쓰는 대신 1,000GB짜리 두 개로 쪼개서 성능을 분산합니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. (최근 gp3 성능 한계와 비용 효율을 고려할 때 io2로의 전환이 정석적인 답변입니다.) gp3 볼륨은 가성비가 좋지만 성능 한계가 명확합니다. 만약 20,000 IOPS 이상의 엄청난 부하를 지속적으로 안정적이게 처리해야 한다면, 기업용 고성능 전용 저장소인 'io2'나 'io1'으로 갈아타는 것이 정답입니다. 이들은 높은 비용만큼이나 강력한 입출력 성능을 보장해주어 대규모 트래픽에도 DB가 버벅이지 않게 지탱해줍니다. 다른 옵션인 A(마그네틱)는 구식이고 훨씬 느립니다. B는 일정 수준 이상의 IOPS를 감당하기엔 gp3 체급 자체가 모자랄 수 있으며, D처럼 볼륨을 쪼개는 건 RDS 구조상 관리가 매우 까다로워 일반적인 해결책이 아닙니다. 💡 이 문제의 핵심 용어 Provisioned IOPS SSD (io2): 가장 높은 성능을 보장하며, 미션 크리티컬한 대형 데이터베이스에 주로 쓰이는 고급 저장소 gp3 (General Purpose SSD): 성능과 비용의 균형을 맞춘 최신 범용 SSD 저장소 IOPS Max (최대 입출력 횟수): 저장 장치가 1초 동안 얼마나 많은 읽기/쓰기를 할 수 있는지를 나타내는 한계치
Q395 지난주에 누군가 보안 그룹 설정을 마음대로 바꿔서 보안 사고가 날 뻔했습니다. 어떤 IAM 사용자가 이 범인인지 기록을 확인하고 싶을 때 써야 할 서비스는? 위협 탐지 및 보안 분석을 수행하는 Amazon GuardDuty 서버의 보안 취약점을 자동으로 점검해주는 Amazon Inspector 계정 내의 모든 행동(누가, 언제, 무엇을)을 기록해두는 AWS CloudTrail 리소스의 구성 변경 이력을 타임라인으로 보여주는 AWS Config 정답 확인 및 해설 📖 해설 정답은 C입니다. AWS 계정 안에서 벌어지는 모든 '누가(Who)' 관련 기록은 CloudTrail이 쥐고 있습니다. "누가 저번 주 화요일 오후 3시에 보안 그룹 문을 열었어?"라는 질문에 정확히 그 직원의 이름을 알려주는 감사관 역할을 합니다. 보안 그룹 변경뿐만 아니라 서버 생성, 삭제 등 모든 API 요청 내역이 여기에 고스란히 남습니다. 다른 옵션인 A(GuardDuty)나 B(Inspector)는 나쁜 짓이나 구멍을 찾아내는 도구이지 '범인 찾기' 기록 장부는 아닙니다. D(Config)는 설정이 '어떻게' 바뀌었는지는 잘 보여주지만, '누구인지'를 찾는 일차적인 감사 로그는 CloudTrail이 주인공입니다. 💡 이 문제의 핵심 용어 AWS CloudTrail: AWS 계정에서 발생하는 모든 모든 API 호출 내역을 기록하는 블랙박스 같은 감사 서비스 IAM User: AWS 서비스를 이용하는 개별 직원들의 디지털 아이디 Audit Log (감사 로그): 보안이나 규정 준수를 위해 남겨두는 꼼꼼한 활동 기록
Q396 여러 리전에 걸친 EC2 인스턴스와 Global Accelerator를 사용 중입니다. 무차별적인 DDoS 공격으로부터 시스템을 빈틈없이 보호하고 싶을 때 설계자가 취할 조치는? AWS Shield Advanced에 가입하고, 가속기(Accelerator)를 보호 리소스로 추가합니다. AWS Shield Advanced에 가입한 뒤, 각 리전의 EC2 서버들을 보호 대상으로 넣습니다. WAF(웹 방화벽)를 설정하고 가속기와 연결하여 단순 접속 횟수만 제한합니다. 각 서버에 직접 방화벽 소프트웨어를 깔고 DDoS 탐지 규칙을 일일이 만듭니다. 정답 확인 및 해설 📖 해설 정답은 A입니다. DDoS 공격 방어의 끝판왕은 'AWS Shield Advanced'입니다. 기본 제공되는 Standard보다 훨씬 강력한 보호 기능을 제공하며, 특히 '가속기(Global Accelerator)' 앞단에서 공격을 미리 차단해버리면 뒤에 있는 서버들은 공격이 오는지도 모를 만큼 안전해집니다. 가속기 자체를 보호 대상으로 등록하는 것이 가장 상단에서 공격을 막는 효율적인 방법입니다. 다른 옵션인 B는 공격이 이미 네트워크 깊숙이 들어온 뒤에 막는 것이라 효율이 떨어지며, C인 WAF는 특정 웹 공격은 막아도 대규모 트래픽 폭탄(DDoS)을 전문적으로 방어하기엔 한계가 있습니다. 💡 이 문제의 핵심 용어 AWS Shield Advanced: 대규모 DDoS 공격에 대해 24시간 전문가 대응과 비용 보상을 제공하는 유료 보안 서비스 DDoS (Distributed Denial of Service): 수많은 컴퓨터를 동원해 사이트에 가짜 트래픽을 퍼부어 마비시키는 마구잡이 공격 AWS Global Accelerator: 사용자 요청을 가장 가까운 AWS 전용망으로 안내해 속도를 높여주는 서비스
Q397 매일 한 번씩 S3에 쌓인 10GB급 대용량 판매 기록을 집계하고 필터링해야 합니다. 작업에 1시간 정도 걸리고 써야 할 CPU와 메모리 양이 일정할 때, 운영 수고를 최소화할 방법은? 매일 정해진 시간에 실행되도록 EventBridge 시계를 설정한 Lambda 함수를 만듭니다. API Gateway와 Lambda를 연결하고 1시간 주기로 API를 호출해 작업을 돌립니다. Fargate 기반의 ECS 작업을 하나 만들고, EventBridge 정기 예약으로 이를 자동 실행합니다. EC2 서버들을 직접 띄운 ECS 클러스터를 만들고 매일 작업이 돌도록 수동으로 챙깁니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 이 문제의 함정은 '1시간'이라는 실행 시간입니다. 람다(Lambda)는 최대 15분까지만 버틸 수 있어서 1시간짜리 대작업은 중도 하차하게 됩니다. 그래서 서버 관리 걱정 없는 Fargate(서버리스 컨테이너)를 선택하고, EventBridge로 매일 알람을 맞춰 '작업(Task)'이 켜졌다가 끝나면 꺼지게 만드는 조합이 운영 면에서 가장 편리하고 경제적입니다. 다른 옵션인 A와 B는 람다 시간 제한 때문에 실패하고, D는 서버를 직접 관리해야 하는 번거로움(인프라 오버헤드)이 큽니다. 💡 이 문제의 핵심 용어 AWS Fargate: 서버를 직접 관리하지 않고도 컨테이너 기반 작업을 돌릴 수 있게 해주는 서버리스 연산 엔진 Amazon ECS: 도커(Docker) 컨테이너들을 효율적으로 관리하고 배포하는 지휘 서비스 Scheduled Task (예약 작업): 정해진 시간이나 주기에 따라 로봇처럼 자동으로 실행되는 일
Q398 총 600TB라는 어마어마한 상용 데이터를 2주 안에 클라우드로 옮겨야 합니다. 인터넷 속도가 100Mbps뿐이라 네트워크 전송은 불가능할 때, 가장 알뜰하고 확실한 방법은? 파일을 쪼개서 S3 멀티파트 업로드 기능을 이용해 24시간 내내 업로드에 매달립니다. 데이터 센터와 AWS 사이에 VPN 터널을 뚫고 야간 시간을 이용해 야금야금 보냅니다. AWS Snowball Edge 장비 여러 대를 주문해서 담은 뒤 트럭으로 실어 보냅니다. 10Gbps급 초고속 전용선(Direct Connect)을 급하게 새로 깔고 데이터 전송을 시작합니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 100Mbps 속도로 600TB를 보내려면 이론상 1년도 넘게 걸립니다. '네트워크가 느린데 데이터가 너무 많다'면 실제 하드디스크 장비를 택배로 주고받는 Snowball 서비스가 정답입니다. Snowball Edge 장비 여러 대에 데이터를 꽉꽉 담아 보내면 2주 안에 거뜬히 전송을 끝낼 수 있습니다. 가장 물리적이고 확실한 '대형 이사 장비'입니다. 다른 옵션인 A와 B는 속도 한계 때문에 기한 내 불가능하며, D는 전용선을 새로 까는 데만 수개월이 걸릴 수 있어 '2주 이내'라는 조건에 맞지 않습니다. 💡 이 문제의 핵심 용어 AWS Snowball Edge: 대용량 데이터를 안전하게 옮기기 위해 AWS가 대여해주는 튼튼한 금고형 고속 저장 장치 TeraByte (TB): 1,000기가바이트(GB)에 해당하는 거대한 데이터 단위 Bandwidth (대역폭): 인터넷 선을 통해 한 번에 지나갈 수 있는 데이터의 통로 크기
Q399 주식 조회 API 서버를 운영 중인데, 갑자기 수많은 가짜 요청을 퍼부어 서버를 마비시키는 'HTTP 플러드' 공격이 걱정됩니다. 운영 수고 없이 자동 방어 시스템을 구축하려면? API 서버 앞에 CloudFront를 붙이고 캐시 유지 시간(TTL)을 24시간으로 길게 잡습니다. AWS WAF(웹 방화벽)의 '요청 속도 기반(Rate-based)' 규칙을 설정해 API와 연결합니다. CloudWatch로 요청 횟수를 감시하다가 일정 수치를 넘으면 알림 이메일을 보냅니다. 에지 서버에서 Lambda@Edge를 돌려 비상식적으로 자주 오는 IP 주소를 코드로 골라 차단합니다. 정답 확인 및 해설 📖 해설 정답은 B입니다. 무차별적으로 쏟아붓는 요청 폭탄(Flood)을 막는 명사수는 WAF의 'Rate-based Rule'입니다. "동일인이 5분 동안 2,000번 넘게 호출하면 넌 범인이니 차단해!"라고 규칙만 정해두면 WAF가 알아서 실시간으로 나쁜 놈들을 걸러줍니다. 클릭 몇 번으로 끝나니 개발자가 직접 차단 로직을 짤 필요가 전혀 없습니다. 다른 옵션인 A(캐시)는 실시간 주식 정보 조회에는 맞지 않고, C는 알림만 줄 뿐 방어를 직접 해주지는 않으며, D(코딩)는 운영 오버헤드가 너무 큽니다. 💡 이 문제의 핵심 용어 AWS WAF (Web Application Firewall): 악의적인 웹 요청이나 해킹 시도를 문 앞에서 필터링해주는 웹 방화벽 서비스 HTTP Flood: 정정당당한 듯 보이지만 엄청난 횟수의 웹 요청으로 서버를 마비시키는 대표적인 공격 기법 Rate-based Rule (속도 기반 규칙): 특정 IP에서 너무 빈번하게 호출이 올 경우 자동으로 차단해버리는 똑똑한 규칙
Q400 날씨 데이터가 DynamoDB에 저장될 때마다, 이 소식을 4명에게 즉시 알리는 서비스를 만들려 합니다. 현재 앱 성능에 전혀 지장을 주지 않으면서 가장 쉽게 만드는 법은? DB에 쓸 때마다 '트랜잭션' 기능을 켜서 알림 작업까지 한 묶음으로 처리하게 합니다. 데이터를 저장한 앱이 직접 SNS 주제 4개를 돌아가며 실행해 소식을 알리게 고칩니다. DynamoDB 스트림을 활성화하고, 트리거(Lambda)를 달아 하나의 SNS 주제로 쏴버립니다. 1분마다 전체 DB를 훑어서(Scan) 새로 들어온 게 있는지 크론 작업으로 확인합니다. 정답 확인 및 해설 📖 해설 정답은 C입니다. 'DB에 변화가 생기면 즉시 알린다'는 시나리오에는 DynamoDB 스트림(Streams)이 최고입니다. DB 자체에 무리를 주지 않고도 뒤쪽에서 살짝 변경 이력을 읽어와서 SNS(알림 서비스)로 소식을 툭 던져줄 수 있습니다. 람다 트리거 하나면 되니 아주 가볍고 실시간성까지 확보한 우아한 설계입니다. 다른 옵션인 A와 B는 메인 앱이 알림 일까지 직접 챙겨야 하므로 서버가 느려질 수 있고, D(스캔)는 데이터가 많아질수록 서버 비용이 폭탄이 될 수 있는 아주 위험한 방식입니다. 💡 이 문제의 핵심 용어 DynamoDB Streams: 데이터베이스에 무언가 추가/수정/삭제되었을 때 그 변화를 찰나의 순간에 포착해 알려주는 기능 Amazon SNS: 한 번의 발송으로 수많은 구독자(이메일, 문자, 모바일 등)에게 소식을 배달하는 전파기 Trigger (트리거): 어떤 사건이 터지면 그 즉시 도미노처럼 연결된 코드가 실행되게 만드는 장치