본문 바로가기

Server Infra/AWS

AWS DevOps Engineer - Professional 취득 후기

728x90

Developer 부터 SysOps 그리고 마지막으로 DevOps까지 전부 취득했다. 2021년 마지막을 장식하는 자격증으로 한번에 합격해서 행복한 크리스마스를 보낼것 같다.

Solutions Architect - Pro도 그렇지만 75문제는 너무나도 지친다. 심지어 Pro 계열의 문제들은 지문도 더럽게 길다. 한국어로 보았는데 번역이 이상하여 여러번 영문으로 변경해서 봐야 했다.

우선 본인의 실력을 알아볼겸 모의고사를 한번 보자!

위 결과에 실망하지 말자. 사실 개인적인 경험으로 Code 시리즈에 대한 경험은 매우 부족했다. 특히 ElasticBeanstalk은 한번도 사용해 본적 없으며 OpsWorks는 말로만 들어보았다. CloudFormation? 본인은 Terraform을 좋아하고 최근에야 CDK를 사용하기에 CloudFormation을 직접적으로 수정할 이유가 없었다.

그래서 SAP랑은 다르게 이번엔 직접 핸즈온을 해보고자 실제 콘솔에서 구축 하고 테스트도 해 보았다. 중점적으로 실습했던것이 EB와 CloudFormation, Code시리즈 이다. 특히 Code시리즈의 파이프라인은 정말 중요하다. 유데미를 통한 실습 핸즈온을 여러번 진행했다.

실제로 핸즈온한 뒤에 유데미의 모의고사를 보았는데 70~80%의 정답률을 기록했다. 그만큼 핸즈온 커리큘럼이 DevOps와 딱 들어맞는다. 그리고 중간중간 읽어야할 백서나 도큐먼트, 블로그등을 알려주기에 수시로 에세이 읽듯 읽었다. 사실 실무에 도움되는 내용도 많기에 적극 권장한다.

그래서 대충 요약한 내용

영역 1 : SDLC 자동화(22%)

Service : CodeCommit, CodeBuild, CodeDeploy, CodePipeline, ElasticBeanstalk, CloudFormation, OpsWorks

기술 : A/B, 블루/그린, 카나리, 롤링 배포방법론

위처럼 빌드, 배포후 테스트나 승인에 거쳐 운영 환경에 배포되는 파이프라인도 가능하고

CodeBuilder가 아닌 온프레미스 레거시 Jenkins환경이 있다면 플러그인을 통해 Pipeline내에 포함시킬수도 있다.

그리고 CloudFormation EB, OpsWorks와 통합되어 디플로이 할 수 있고 CodeBuild를 사용한 Test스크립트 또는 부하 테스트도 가능하다!

또한 CodeDeploy나 EB를 사용하여 위처럼 블루/그린 배포도 지원하여 다양하게 활용이 가능하다. 물론 CloudFormation을 활용한 배포도 가능하다.

위처럼 Code 시리즈와 Pipeline은 상세하게 알아야 한다. 현업에도 물론 많이 쓰이기도 하다. CodeCommit의 사용자 권한 관리 라던가 브랜치별 Pipeline 분리, CodeDeploy 배포 그룹 분리등 최대한 상세하게 알고 들어가자.

또한 배포에 카나리를 뺄 수 없는데 대표적으로 API Gateway와 Lambda 조합의 배포가 있다.

위처럼 Lambda도 alias를 이용한 가중치 분리가 가능하고 API Gateway 또한 분리가 가능하다.

영역 2: IaC(19%)

AWS IaC는 최근에 보면 CDK이야기 뿐이다. 다만 시험에는 CDK를 구성하고 있는 CloudFormation에 대하여 자세하게 다룬다. 특히 CloudFormation의 cfn-init, metadata, signal, hup에 대하여 꼭 한번 실습을 해보고 들어가자(매우 유용한 기능이다)

또한 중첩 스택, 스텍셋등 멀티리전이나 거버넌스 관련하여도 함께 거론된다.

위처럼 Multi Account와 Multi Region같은 경우 StackSet을 활용한 중앙 관리가 가능하다.

