Computer/AWS

AWS Certified Solutions Architect Associate 합격 후기 +시험에 많이 나오는 유형 정리

SenJ 2022. 3. 23. 19:33

AWS Practitioner 시험이 끝난 후 정확히 한달을 준비해서 AWS Solutions Architect Associate 자격증을 통과했다. Practitioner을 끝내고 아무런 준비없이 SAA Udemy의 덤프를 하나 풀어보는데 생각보다 새로운 내용은 거의 없었고 점수도 67%가 나와서 어라? 이거 할만한데 라는 느낌을 받아 기왕 시작한 거 머릿속에 남아있을 때 이어나가려는 마음으로 시작했다. Udemy 코스를 하나 등록을 하여 새로운 개념에 대해서만 시청을 하고 나머지는 슬라이드를 훑는 방식으로 준비를 하는데, 시작했을 때 느낌과 다르게 새로운 개념들이 하나하나 늘어날 때마다 복잡해지는 느낌에 그 후에 몇번이고 덤프를 풀었을 때 계속 아슬아슬 72%를 넘지 못했다. 결국 시험 전날까지도 총 덤프 중에 합격선을 넘은건 몇 개 없었기에 조금은 불안한 마음으로 시험에 임했다. 온라인 시험과정에서 신분증 인증이 제대로 되지않아 시험시간이 30분 이상 늦어지면서 기분도 안 좋고 3시간 빌린 공유오피스 시간도 점점 압박이 되어 떨어지겠구나 싶었는데 결과는 놀랍게도 822점으로 생각이상으로 여유롭게 통과를 했다.

 

시험은 Practitioner과는 꽤나 다른 유형으로

Practitioner에서는 A의 기능을 하는 서비스는? 또는 해당 서비스의 특징은? 과 같이 서비스의 특징 및 개념을 묻는 문제들과 특정 상황을 해결하기 위한 한 가지 서비스를 고르는 문제 등이 주어졌던 것에 반해

SAA에서는 특정 상황이 주어지고 해당 상황을 해결하기 위해서는 "어떤 서비스의 조합을 통해서 해결"할 수 있는지에 대한 문제가 대부분이었다.

따라서 서비스 하나가 어떤 특징을 가지고 있는지 아는 것도 중요하지만 해당 서비스가 다른 서비스와 어떻게 활용될 수 있는지에 대한 이해가 필요하다. 그리고 주어지는 상황이 어느정도 정해져있기에 해당 상황에 어떤 서비스의 조합을 이용할 수 있는지 알아두면 좋을 것으로 느껴졌다. Udemy에서 스테판이 제공하는 SAA강의 중 예시를 들어가며 전체적인 서비스 플로우를 만들어가는 과정에 대한 내용이 꽤나 도움이 많이 되었다. 아래의 여섯가지 큰 틀에서 각각의 서비스의 특징을 공부해서 시험장에 들어가면 생각보다 어렵지 않게 통과를 할 수 있다. (나도 822점이나 받을 줄 몰랐다) 


1. Serverless Architecture

기업이 인프라 관리없이 고객에게 서비스를 제공하고 싶다는 문제가 나오면 일단 API Gateway, Lambda, S3, Cloudfront, DynamoDB 등을 머릿속에 그려가면서 풀면 좋다. 특히 글로벌로 제공하고 싶다고 하면 거의 대부분이 Cloudfront와 DynamoDB와 관련이 있었다.

ex1) 컨텐츠의 Global 제공 : static 파일의 경우 Cloudfront의 OAI로 S3를 설정, dynamic 파일의 경우 API Gateway 통하여 DynamoDB Global Table을 조회한다.

ex2) 컨텐츠 업로드 후속작업 : S3 transfer Accerlerator, Cloudfront, API Gateway 등을 통해 S3에 업로드. S3 이벤트 통해 Lambda 서비스 invoke 또는 SNS, SQS 통해 다른 작업으로 연결

2. High Availability

High Availability를 달성하기 위한 방법을 묻는 질문으로 ELB, ASG, EC2, RDS, Aurora 등을 묶어서 연상을 해야한다. 주어지는 상황에 따라 Application LB 또는 Network LB를 고르는 문제, 비용적인 측면을 고려해 EC2의 인스턴스 타입을 고르는 문제, RDS 또는 Aurora의 기능을 고르는 문제 등이 있다.

ex1) 글로벌 서버의 응답이 지연되고 있음, read가 많음 : Aurora global DB, 또는 RDS read replica

ex2) 싱글 AZ의 EC2를 HA로 바꾸려고 함, HTTPs내용 검사 필요 : Application LB사용하고 ASG Multi-AZ기능 통해 달성

ex3) Business hour에 EC2 지연이 발생함 : ASG를 Scheduled action으로 Business hour에 늘릴 수 있으며 평소에 필요한 양은 reserved instance로 추가적으로 필요한 내용은 Spot instance로 사용함

3. VPC

