시작하며

AWS Solution Architect Associate(SAA-C03) 시험을 준비하면서 공부한 핵심 내용을 서비스 영역별로 정리한 글이다.

AWS 서비스별 핵심 개념

IAM (Identity and Access Management)

  • IP 대역 문제에서, 예를 들어 10.100.100.0/24 라면 처음 4개와 마지막 IP는 AWS에서 사용하므로 사용할 수 없다.
    • 0, 1, 2, 3, 255 는 AWS에서 예약해 두었다.
    • DB 플러그인을 통한 데이터베이스 인증(단기 토큰)을 사용하여 DB 액세스 보안을 구성하기도 한다.
  • RAM (Resource Access Manager) : AWS 조직 내에서 AWS 리소스를 쉽고 안전하게 공유할 수 있는 서비스다.
  • AWS Config : AWS 리소스의 구성을 평가, 감사할 수 있는 서비스다.
    • AWS 리소스 구성을 지속적으로 모니터링 및 기록하고, 원하는 구성에 대해 기록된 구성을 자동으로 식별한다.

Storage

  • instance store
    • 최대 I/O 성능을 제공한다.
  • ebs (elastic block storage) : EC2에 연결하여 사용하는 인스턴스 독립적인 block storage다.
    • AMI가 설치되는 EBS 루트 볼륨이 생성된다.
    • 단일 가용영역(AZ) 에 있어야 연결 가능하다.
    • snap-shot 기능을 통해 EBS 볼륨 백업이 가능하다.
    • 수명주기 관리자 정책을 통해 스냅샷 생성 일정을 자동화할 수 있다.
    • KMS (AWS Key Management Service) 를 통해 EBS 볼륨 암호화가 가능하다.
    • 여러 EC2에 동시 연결(Multi-Attach) 가능하다 (단, 프로비저닝된 IOPS SSD만 가능).
    • 인스턴스 수명과 독립적이며 서비스 중단 없이 볼륨 유형, 크기, IOPS 용량을 수정할 수 있다.
  • efs (elastic file system) : 리눅스 환경의 EC2 인스턴스에서 연결하기 위한 NFS다.
    • NFS 프로토콜을 지원하며 여러 가용영역에 있는 수십~수백 대의 EC2 연결이 가능하다.
  • S3 (Amazon Simple Storage Service)
    • 내구성 99.999999999%
    • 멀티파트 업로드 : 대용량 파일을 분할하여 병렬로 S3에 업로드한다. 완료 전까지 계속 남아 있으므로 수명주기 정책으로 관리해야 한다.
    • Amazon S3 Transfer Acceleration 을 통해 장거리 파일을 빠르고 쉽게 전송할 수 있다 (Global Accelerator는 TCP, UDP 트래픽을 빠르게 전송한다).
    • S3 Storage Class
      • S3 Standard
      • S3 Intelligent-Tiering
      • S3 Standard-IA
      • S3 One Zone-IA
      • Glacier Instant Retrieval
      • S3 Glacier / Glacier Flexible Retrieval : 신속 검색을 통해 15분 이내로 데이터 접근이 가능하다.
      • S3 Glacier Deep Archive
  • Storage Gateway : 데이터 복제 후 통합 솔루션이다.
    • on-premise > AWS cloud storage 간 연결. local cache 기능을 통해 AWS storage와 짧은 지연시간 액세스를 유지한다 (실시간 전송 및 저장 가능).
    • S3 File Gateway : NFS, SMB 프로토콜을 이용해서 S3에서 객체를 저장하고 검색한다.
    • FSx File Gateway : SMB 프로토콜을 이용해서 Windows File Server 내의 파일을 저장하고 검색한다 (Lustre는 고성능).
    • Volume Gateway : ISCSI 연결을 이용해 볼륨을 EBS 스냅샷으로 저장 및 백업 가능 on-premise block storage를 대체할 수 있다.
    • Tape Gateway : S3 Glacier 또는 Deep Archive 로 백업하여 저장 비용을 최소화한다.
    • Hardware Appliance : on-premise에 서버 등 인프라가 부족한 데이터 센터의 경우, Storage Gateway Software가 미리 설치된 기기를 구매하여 운용할 수 있다.
    • Cached Volume : 데이터를 S3에 저장하고, on-premise 네트워크에서 로컬로 자주 액세스하는 데이터 하위 세트 사본을 보유한다.
  • AWS DataSync : 마이그레이션 솔루션이다.
    • on-premise > AWS cloud storage 간 데이터 전송 및 복제(데이터 마이그레이션)를 자동화한다.
    • NFS, SMB 프로토콜을 지원하며, on-premise 데이터를 S3, EFS, FSx 등으로 마이그레이션하거나 S3 Glacier로 아카이빙한다.
  • Snow Family
    • Snowball 사용 시, S3 Glacier 볼트를 대상으로 바로 선택할 수 없으며, S3 수명주기 정책을 생성하여 S3 Glacier로 전환해야 한다.