또한 위처럼 중첩스택을 사용하여 DB와 같은 서비스를 생성하는 Stack을 Depend로 걸어 놓고 output 정보를 사용하여 하위 어플리케이션 배포에 사용할 수 있다.

쉽게 보면 위처럼 스택간 참조하여 값을 활용한다는 의미. 생각보다 유용하다.

물론 위와 관련하여 다양한 서비스와 연계되고 거버넌스 관리를 할수 있는데 그 내용은 아래에서 다루겠다.

영역 3: 모니터링및 로깅(15%)

X-Ray와 CloudWatch에 대하여 다루고 ES, Kinesis등 로그 시각화를 위한 파이프라인 구성또한 함께 다루어 진다.

X-Ray는

위처럼 SDK로 설치되어 Daemon으로 돌게 되며 EB에서는 SDK로 설치된 X-Ray데몬을 EB콘솔에서 활성화 시킬수 있다.

그리고 로그 시각화를 위한 파이프라인!

위처럼 EC2에 KCL을 설치하여 직접적으로 Firehose에 보내고 ES로 시각화를 할수도 있고

Firehose가 직접적으로 CloudWatch Logs를 구독하여 위처럼 여러가지 파이프라인으로 보내는 것 또한 가능하다. 물론 Kinesis를 사용하기에 실시간 분석도 가능하다.

영역 4: 적챙및 표준 자동화(10%)

이게 사실 어려울 것이다. Config, CloudTrail, IAM, Inspector, Catalog등을 다룬다.

특히 config와 관련된 문제가 많았다. config는 미리 규정을 정해 놓고 위반이 생기는 경우 Cloudwatch Event를 트리거 하거나 SNS로 알람을 보낼수도 있고 CW Event와 합쳐져 Lambda를 호출해서 강제로 고칠수도 있다.

그리고 AWS Catalog라는게 매우 생소할텐데 이 서비스는 특정 그룹, 또는 사용자에게 미리 사용할 수 있는 서비스나 인스턴스 타입등을 정의하여 규정을 지키게끔 만드는 서비스이다.

위처럼 여러 멀티 어카운트를 사용할때 CloudFormation StackSet, Org와 함께 결합되어서 하위 계정에 권한을 관리 할수 있다.

특히 신기한게 Service Catalog는 CodeDeploy로 배포또한 가능하기에 Master Account 에서 수정및 코드 관리하여 실시간 배포도 가능하다!

IAM은?

교차계정을 어떻게 만들고 Iam의 신뢰관계를 어떻게 만드는지 꼭 숙지하자.

영역 5: 사건 및 이벤트 응답(18%)

이 영역은 대부분이 CloudWatch Event, SNS와 함께 연계되어 나온다. 예를들어 IAM의 키가 유출된것이 감지 되었을때? 이때는 AWS Trusted Advisor 서비스의 알람을 잡아서 처리하자.

또한 배포중 문제가 발생하거나 배포되는 코드를 스캔해야 할때 CodePipeline에 단계를 추가하여 Lambda를 활용해 코드를 스캔할 수 있다.

또한 문제가 생겼을때 처리할 수 있는 Route53의 장애조치 기능도 잘 숙지하고 가자. 이건 영역6의 DR과 관련이 있기에 매우 중요하다.

그리고 문제가 생겼을때 자동화 하기위한 Systems Manager와 StepFunction에 대한 문제도 많이 나왔다.

특히 SSM은 매우 종요하다. 각 기능에대하여 충분히 숙지하고 실습을 꼭 해보자.

Run Command와 Session Manager(위에는 안 보이지만), Parameter Store등 다양한 사례를 다룬다. 특히 이 영역에서 문제가 생겼을때? Automation을 사용하여 자동으로 문제를 해결하는 방법도 있고 AutoScaling의 수명주기 후크와 함께 run Command를 사용하여 아직 전달하지 못한 로그를 넘기는등의 다양한 시나리오가 있다.

영역 6: 고가용성, 내결함성, DR(16%)

