2021/10/16 に DevOps Professional 試験を受験して無事に合格できました。DevOps Pro 試験に合格するために準備してきたことを書いていきます。
準備期間
合計 5 日間使用しました。内訳は、
- Day 1: Exam Readiness 視聴
- Day 2・3: 試験頻出サービスの aws ドキュメントに一通り目を通す
- Day 4・5: WEB 問題集で学習しよう(以下、web 問題集)を解く
- Day 6: 本試験受験
対策
DevOps Professional には今のところ(2021/10/17時点で)対策本がないので、 aws のドキュメントと web 問題集、Exam Readiness を使って対策しました。Exam Readiness で DevOps Pro 試験の概要と試験を解く上でのポイントを理解して、DevOps Pro 試験で頻出のサービス(Code系/CloudFormation/AutoScaling)については、aws のドキュメントを一通り軽く流し読みました。その後 web 問題集を使って知識のアウトプットをし、間違えた問題は解説を読んで足りない知識を補充するようにしました。
キーポイントを探す
web 問題集を解く上で意識したことは、問題文のキーポイントを見つけることです。「問題文のキーポイントを見つける」というのは Exam Readiness で提案されていたことです。問題文からキーポイントを見つけることで、解答を絞り込むことができます。
キーポイントを見つけるとはどういうことかというと、例えば、下記のような問題1があったします。
ある企業が AWS CodeCommit を使用して、アプリケーションのソースコードを管理しています。
この企業は AWS CodePipeline を使用して、このアプリケーション用の CI/CD パイプラインを作成しようとしています。CodeCommit リポジトリのマスターブランチに変更が加えられた場合に、このパイプラインを自動開始する必要があります。このアプリケーションには毎日変更が加えられるので、変更後できるだけ速やかにパイプラインを開始する必要があります。これらの要件を満たすには、どうすればよいですか。
この問題のキーポイントは、
- AWS CodePipeline を使用して、このアプリケーション用の CI/CD パイプラインを作成
- CodeCommit リポジトリのマスターブランチに変更が加えられた場合に、このパイプラインを自動開始
- 変更後できるだけ速やかにパイプラインを開始する必要
この 3 点です。選択肢の中から、CodeCommit の変更を検出し CodePipeline を開始することができるものを選ぶことになります。「変更後できるだけ速やかにパイプラインを開始」とあるので、CodeCommit を定期的に検査、などのスケジュール型のソリューションは、イベント駆動のソリューションよりもパイプラインの実行までにリードタイムがあるので、選択肢から外すことができます。また、CodeCommit の変更を検知するだけで、CodePipeline の実行方法についての説明がない選択肢も外すことができます。このようにして、キーポイントと選択肢を照らし合わせることで解答を絞り込むことができます。
DevOps Pro 試験は問題文が長いので、キーポイントをいかに早く見つけるかが解答時間を短縮するコツになります。
私の場合、75 問解いた時点で残り 50 分でした。その後、フラグを付けた問題を見直し、すべての問題の見直しまでして、10 分ほど時間が余りました。
サービスごとの対策
問題文の中からキーポイントを見つけても、知識がないと選択肢を絞り込むことができないので、aws のドキュメントを読んで知識を蓄えるようにしました。
AutoScaling
トラブルシューティングするために、異常のある Amazon EC2 インスタンスの Auto Scaling の終了を遅らせる方法を教えてください。
Amazon EC2 Auto Scaling のスケーリングクールダウン
Systems Manager
AWS Systems Manager Patch Manager
CloudFormation
Service Catlog
IAMアクセスアドバイザー
CodeDeploy
AppSpec の「hooks」セクションAWSLambda デプロイメント
Amazon CloudWatch Events でのデプロイのモニタリング
Blue/Green デプロイ用のアプリケーションを作成する (コンソール)
CloudTrail
IAM
IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任
Elastic Beanstalk
設定ファイル (.ebextensions) による高度な環境のカスタマイズ
Elastic Beanstalk の保存された設定を使用する
S3
DynamoDB
グローバルテーブル: DynamoDB を使用した複数リージョンレプリケーション
Lambda
AWS Lambda 関数を使用するためのベストプラクティス
CodePipeline
CodeCommit ソースアクションと CloudWatch Events
RDS
CloudWatch Logs
CodeCommit
AWS CodeCommit リポジトリイベントの通知を設定する
ECS
CodeDeploy を使用した Blue/Green デプロイ
OpsWorks
障害復旧
終わりに
スコアレポートでは、「ポリシーと標準の自動化」だけ「改善が必要」でした。ここだけは、別途対策が必要そうです。
次は、SAP に挑戦します。