DataBase

  • RDS (Relational Database Service) : 여러 RDBMS 엔진을 AWS에서 제공하며, 백업은 S3에 저장된다.
    • DB 다운타임 없이 스토리지 용량에 맞게 자동으로 확장 가능하다 (Storage Auto Scaling).
    • FailOver가 동작하는 경우 : 기본 스토리지 오류, 가용성 문제
    • Too many Connection 시 RDS Proxy를 사용한다.
    • 3가지 스토리지 유형 범용(일반), 프로비저닝 IOPS(빠른 I/O), 마그네틱(가장 낮은 액세스 빈도)
    • RDS Replica는 읽기 성능 향상에 도움이 된다.
    • 자동 백업 (Automated backup)
      • 5분마다 백업하므로 5분 전까지 복구 가능 / 35일 보관 가능
    • 스냅샷 (DB Snapshots) / 보존 기간 없음
    • 복구하면 새로운 엔드포인트를 가지는 신규 DB 인스턴스가 생성된다.
    • SSL, TLS 사용. KMS (AWS Key Management Service) 를 통해 모든 DB 엔진에 대한 암호화가 가능하다.
    • RDS Audit Logs를 통해 보안 감사에 활용할 수 있다.
    • 향상된 모니터링 지표는 OS 프로세스, RDS 자식 프로세스다.
  • ElastiCache : DB 응답 성능 개선을 위한 인메모리 데이터 스토어다 (1ms 미만의 응답 시간).
    • Memcached 멀티쓰레드 지원
    • Redis 싱글쓰레드만 지원, 스냅샷 백업, 복제, 고가용성 가능
  • DynamoDB : key-value 기반 NoSQL DB 서비스이며, 서버리스다. 짧은 지연시간으로 수백만 개 요청에 빠른 응답을 제공한다.
    • 용량에 맞게 자동으로 Auto-Scaling 가능하다.
    • DAX (DynamoDB Accelerator) 를 통해 인메모리 캐싱 가능하다 : 밀리초 단위로 줄어든다.
    • TTL 설정으로 일정 시간이 지나면 삭제할 수 있다.
    • DynamoDB Streams : 변경 항목을 캡처할 수 있고, Kinesis DataStream으로 보낼 수 있다.
    • 트래픽이 예측 가능한 경우 Auto-Scaling을, 예측 불가능한 경우 On-Demand를 사용한다.
  • Amazon Athena : 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 분석할 수 있는 쿼리 서비스다. 데이터 로드 없이 S3 원본에 저장된 데이터에 대해 SQL 쿼리를 수행한다.
    • JSON Apache Parquet 로 변환 시 월등한 속도를 보인다.
  • Amazon Aurora : RDS 호환형 관계형 데이터베이스다.
    • 1초 RPO(복구 시점 목표), 1분 RTO(복구 시간 목표)
    • RDS에서 제공하는 읽기 전용 복제본, KMS 암호화, 스냅샷 백업, Auto-Scaling 등을 제공한다.
    • AWS에서 만든 서비스로, 다른 RDS보다 저렴한 비용에 성능이 더 뛰어나다.
    • 클러스터 기반 구성이며, 연결을 추상화하기 위한 내장 리더 엔드포인트를 사용한다.
    • Aurora Replicas의 경우, 마스터 DB 장애 발생 시 최대 30초 이내에 복제본 중 하나가 기본 인스턴스로 Failover된다.
    • Amazon Aurora Serverless : 예측할 수 없는 워크로드에 자동 스케일링하는 솔루션이다.
  • Amazon QLDB (Quantum Ledger DataBase) : 암호적으로 검증 가능한 트랜잭션 로그를 제공하는 완전 관리형 레저 데이터베이스다.
  • Amazon RedShift : 빅데이터 분석용이다. RedShift Spectrum의 경우, Amazon S3의 구조화되지 않은 데이터에 대해 SQL 쿼리를 직접 실행할 수 있다.

Network

  • Route53 : AWS에서 제공하는 DNS 서비스이며 라우팅 정책 생성, VPC 생성 등이 가능하다.
    • 단순 라우팅, 가중치 기반, 지리적 위치, 지연 시간 등
    • 레코드 유형
      • A : 도메인 to IPv4
      • AAAA : 도메인 to IPv6
      • CNAME : 도메인 to 도메인
      • ALIAS : 도메인 to AWS 리소스
      • 기타 : MX(메일) NS(DNS 식별) SOA(도메인 정보 및 권한)
  • Lambda + API Gateway 조합을 주로 사용한다.