요 영역은 솔직히 말하자면 점수를 주는 문제다. 고가용성? Multi-AZ를 써야겠지? 내결함성? AutoScaling과 함께 Multi-AZ를 사용하자. 또한 비지니스의 요구사항에 맞춰서 롤링배포를 할 것인가 블루/그린으로 할 것인가 카나리로 할 것인가 중요하다.

또한 RDS DR관련해서 비용관련된 이슈가 많다. 만약 비용보다 RPO가 중요하다면

위처럼 복제본을 만들면 된다.

사실 위의 표만 잘 알고 가도 이 영역의 문제는 금방 풀수 있다.

많은 돈과 리소스 : 빠른 복구

적은 돈과 리소스 : 느린 복구

이건 학계 정설이다.

후기


75문제를 힘격게 풀고 합격이랑 문자를 보고 긴장이 풀려서 맥주를 마셨다. 그리고 쓰는 후기.

올 초부터 1년간 진행해온 스터디 모임에서 처음으로 주도적으로 발표를 진행했다. 사실 DAV-SOA-DOP를 순서로 같이 학습하며 자격증을 취득하려고 했는데...모임을 이끈는 입장에 내가 자격증 없이 누군가를 가르치기에는 좀 부족한것 같아 좀 빡시게 공부했다.

실제 실습을 하며 공부하니 이론으로만 하는것 보다 이해도 빠르고 실제로 내가 운영중인 서비스에 적용해 보고 싶은 내용도 많았다. 특히 SSM쪽은 좀더 많은 서비스를 도입해볼까 한다.

GIT Flow나 Jenkins와 같은 기본적인 CI/CD환경은 그래도 나름 구축과 사용 경험도 많았고 실제 정책도 잡아 본적이 있다. TDD는 당연한거고...그렇다 보니 CI/CD는 생각보다 쉬웠다. 다만 사용해보지 않은 서비스기에 어려웠을뿐. 아마 대부분의 엔터프라이즈 환경의 개발자들은 CodeBuild, CodeCommit은 사용하기 어려울 것이다.(데이터 3법...ㅠㅠ) 그래도 꼭 한번 사용해보길 권장한다. Jenkins에 비하면 천사가 따로 없다.

본인은 Rundeck으로 파이프라인을 구성 했었는데...사실 CodePipeline와 상당히 유사하여 서로 비교해보며 공부하니 재미 있었다. 그리고 이제 Rundeck은 쳐다도 보지 않을 예정이다.

시험 점수는 생각보다 높았다.

크리스마스 선물을 미리 받은 기분이라 행벅하다.

Exam Study Reference


공식 백서(무조건 한번 정독하자. 특히 Blue/Green 관련 백서는 그냥 머리속에 쑤셔 넣어라!!)

AWS_Blue_Green_Deployments.pdf

infrastructure-as-code.pdf

practicing-continuous-integration-continuous-delivery-on-AWS.pdf

running-containerized-microservices-on-aws.pdf

microservices-on-aws.pdf

Jenkins_on_AWS.pdf

AWS_DevOps.pdf

공시 오피셜 시험 모음집(AWS Skilbuilder - 시험 응시 페이지에도 공지 되어 있든 PSI 공식 모의고사는 사라질 예정이다)

https://explore.skillbuilder.aws/learn/course/external/view/elearning/9160/aws-certification-official-practice-question-sets-korean

Stephan Maarek의 핸즈온 강의

https://www.udemy.com/course/aws-certified-devops-engineer-professional-hands-on/

Stephan Maarek의 모의고사 문제 모음

https://www.udemy.com/course/aws-certified-devops-engineer-professional-practice-exam-dop/

Jon Bonso의 모의고사 문제 모음

https://www.udemy.com/course/aws-certified-devops-engineer-professional-practice-exams-amazon

 

728x90

'Server Infra > AWS' 카테고리의 다른 글

Lambda란?  (1) 2022.01.05
AWS Organization  (0) 2022.01.05
AWS Developer – Associate 취득 후기  (0) 2022.01.05
AWS SysOps Administrator – Associate 취득 후기  (2) 2022.01.05
AWS Data Analytics Specialty 합격 후기  (0) 2022.01.05