VPC가 어떻게 구성이 되며 외부와 인터넷을 통해/통하지 않고 어떻게 연결할 수 있는지에 대한 이해가 필요하다.

ex1) Private subnet에서 인터넷으로 연결하려고 함. 어떻게 가능? Nat Gateway를 Public subnet에 설정하고 라우팅 테이블에 Nat gateway와 Internet Gateway를 연결해준다.

ex2) 인터넷을 이용하지 않고 온프레미스로 연결하려고 함 : VPN Gateway 와 Customer Gateway 설정

ex3) 인터넷을 이용하지 않고 아마존 서비스로 연결하려고 함 : VPC interface endpoint 또는 Gateway endpoint(S3, DynamoDB 만)

ex4) VPC와 VPC, 온프레미스를 연결하려면? : VPC peering(1대1), VPC transit(스타형으로 연결), VPC Cloudhub(여러 온프레미스 서버와 VPC), VPC Direct Connect(여러 VPC와 하나의 온프레미스) 등

4. Hybrid Cloud, Migration

온프레미스의 데이터를 AWS에 마이그레이션 또는 하이브리드 클라우딩을 통해 서버 확장을 하고 싶다는 문제가 많이 나왔다. 이 때 단어를 잘 살펴봐야하는게 move, migrate 을 이야기할 때는 Snow family, DataSync, Direct Connect, Site to Site 연결 등을 데이터 전송량을 기준으로 살펴봐야한다. 반면 AWS의 하이브리드에 관한 문제는 Storage gateway를 통한 file/volume/tape gateway를 떠올려야한다. 그리고 온프레미스에서 사용하던 스토리지 시스템을 기준으로 AWS에서의 저장소를 고를 수 있어야한다.

ex1) 80TB의 데이터를 마이그레이션하고 싶다? Snowball edge compute optimize

ex2) 온프레미스 NDFS를 AWS로 확장하고 싶다? Storage gateway 통해서 file gateway 사용

ex3) 온프레미스 윈도우 파일시스템에 AD서비스를 마이그레이션 하고 싶다? DataSync로 데이터 마이그레이션 후 FSx for Window Fileserver

5. Decoupling

상황에 맞는 디커플링 서비스를 고를 수 있어야 한다. 단순히 특정 상황에 맞는 디커플링 서비스에 대한 내용도 있지만 다른 서비스와 엮여서 사용하는 방법에 대해서도 문제가 있었다.

ex1) 빅데이터 기업이 데이터를 S3에 저장하려고 함 : Kinesis DataStream -> Kinesis Firehose -> S3

ex2) 어플리케이션에서 들어오는 데이터 양이 많아서 Lambda가 처리를 못함, Ordering/De-redundancy 필요 : SQS FIFO

6. S3

상황에 맞는 S3 Storage Class에 대해 복수의 문제가 출제되었으며, 전반적인 서비스 기능에 대한 내용은 다른 서비스와 엮여서 많이 출제되었다.

ex1) S3 업로드된 파일이 한달 후 부터는 어세스가 줄어듬. 이후에는 5년간 보관을 해야됨 : 라이프사이클을 통해서 Glacier로 보내야함

ex2) 컴플라이언스 관계로 10년간 데이터를 변경 없는 상태로 보관해야함 : S3 Object lock으로 보관

ex3) API Gateway를 통해 업로드된 데이터의 썸네일을 만들어야됨 : S3 event로 lambda를 invoke하여 작업 후 다시 S3로 보관


이외에도 DNS, NACL/Security Group, IAM Permission, 기타 Database 종류들, Failover Strategy 등 Udemy 강의에서 다루고 있는 수준의 내용에서 문제가 많이 출제되었으나 다른 서비스와 깊이 연동된 문제가 나오지는 않았기에 그 자체의 개념만 충실히 알고 있다면 문제를 푸는데에 지장이 없었다. 그 외에 Guardduty, Inspector, Cloudtrail, Well Architectured Framework 등에 관련해서는 따로 신경써서 보지 않았지만 Practitioner 공부했을 때 그 정도의 깊이면 충분히 알 수 있는 내용이 주어졌다. (자세한 내용은 개별 포스팅 참조)

지금 왜 자격증을 따려고 하는지에 대한 질문을 스스로에게 던져보면 정확히는 잘 모르겠다. 회사에서 Professional을 따면 10만엔 보상이 주어진다는 것 때문만은 아니고 클라우드 자격증을 따서 지금 당장 어디에다가 써먹을 수 있는 것도 아니다. 그저 지금의 환경이 만족스럽지 않기에 어떻게해서든 벗어나보려는 몸부림에 가까움인 것 같다. 이 자격증 하나 통과한다고 엄청난 일이 생길 것이라고 기대하지도 않지만 내가 바뀌지 않으면 아무것도 달라지지 않는다는 것을 알기에 일단은 또 다음 목표를 향해 나아가보려고 한다. 다음에는 AWS Developer를 준비해서 한달 뒤에 다시 후기 남기는 걸로!