Application - 통합

  • SQS (Simple Queue Service) : poll 방식으로 메시지를 전송한다.
    • 일정 횟수 이상 시도 후 처리되지 못한 메시지는 DLQ로 이동하여 보관된다.
    • 중복이 발생할 수 있다. 이런 경우 Amazon Simple Workflow 또는 SQS FIFO Queue를 사용한다.
  • API Gateway : 개발자가 API를 생성, 게시, 모니터링, 보안 유지를 할 수 있게 해주는 서비스다.
    • RESTful API, WebSocket API를 지원한다.
  • Kinesis : 실시간 데이터를 손쉽게 수집, 처리, 분석하는 서비스다.
    • Kinesis Data Streams : 데이터 스트림을 다른 AWS 서비스로 전송한다.
      • 실시간(Realtime)이며 추가된 시점부터 최대 24시간 동안 접근할 수 있고, 한도는 7일까지다.
      • 최대 1년 보관의 데이터 스토리지가 있다.
      • 중복되지 않는다.
    • Kinesis Data Firehose : 데이터 스트림을 AWS 데이터 스토어로 ETL한다.
      • 준실시간(Near Realtime), DynamoDB로는 전송 불가하다.
      • 데이터 스토리지 없음
    • Kinesis Data Analytics : SQL, Apache Flink로 데이터 스트림을 분석한다.
    • Kinesis Video Streams : 비디오 스트림을 수집, 저장 및 처리한다.

ELB (Elastic Load Balancer)

  • NLB (Network Load Balancer) : TCP, UDP, TLS 요청을 로드 밸런싱해야 하는 경우 사용한다.
    • Static IP는 NLB에서만 할당 가능하다 (예: 고정 IP를 허용하는 방화벽 IP 해제의 경우 NLB를 사용해야 한다).
  • ALB (Application Load Balancer) : HTTP, HTTPS, gRPC 등 요청을 로드 밸런싱해야 하는 경우 사용한다.
    • 리스너 규칙, 경로 기반으로 라우팅 설정이 가능하다.
    • 도메인이 SSL 트래픽을 제공하도록 허용하는 것은 SNI(서버 이름 표시)를 사용해서 클라이언트에 대한 최적의 TLS 인증서를 자동으로 선택하게 한다.
  • Gateway LB : 경로 기반 라우팅을 지원하지 않는다.

CloudFront

  • CDN (Contents Delivery Network)
  • edge location의 콘텐츠 캐싱을 통해 콘텐츠를 사용자에게 더 빨리 배포하도록 지원한다.
  • origin CloudFront 간의 전송 비용은 부과되지 않는다.
  • OAI (Origin Access Identity) 를 통해 S3 Bucket의 액세스를 CloudFront를 통해서만 할 수 있게 강제한다.
  • HTTP 프로토콜 처리에 적합하다 (TCP의 경우 Global Accelerator).
  • Origin Group : CloudFront에 대한 고가용성
    • origin 장애 조치를 사용해 CloudFront를 설정 기존의 origin을 사용할 수 없게 되면 자동으로 보조 origin으로 전환한다.

보안 및 자격증명

  • AWS Cognito
    • application에 대한 로그인 및 인증을 제공한다 (계정과 통합 가능).
  • AWS Secret Manager : 데이터베이스 자격증명, 암호 등을 중앙에서 제어할 수 있다.
    • 코드의 하드코딩된 내용을 프로그래밍(API) 방식으로 가져올 수 있다.
  • GuardDuty
    • AWS 계정 및 워크로드에서 악의적 활동을 모니터링하고 위협을 탐지한다.
  • Macie
    • 머신러닝을 통해 AWS에서 민감 데이터를 보호한다.
  • Inspector
    • 컨테이너, EC2에서 SW 취약성을 검증한다.
  • WAF (Web Application Firewall)
    • HTTP에서 동작하며, ALB, API Gateway, CloudFront에 적용 가능하다.
    • WAF ACL (Access Control List) 를 통해 악성 IP, 국가 차단, SQL injection 방어, DDoS 방어 등이 가능하다 (더 안전한 것은 AWS Shield).
  • CloudTrail : AWS 계정이 수행하는 작업에 대해 로그를 기록한다.
    • 관리 콘솔 및 API 호출 기록
    • 로그는 CloudWatch Logs 또는 S3 버킷에 저장 가능하다.
    • KMS를 사용해서 암호화 가능하다 AWS Config 규칙을 통해 리소스 구성이 규정 준수를 하고 있는지 규칙을 생성할 수 있다.
    • CloudTrail Insight를 사용해서 비정상적인 활동을 감지할 수 있다.
    • S3로 올린 이후에도 CloudTrail 로그 파일에 대한 CRUD 확인이 가능하므로 AWS 계정의 거버넌스, 규정, 감사 등에 활용한다.
  • AWS STS (Security Token Service) : 임시 토큰 서비스(단기 자격증명)다.
    • LDAP(Lightweight Directory Access Protocol) 디렉토리 통합 시, ID 스토어가 SAML과 호환되지 않은 경우 등에 사용한다.

