읽을 거리
https://github.com/serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide
https://aws.amazon.com/ko/architecture/?awsf.quickstart-architecture-page-filter=highlight%23new
볼거리
https://www.aws.training/LearningLibrary?filters=language%3A1&tab=view_all
용어정리
컴퓨팅
- Fargate
서버리스 컴퓨팅 엔진
비용 : 시간당 사용된 CPU, Memory - Lambda
비용 : 요청수, 메모리 함수 실행 초 - SAM
Stateless Application Model. YAML 템플릿을 사용하여 애플리케이션 (lambda, API End Point, DynamoDB 등) 을 설명하는데 사용. 배포과정에서 CloudFormation으로 변환 - ECR
Elastic Container Registry. Docker 컨테이너 이미지를 손쉽게 저장, 관리, 배포할 수 있게 해주는 완전 관리형 Docker CR
스토리지
- EBS 볼륨
하나 이상 인스턴스 연결 가능. 인스턴스의 시스템 드라이브, DB APP용 스토리지 등 자주 업데이트하는 데이터의 경우 사용 - Storage Gateway
온프레미스 엑세스 권한을 제공하는 하이브리드 클라우드 스토리지 서비스
- 테이프 게이트웨이 : 백업 및 복원에 사용
- 파일 게이트웨이 : 온프레미스, NAS, SAN 확장과 유연한 버퍼 제공
- 볼륨 게이트웨이 : 재해복구 관련 시 사용
- EFS
클라우드, 온프레미스 리소스에서 사용할 수 있는 완전관리형 NFS 파일 시스템 제공. 자동으로 스토리지 확장, 축소 - S3 Bucket Policy
- 인증없이 접근하는 방법
VPC StringEquals의 AWS, SourceVpce 에 VPC EndPoint IP 입력하면 됨
- EBS
- 볼륨 유형
범용 SSD (gp2), IOPS SSD (io1), 처리량 최적화 HDD (st1), Cold HDD (sc1)
- Snowball
테라바이트 단위 데이터를 옮길때 주로 사용
50TB의 경우 42TB 저장 가능
80TB의 경우 72TB 저장 가능 - Snowmobile
페타바이트 단위의 데이터를 옮길때 주로 사용 (최대 100PB까지 수용)
데이터베이스
- Memory DB
Memched - 멀티스레드 지원, 클러스터링 불가
Redis - Replication 지원, 비동기, 클러스터링 가능
보안, 자격 증명 및 규정 준수
- Cognito
웹, 앱에 사용자 가입, 로그인, 엑세스 제어 가능. 여러가지 자격증명 제공 - Instance Profile
IAM 역할을 위한 컨테이너. EC2 인스턴스에 역할을 전달하는데 사용 - WAF
Web Application Firewall. CF 나 EC2가 실행되는 ALB, API Gateway 에 WAF 배포 가능. - Shield Advanced
줄여서 Shield 라고도 하며, 관리형 DDOS 보호 서비스
암호화 및 PKI
- KMS
Key Management Service, 키 관리하는 서비스 - Cloud HSM
Hardware Security Module. 클라우드 자체 암호화키를 손쉽게 생성 및 사용할 수 있도록 지원하는 것 - ACM
AWS Certificate Manager. AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS(Secure Sockets Layer/전송 계층 보안) 인증서를 손쉽게 프로비저닝, 관리 및 배포할 수 있도록 지원하는 서비스. (인증서 관리/배포 서비스)
관리 및 거버넌스
- Config
AWS 리소스 구성을 측정, 감사, 평가할 수 있는 서비스 - Systems Manager
AWS 리소스 관리. APP별로 그룹화, 운영 데이터 확인, 리소스 그룹 조치 안전하게 운영 관리
Patch Manage 로 OS 와 APP 모두 패치 가능 - Opsworks
Check, Puppet 관리형 인터페이스, 코드를 사용해 서버 구성을 자동화하는 서비스 -
- Chef Automate
워크플로 구성. 규정준수, 보안자동화 테스트, OS 구성, 규정준수, 패키지 설치, DB설정 등 가능
- Chef Automate
- Service Catalog
사용이 승인된 IT 서비스 카탈로그를 생성하고 관리. 배포된 IT 서비스를 중앙에서 관리 - Trusted Advisor
리소스를 프로비저닝하는데 도움이 되도록 실시간 지침 제공. 비용, 성능, 보안, 가용성, 서버 Limit 등 다섯가지 제공 - CloudFormation StackSet
여러 리전 및 계정에 걸쳐 AWS Service Catalog 제품 시작 가능
Stack Instance는 리전 내의 단일 계정의 스택을 의미하고 하나의 StackSet와 연결 - Organizations
AWS 계정 정책 중앙에서 관리. AWS 서비스, 리소스 및 리전 엑세스 관리. AWS 계정 생성 및 관리 자동화. 결제 통합- Organizations 의 정책 관리
- TP
Tag Policies (태그 정책).- Organizations OUs 관리
- CloudTrail
사용자 활동을 추적
마이그레이션 및 전송
- Migration 6R
- Retain
마이그레이션하지 않고 non-cloud 환경에서 실행함 - Retire
더 이상 사용하지 않고 폐기시킴 - Rehost
Lift-and-Shift 라고도 하며, 애플리케이션 환경을 그대로 마이그레이션 - Replatform
Lift-and-Shape 라고도 하며, OS 또는 DB를 업그레이드하여 애플리케이션을 최신화함. - Refactor
Cloud-Native 라고도하며, 클라우드 환경에 최적화하여 애플리케이션을 재작성 - Rearchitect
전바적인 재설계
네트워크 및 컨텐츠 전송
- 가중 라우팅 정책
사용자가 지정하는 비율에 따라 여러 리소스로 트래픽을 라우팅하는 경우 - Lambda@Edge
CloudFront의 기능 중 하나로써 애플리케이션의 사용자에게 더 가까운 위치에서 코드를 실행하여 성능을 개선하고 지연시간을 단축
재난재해복구
- Pilot Light (파일럿 라이트)
가스히터에서 비롯된 개념. 항상 켜지는 작은 불꽃으로 전체 난로를 점화하여 필요한데 집을 따뜻하게 할 수 있음
재난재해복구 대응 방안으로 Database는 Mirroring 상태로 두고, 평소에 Reverse Proxy, Caching Server, Application Server 등은 Not Running 상태이나 재난재해 발생 시 Running 상태로 변경
최종 사용자 컴퓨팅
- Workspaces
Dass(Desktop as a Service) 로써 언제 어디서나 지원되는 디바이스에서 엑세스할 수 있는 빠르고 응답적인 데스크탑을 이용 가능 - AppStream 2.0
완전관리형 애플리케이션 스트리밍 서비스. 중앙에서 데스크탑 어플을 관리하여 모든 컴퓨터로 안전하게 제공
-
- SNS (Amazon Simple Notification Service)
높은 처리량 및 안정적인 메시지 전송을 위한 게시/구독 메시징 - SQS (Amazon Simple Queue Service)
규모에 상관없이 애플리케이션 구성 요소 간에 메시지를 전송, 저장 및 수신하는 메시지 대기열 - Amazon MQ
마이그레이션을 쉽게 만들어주고 하이브리드 아키텍처를 지원하는 Apache ActiveMQ용 메시지 브로커
- SNS (Amazon Simple Notification Service)
- 워크플로
- AWS Step Functions
앱을 신속하게 빌드 및 업데이트할 수 있도록 여러 AWS 서비스를 서버리스 워크플로로 조정
- AWS Step Functions
- API 관리
- Amazon API Gateway
규모에 상관없이 서버리스 워크로드 및 웹 애플리케이션을 위한 API를 생성, 게시, 유지 관리, 모니터링 및 보호 - AWS AppSync
하나 이상의 데이터 원본에서 데이터를 안전하게 액세스, 조작 및 결합하기 위한 유연한 API 생성
- Amazon API Gateway
- 이벤트 버스
- Amazon EventBridge
자체 앱, SaaS 및 AWS 서비스의 애플리케이션 데이터를 연결하는 이벤트 중심의 아키텍처 구축
- Amazon EventBridge
기타
- HTTP 에러
5xx - 내부서버오류
500 - 권한 오류
4xx - 클라이언트 오류 - Chef
루비와 얼랭으로 작성된 형상관리 도구 - Puppet
개방형 소스관리 도구. OS, App의 구성요소인 프로비저닝, 패치 구성을 단계적으로 관리 - SAML
Security Assertion Markup Language. 도메인간 인증, 권한 부여와 관련된 자료를 교환할 수 있는 XML 기반의 표준 - SSO
Single Sign On. - MAM
CMS의 일종. 방송용 고해상도 미디어 컨텐츠를 관리 - Artifact (아티팩트)
소프트웨어 개발 프로젝트를 진행하면서 생성된 다양한 산출물. 설계문서, UseCase, UML, 다이어그램, 소스코드, 라이브러리 등을 의미 - SLA
Service Level Aggrement. 서비스 수준 협약서. 공급자와 사용자 간에 서비스에 대한 측정 지표와 목표 등에 대한 협약서
사람들의 후기들
SAP는 SAA과 어떤 차이가 있는가?
첫 번째로 지문이 훨씬 길고 복잡합니다. 여러 단락에 걸쳐 지문이 나오며 선택지마저 여러 단락으로 구성되는 경우도 있습니다. SAA에서는 포괄적인 개념을 묻고, 해당 AWS 서비스를 고르는 질문이 많습니다. 반면에 SAP는 시나리오 베이스의 문제가 자주 보이는데 예를 들자면, 응시자가 지역 중고물품 거래소의 개발자라고 가정합니다. 거래소는 ELB 뒤의 EC2에 올라가 있으며 RDB의 MySQL를 DBMS로 사용하고 있습니다. 주문이 어떤 이유로 지속적으로 실패하여 사용자 경험을 해치고 있습니다. 시험 문제에 따라 해당 이유와 선택지가 달라집니다.
두 번째로 하나의 정답을 묻는 것이 아닌 최선의 선택을 묻는 경우가 많습니다. 지문의 끝에는 ‘cost effective’, ‘minimum operational cost’ 와 같은 조건이 붙는데 이 조건이 붙은 문제들은 비슷한 선택지가 나열되어 있고 해당 조건을 만족하는 최적의 방법을 묻습니다. 명확한 하나의 답변이 대부분이던 SAA의 문제들과는 대조적인 부분입니다. 어떤 문제는 서너줄 이상의 선택지가 한 두 단어 빼고 비슷한 문장으로 이루어져 있어 선택지들을 비교하는데 오랜 시간이 걸리기도 합니다.
세 번째로 Migration Planning, Organization Complexity , Cost control를 묻는 문제들이 집중적으로 출제됩니다. SAA는 기존 서비스를 어떻게 개선해야 하는지 혹은 주어진 상황에서 어떤 AWS서비스를 사용해야 하는지를 주로 물어봅니다. SAP는 이러한 문제들과 더불어 위 세개로 분류되는 문제들이 나오는데 관련 영역의 Hands-On 경험이 부족한 제겐 큰 장애물이었습니다.
내가 준비했던 방법들
처음에는 SAA를 준비했을 때와 동일하게 Udemy의 SAP 온라인 코스를 하나 선택해서 들었습니다. 하지만 몇 챕터를 다 듣고 나서도 내가 과연 제대로 준비하고 있는가 의문이 들었습니다. 과거 SAA를 준비할 때는 강의를 하나 하나 들으면서 새로운 개념들을 배웠고 이 개념들이 시험에 나온다는 확신이 있었지만 SAP는 그렇지 않았습니다. 단순히 강의를 듣는 것만으로는 부족하다. 강의를 듣는 것이 올바른 길이 아닐 수 있다고 생각한 저는 바로 Udmey 연습문제 세트를 구매해서 풀기 시작했습니다. 75문제 한 세트를 처음부터 끝까지 푸는데 하루 세시간 씩 5일이 걸렸습니다. 정답률은 형편없었지만 내가 무엇을 모르고 있는지, 문제를 왜 틀렸는지 알 수 있었고 제대로된 공부 방법이라는 확신이 들었습니다. 한 세트의 문제들을 분석해서 오답 노트를 만들고 각 문제를 제 나름대로 해석해서 요약했습니다. 어떤 키워드가 나오고 어떤 선택지가 나오며, 어떤 지식을 가지고 있을 때 이 문제를 단번에 풀 수 있는지 고민했습니다.
AWS SAP 정리노트
그렇게 75개의 문제 전체를 노트에 정리하는데 다시 일주일이 더 걸렸습니다. 결국은 WhitePaper과 FAQ 위주로 정보들을 찾게 되더군요.
이후 나머지 세 세트의 연습 문제를 동일한 방법으로 반복했습니다. 한 세트를 반복하는데 걸리는 시간은 점차 줄어들었고 정답률도 올라갔습니다. 누군가에겐 참 무식한 방법일지도 모르겠습니다. 전 수능에 익숙한 한국사람이라서 그런지 문제를 풀어가며 점차 비슷한 패턴들을 발견했고 키워드만으로 정답을 골라내는 방법도 익히게 됐습니다. 그렇게 연습 문제들을 한달 반에 걸쳐 반복해서 풀고 AWS 공식 연습 시험을 봤습니다. 그리고 바로 SAP 시험을 예약하고 합격했습니다.
미리 알고 있었다면 도움이 되었을 팁과 정보들
제가 준비한 방법에는 크게 특별한 것이 없습니다. 문제를 풀고 모르는 개념들을 찾아 정리하고 복습하고 반복했습니다. 하지만 제가 이 과정을 거치기 전에 미리 알았더라면 좋았을 팁과 정보들이 있습니다. 이를 소개하는 것이 이 글의 목적입니다.
다섯 가지의 문제 도메인에 익숙해져야 합니다.
SAP의 문제는 크게 다섯 종류로 분류됩니다.
- Design for Organizational Complexity
- Design for New Solutions
- Migration Planning
- Cost control
- Continuous Improvement for Existing Solutions
시험에 나오는 어떤 문제도 이 도메인을 벗어나지 않습니다. 즉 연습문제를 풀 때도 그 문제가 어떤 도메인에 속하는가를 계속해서 따져봐야 합니다. 문제의 패턴을 파악하고 정답을 예상하는데 도움이 됩니다. 최소한 지문을 훑어보고 도메인을 구별할 수 있을 정도가 되어야 시험준비에 속도가 붙을 수 있습니다.
Mutli-Account strategy, Organization은 백서와 공식 문서로 제대로 공부해야한다.
제게 가장 큰 걸림돌이었던 영역입니다. 어느정도 규모가 있는 회사의 Solution Architect, CTO가 아닌 이상 복수 계정으로 조직을 나누고 비용을 통합하며 서비스 접근 권한을 조정하는 경험을 할 기회가 많지 않을 것입니다. 저 또한 마찬가지였고 연습문제를 몇회 풀 때까지만 해도 오답률이 높은 영역이었습니다. 하지만 문제의 범위가 다른 영역에 비해 넓지 않고 유형도 많지 않습니다. 공식 문서와 백서를 읽으며 한번 제대로 공부해 놓으면 정답률이 확 올라갑니다.
Migration Planning은 쉽다.
VM이 등장하면 AWS SMS(Server migration service), 80TB의 데이터가 나오면 Snowball 등 키워드만으로 정답을 좁힐 수 있는 문제가 많이 등장합니다. Rehost, Replatform, Repurchase같은 용어들에 익숙해지고 해당 전략을 사용할 때 고를 수 있는 AWS 자원들이 어떤 것인지 떠올릴 수 있어야 합니다.
키워드, 또 키워드
문제의 패턴에 익숙해지고 나면 대부분 문제들을 키워드만으로 선택지를 반으로 좁힐 수 있습니다. DDoS가 나오면 AWS Shield, Organization이 나오면 SCP(Service Control Policy), 실시간이 나오면 Kinesis 등. SAA를 공부해 본 사람들은 더욱 공감할 것입니다. SAP라고 크게 다르지 않습니다. AWS는 DynamoDB를 참 좋아한다는 느낌을 많이 받았습니다. 무한히 확장가능하고 유연하고 빠른 데이터 입출력 등의 키워드에 DyanmoDB가 항상 따라붙었습니다.
예상 정답이 둘로 나뉘는 문제들은 힌트가 숨어있을 수 도 있다.
간혹 선택지를 좁히긴 했지만 남은 두가지 중에서 무얼 고를지 전혀 감이 안 잡힐 때도 있습니다. 그럴 때는 문제를 다시 한번 꼼꼼하게 읽어봐야 합니다. 예를 들어 ‘interactive’라는 키워드가 있기 때문에 S3에 웹을 호스팅하는게 오답이 되기도 하고, 데이터 마이그레이션에 드는 시간을 실제로 계산해 보니 아슬아슬하게 S3으로 바로 업로드하는게 정답이 될 수 도 있습니다. 비용 절감을 위해 Spot인스턴스를 사용할거라 예상했지만 ‘business critical’ 이란 키워드 하나 만으로 Spot이 아닌 On-demand를 사용해야 하는 경우도 있습니다(기간이 짧기 때문에 Reserved는 사용할 수 없었습니다)
결국은 객관식 시험이다.
경험이 쌓이게 되면 수능, 토익, 텝스같은 시험의 전략을 그대로 SAP에도 적용할 수 있습니다. 처음부터 끝까지 다 읽지 않고 문제의 핵심 부분만 찾아 읽기, 선택지 먼저 훑어보고 지문 읽기, 확실한 오답부터 지워나가기, 지문의 마지막 문장부터 읽기 등. 어떤 전략의 도움을 받을지는 개인 취향의 문제입니다. 결국 SAP도 정해진 시간 내에 정해진 수의 객관식 문제를 푸는 시험입니다. SAA에 비해 시간이 많이 부족하기 때문에 시간이 촉박한 분들은 시간 단축 전략을 준비하고 연습하는 것도 필요합니다. 하지만 문제를 많이 풀어보고 전반적인 패턴을 익히는 것을 우선해야 합니다.
마치며
오랜만에 만만치 않은 공부였습니다. 프론트엔드 엔지니어로 일 하고 있지만 스타트업의 특성상 CI/CD, Terraform 코딩 등을 해야할 일이 많았던 것이 도움 됐습니다. 클라우드 엔지니어링 능력 향상을 위해 이 모든 과정을 Hands-On과 함께 진행했다면 반년은 더 걸렸을 것입니다. 그래도 수많은 개념들을 새로 배울 수 있었고 AWS 뉴비(?)들의 질문에 간단한 대답을 해줄 수 있을 정도로 성장한 것 같습니다. 정태환님을 비롯해 aws gcp azure 클라우드 자격증 아무말 대잔치 카카오 오픈채팅에 계신 많은 분들의 도움을 받았습니다. SAP를 준비하는 모든 분들의 행운을 빕니다.
'Server Infra > AWS' 카테고리의 다른 글
The 5 R(Gartner Inc.) (0) | 2020.11.09 |
---|---|
SAP 시험 준비 #1 (0) | 2020.11.04 |
AWS Certified Solutions Architect(SAA-C02) 합격 후기 (0) | 2020.10.23 |
자격증 시험 준비 간략 정리 (0) | 2020.10.19 |
AWS EBS Cold HDD sc1 관련 (0) | 2020.10.15 |