관리 및 거버넌스

  • CloudWatch : AWS Cloud 리소스와 AWS에서 실행되는 애플리케이션 모니터링 서비스다. 지표를 수집, 추적, 사용률 확인이 가능하다.
    • EC2 인스턴스에 대한 중지, 종료, 재부팅 등의 알람을 생성해 동작하게 할 수 있다.
    • CloudWatch Agent를 통해 CloudWatch Logs Insight로 로그 데이터를 분석한다.
    • 기본적으로는 메모리 사용량을 모니터링하지 않으므로 EC2 인스턴스에 CloudWatch agent를 설치해야 한다.

Computing - Container

  • ECS : 도커 기반 컨테이너 오케스트레이션 서비스다.
    • 서비스의 평균 메모리 사용률이 너무 높을 때 클러스터를 확장할 수 있다.
    • 클러스터의 CPU 사용률이 너무 높을 때 클러스터를 확장할 수 있다.
  • EKS : 관리형 Kubernetes 서비스다.
  • AWS Fargate : 서버리스 컨테이너 서비스다.
    • 서버 프로비저닝, 패치 적용, 클러스터 용량 관리 & 인프라 관리를 AWS에서 자동으로 수행한다.
    • ECS 및 EKS와 연동된다.
    • Amazon ECS가 컴퓨팅에 Fargate를 사용하면 애플리케이션이 유휴 상태일 때 비용이 발생하지 않는다.

ETC

  • AWS Glue : 클릭스트림 ETL 서비스다.
  • Amazon Workspaces : 가상 데스크탑이다.
  • AWS X-Ray : Amazon API GW 분석 모니터링이다.
  • AWS CloudFormation 종속성 확인 : CloudFormation 템플릿의 CreationPolicy를 사용한다.
  • OpenID Connect : WebId Federation에 사용한다.
  • HPC (고성능 컴퓨팅) : EC2에 EFA (Elastic Fabric Adapter) 를 연결한다.
  • EC2 휴지 기간은 300초다.
  • AWS Step Functions : 서버리스 워크플로우다.
  • ACL : Local EC2 인스턴스로 SSH 연결을 하려면?
      1. Security Group에서 인바운드 규칙 허용 (stateful)
      1. NACL에서 in, out 트래픽 허용 (stateless)
  • RDP, SSH 연결을 하지 않고도 RUN(명령 실행)으로 EC2를 구성할 수 있다.
  • AutoScaling 축소 정책
      1. 가장 많은 가용 영역 인스턴스
      1. 가장 오래된 구성
      1. 다음 청구 시간에 가장 가까운 것
  • AutoScaling Group에 EC2를 추가하려면?
    • 인스턴스를 시작하는 AMI가 여전히 유효한가?
    • AutoScaling Group에서 정의된 가용 영역 중 하나에서 시작되었는가?
    • EC2를 중지할 필요는 없다.
  • Lambda@Edge는 CloudFront 기능이며, 지리적으로 더 가까운 코드를 실행하게 한다.
  • 인도 북부 등 지역 전체는 지리 근접 라우팅을 사용한다.
  • Site To Site VPN 구성요소 : 고객 게이트웨이, 가상 프라이빗 게이트웨이
  • 메타데이터 검색하는 curl에서 localhost는 사용 불가하며, 169.254.169.254가 맞다.
  • DR 파일럿 라이트 전략은 미리 리소스를 세팅해 중지해두고, 상황 발생 시 가동한다.
  • Active Directory를 사용 중이라면, AWS Directory Service AD Connector를 사용하는 것이 좋다.
  • S3 업로드 문제없는지 여부는 HTTP 200 결과코드 및 MD5 체크섬으로 확인한다.
  • 서브넷이 인터넷과 연결되려면 NAT gateway 또는 NAT instance가 필요하다.
  • 다중 AZ RDS가 실패하면 기본 인스턴스 대기 인스턴스로 CNAME이 변경된다.
  • Storage Gateway - Cached Volume : 데이터를 S3에 저장하고, on-premise 네트워크에서 로컬로 자주 액세스하는 데이터 하위 세트 사본을 보유한다.
  • Anycast 고정 IP면 CloudFront가 아니고 Global Accelerator다.

정리하며

AWS SAA-C03 시험은 다양한 서비스의 특성과 use case를 정확히 이해하는 것이 핵심이다. 단순 암기보다는 각 서비스의 목적과 다른 서비스와의 차이점을 파악하는 방식으로 공부하면 실제 시험 문제에서도 유연하게 대응할 수 있다.