当ブログにはPRを含みます。
2023年3月からDevOps Engineer – Professional(DOP)の試験がDOP-C01からDOP-C02に改定されました。受験してきたのでレポートします。新旧のバージョン含めレポートします。
この記事を書いた人
管理人:syo
サラリーマンエンジニア歴10年
新卒で入社した大手システム会社でリモートワーク、年収800万円に到達
AWS関連プロジェクトのインフラエンジニア&プロジェクトマネージャーを担当。
IT資格
AWS:プロフェッショナルレベル2冠・アソシエイトレベル3冠・CLF・ペシャリティ資格(SAP, DOP, SAA, SOA, DVA, SCS, DBS, MLS, ANS, PAS)
Azure:AZ-305・AZ-104・AZ-900
その他:基本情報、JAVASE Silver、オラクルマスターブロンズ(DBA)、Silver SQL、ITIL Foundation、LinuC
AWS期間限定再試験無料キャンペーン(たまに実施しています。)
DOPに限った話ではありませんが受験結果が不合格だった場合、同試験を 期間限定で無料再受験できるキャンペーンを実施していることがあります。実施有無はこちらをご覧ください。キャンペーン実施中の場合は上記のようにポップが出ています。
筆者はキャンペーンにつられて受験を決意しました!そして何とか一発合格することができました!
前提(筆者のスキル)
受験直前の筆者のスペックです。
- アソシエイト試験3つとSAP(ソリューションアーキテクトプロフェッショナル)を合格していた
- 仕事でAWSを使用している。(歴3年ほど)
- CodeStarで作成されたCodePipelineの保守メンテ(1年ほど)
- 上記Pipelineで構築されたサーバレスシステムの機能追加開発(2年ほど)
勉強期間
期間:3週間ほど。1日2-3時間ほど勉強していました。
SAP(ソリューションアーキテクトプロフェッショナル)に合格していたのでそれほど労力をかけずに合格できました。
勉強方法と教材
勉強方法や教材は以下の記事で詳しく紹介しています。ぜひご覧ください。
Udemyで発売されているWEB問題集が役立ちました。筆者が受験したころは英語の問題集しかありませんでしたが、最近は日本語の問題集が出たようです。
- 30日以内であれば返金可能(気軽に始められる)
- 教材購入後もコンテンツがアップデートされる(頻繁にアップデートされるクラウド学習に最適)
- 不明点を講師に質問可能
- スマホでも視聴可能(隙間時間の活用)
- 月に数回(2~3回)実施するセールでは数万円のコースも2,000円程度に割引される(安価!)
Udemy日本語WEB問題集
【DOP-C02対応】AWS認定 DevOpsエンジニア プロフェッショナル 模擬問題集+詳解- 問題数: 190問(75問×2セット+40問)
- 価格: 2,600円、セール時参考価格: 2,000円
- レビュースコア: (4.7/5)
-
特徴:
- 本番試験とほぼ同じ問題が収録されている。
- 各問題に詳細な解説が付属。
Udemy英語模試
こちらは自動翻訳して使用しました。割と自動翻訳でも違和感ありませんでした。
AWS Certified DevOps Engineer Professional Practice Exams
- 問題数: 130問
- 価格: 定価は約3,600円、セール時参考価格は2,000円程度
- レビュースコア: (4.6/5)
-
特徴:
- すべての問題に詳細な解説と参考リンクが付属
- 定期的な質問内容の更新と学生からのフィードバックを基にした修正
- 自動翻訳でも問題なく使用可能
出題傾向や出題形式(筆者が重要だと感じたポイント)
以下AWS公式試験ガイドより。
実際に筆者が受験してきて、DOP-C02試験対策するにあたって押さえておいた方がよいと感じたポイントをまとめます。これから勉強される方に参考にしていただければ幸いです。
再頻出!Code兄弟でビルドデプロイの自動化
試験では、Codeシリーズ(CodeCommit, CodeBuild, CodeDeploy)が大きな割合を占める印象です。特に、Pipelineを使ってこれらのサービスをオーケストレーションするシナリオが頻繁に出題されます。
学習を進める際は、CodeStarを使用してパイプラインを作成し、実際に操作してみることを強くおすすめします。CodeDeployに関しては、hookセクション(例: ApplicationStop, BeforeInstallなど)の詳細も問われるため、これらの内容をしっかり理解しておくとよいでしょう。
また、パイプラインが途中で停止した際のトラブルシューティングの知識も重要です。試験範囲に含まれる可能性があるため、Pipelineのカスタムアクションやサポートされていないツールを使用するシナリオについても確認しておくことが推奨されます。
リソースのタグ付けとConfigの活用(マルチリージョン可)
リソースに対してタグ付けを強制したい場合は、AWS Configを活用するのが有効です。また、Configアグリゲーターを使って、マルチアカウントやマルチリージョンにわたるConfigのチェック結果を集約するケースも重要な試験範囲となっています。これらの機能についても理解を深めておくことが試験対策に役立つでしょう。
CodeBuildやCodeDeployの構成ファイルベストプラクティス
CodeBuildやCodeDeployで使用する構成ファイル(buildspec.yml、appspec.yml)の記述内容についても、理解しておくことが重要です。特にhooksセクションの扱いや、appspec.ymlのサンプルから修正すべき箇所を判断できる能力が求められます。例えば、AWSアクセスキーやデータベース認証情報がハードコーディングされている場合、適切な修正方法を知っていることが必要です。
具体的な修正例としては、以下のようなベストプラクティスがあります:
- AWSアクセスキー: キーを直接記述するのではなく、IAMロールを使用する
- DB認証情報: 認証情報は、Systems ManagerのセキュアStringに保存する
- EC2インスタンスへのコマンド実行: SSHを使うのではなく、Systems Managerのセッションマネージャーを活用する
AWS Control Towerとマルチアカウントセットアップ
AWS Control Towerを使用したマルチアカウントのセットアップに関する出題もあります。筆者自身も試験で初めてこのサービスに触れましたが、Organizationsで作成した環境を、Control Towerを使ってどのようにセキュアにセットアップするかが問われたように記憶しています。
また、AWS Organizations関連の問題では、すべてのメンバーアカウントや将来作成されるアカウントに対して、あらかじめGuardDutyを有効にする方法についても出題されます。これらのセキュリティ管理手法についても、確実に理解しておくことが重要です。
CloudFormationのヘルパースクリプトの活用
CloudFormationのヘルパースクリプトを使用したシナリオも、試験範囲に含まれています。例えば、EC2のユーザデータスクリプトが正常に実行された場合にのみ、CloudFormationスタックの作成や更新を成功させたい場合や、ユーザデータスクリプトが成功した後に依存するAWSリソースを作成したい場合に、このヘルパースクリプトを活用することが有効です。
以下外部記事ですが大変参考になりました。
CloudFormationの削除ポリシーと更新ポリシー
CloudFormationのポリシー(削除ポリシーや更新ポリシー)に関する出題も、試験で重要なポイントです。例えば、CloudFormationのスタックを削除してもデータベース(DB)やS3バケットを残したい場合は、削除ポリシー(Deletion Policy)を「保持(Retain)」に設定する必要があります。
オートスケーリングのライフサイクル
オートスケーリングのライフサイクルに関するシナリオも試験範囲に含まれています。例えば、EC2インスタンスが縮退される際にログを退避させたい場合、オートスケーリングのライフサイクルフックを活用します。具体的には、オートスケーリングを一時的に「Wait」状態にしてログをサルベージし、その後「Proceed」に戻すことで、適切な処理を行うことが可能です。
以下のAWS公式のドキュメントや図も参考にして、これらのプロセスをしっかりと理解しておくことをおすすめします。
CloudFormationのカスタムリソースとトラブルシューティング
CloudFormationでサポートされていないリソースを作成する場合、カスタムリソースを利用してデプロイスクリプトをLambdaを起動することが可能です。例えば、カスタムリソースを使用して目的のリソースをセットアップしたにもかかわらず、CloudFormationスタックが正常に終了しない場合、Lambdaが異常終了している可能性が考えられます。このようなトラブルシューティングのスキルも、試験に向けて習得しておくことをおすすめします。
InspectorによるEC2のセキュリティ対策
EC2インスタンス内部の脆弱性対策には、AWS Inspectorを活用します。ConfigはEC2の設定情報は取得できますが、内部の脆弱性まで把握することはできません。そのため、EC2内部のセキュリティチェックにはInspectorを利用することが重要です。これらの違いを理解しておくことが、試験対策に役立ちます。
CloudWatchによるEC2インスタンスのログモニタリング
EC2インスタンスのログをモニタリングするためには、CloudWatchエージェントを導入してログイン状況を追跡します。ログが出力された後は、サブスクリプションフィルタやメトリクスフィルタを活用して、EventBridgeと連携させることで、自動化のプロセスを構築することが可能です。これらの設定を通じて、EC2インスタンスのモニタリングを強化する方法を理解しておくことが、試験対策に役立ちます。
ELBでIPv6を使う
Elastic Load Balancer(ELB)でIPv6を利用する場合、dualstackモードを有効にすることで、IPv4とIPv6の両方のIPアドレスを使用することが可能です。この設定により、幅広いネットワーク環境に対応できるようになります。試験では、このdualstackモードの使い方や設定方法について理解しておくことが重要です。
CloudTrailやCloudWatchのログを集約して分析
CloudTrailのログは、デフォルトではS3に配信されますが、CloudWatchにも出力することが可能です。これにより、CloudTrailとCloudWatchのログをCloudWatch Insightsで分析することができます。
さらに、CloudWatchログをサブスクリプションフィルタとFirehoseを使用してS3に配信し、その後AthenaやQuickSightを活用してログの可視化を行うことも可能です。これらの連携方法を理解しておくことが、試験対策に役立ちます。
RPOとRTOに基づくディザスタリカバリの構築
RPO(Recovery Point Objective)とRTO(Recovery Time Objective)の要件に応じて、適切なディザスタリカバリ戦略を選択できることが重要です。例えば、RPOが長い場合は定期的なバックアップとバックアップリージョンへのデータ転送が推奨されます。一方、RPOが短い場合は、リードレプリカをプライマリに昇格させたり、グローバルテーブルを採用することで迅速な復旧が可能です。
RTOが長い場合は、あらかじめ準備しておいたCloudFormationスタックを利用して復旧を行う方法が適していますが、RTOが短い場合はオートスケーリングの容量調整だけで対応する構成が効果的です。また、パイロットライトやウォームスタンバイといったディザスタリカバリの手法についても理解しておくとよいでしょう。
-
パイロットライト(Pilot Light)
- 概要: 必要最小限のインフラを稼働させておき、災害時に迅速にフルシステムへ切り替える方法。AWSではCloudFormationやAMIを使用する場合が多いです。
-
メリット:
- コストが抑えられる(最小限のリソースしか稼働させないため)。
- データが継続的に同期されているので、迅速なリカバリが可能。
-
デメリット:
- 災害時にフルシステムを立ち上げるために時間がかかる(リカバリには若干の遅延がある)。
- 切り替えの自動化が不足している場合、手動操作が必要になることがある。
-
適した用途:
- RTO/RPOが中程度のシステムやコスト重視のシナリオ。
-
ウォームスタンバイ(Warm Standby)
- 概要: 低キャパシティの稼働システムを常に動かしておき、災害時に完全な稼働システムへと即座に拡張する方法。
-
メリット:
- フルシステムに近い状態で動作しているため、復旧が迅速(短いRTOが可能)。
- 災害発生時にすぐに切り替え可能。
-
デメリット:
- パイロットライトよりもコストが高い(低キャパシティでもリソースが稼働しているため)。
-
適した用途:
- RTOが短く、システムのダウンタイムを極力短縮したい場合。
- パイロットライト vs ウォームスタンバイの比較
特徴 | パイロットライト | ウォームスタンバイ |
---|---|---|
コスト | 低コスト | 中程度のコスト |
リカバリ時間 | やや長い(システムを立ち上げる必要あり) | 短い(即時にスケールアップ可能) |
リソースの稼働 | 最小限のインフラのみ稼働 | 低キャパシティのインフラが常に稼働 |
適したシナリオ | コスト重視で中程度のRTO/RPO | 迅速な復旧が求められるシステム |
このように、パイロットライトはコスト効率が高く、ウォームスタンバイはより迅速な復旧が可能です。システムの要件に応じて適切な方法を選択することが重要です。
姿を消したJenkins
過去の練習問題や模擬試験ではJenkinsが選択肢や問題文に登場していましたが、DOP-C02の本試験では一切出題されていませんでした。
CodeGuruによるプルリクエストの評価
機能開発を行う際には、CodeCommitで新しい機能ブランチ(feature)を作成し、開発を進めます。開発が完了した後、基幹ブランチに対してプルリクエストを行いますが、このプルリクエストをCodeGuruを使って評価することができます。
- CodeGuru Profiler: ライブアプリケーションからランタイムパフォーマンスデータを収集し、パフォーマンス向上に役立つレコメンデーションを提供します。コードの最適化が目的で、EC2、ECS、EKS、Fargate上で稼働するプログラムの解析を行います。
- CodeGuru Reviewer: JavaやPythonコードに対してベストプラクティスの実装を支援します(静的解析を行います)。CodeCommitと連携し、プルリクエストを評価してコードの改善点を提案してくれる機能です。
Systems Managerの主要機能
AWS Systems Managerの各機能について幅広く理解しておくことが、試験対策において重要です。具体的には、以下の機能に関する知識が求められます。
- パッチ自動適用: システムに対して定期的にセキュリティパッチやソフトウェアの更新を自動で適用する機能。
- ランブックの実行: 自動化されたプロセスを定義し、特定の手順を効率的に実行するためのワークフローを作成する機能。
- ランコマンド: EC2インスタンスなどに対してコマンドをリモートで実行できる機能。
- パラメータストア: 機密情報や設定データを安全に管理し、他のAWSサービスと統合して利用する機能。
これらの主要機能をしっかりと押さえ、試験に備えることが重要です。
Elastic BeanstalkやOpsWorksの出題傾向
過去のAWS認定試験(DOP)ではElastic BeanstalkやOpsWorksが多く出題されていた印象がありますが、DOP-C02本試験ではこれらのサービスの出題が控えめになっているようです。他のサービスやツールの学習に重点を置くことが、より効果的な試験対策になるかもしれません。
試験攻略テクニック
DOP試験では時間には余裕があると思いますが、集中力が低下した際に選択肢を絞るテクニックが有効だと感じました。
最小権限の原則に基づく選択肢の絞り方
試験問題で選択肢を絞る際には、最小権限の原則を意識することが重要です。選択肢の中にフルアクセス権限やResource: *
が含まれている場合、それが正解である可能性は低い傾向があるように感じました。
AWSでは、必要な権限のみを付与する「最小権限の原則」が推奨されているため、これに反するポリシーは不適切な場合が多いです。この原則を理解しておくと、正しい選択肢を見極めやすくなります。
複数選択問題の解き方
複数選択が必要な問題では、選択肢のグループ分けを意識すると効果的です。多くの場合、複数の施策の組み合わせを選択させる形式になっています。
例えば、6つの選択肢から3つを選ぶ問題では、ロールの作成に関する選択肢が2つ、信頼関係の設定に関する選択肢が2つ、IAMポリシーに関する選択肢が2つといったグループ分けがされていることが多いように感じました。このような場合、2択の問題が3つあると考えることで、正解率を高められる可能性があります。
試験システムの変更点 – 合否通知のタイミング
約1年前に受験したSAP試験では、試験終了後にアンケートに答えると、その直後にモニター上で合否が表示されていました。しかし、DOP-C02試験ではシステムが変更され、試験終了後に「24時間以内にメールおよびAWSトレーニングコンソールで合否を通知します」といった形式に変わっています。
ちなみに筆者の場合、17時頃に試験を完了し、18時過ぎにAWSトレーニングコンソールで合否を確認することができました。実際には、試験終了後約90分で結果を確認できました。
感想
DOPで問われるPipelineを用いたデプロイの自動化(DevOps)はIT化が進んだ企業でもまだまだ導入が進んでいない会社が多いと感じています。そのため、勉強したことを活かして仕事していきたいと感じました。
私は複数のAWS案件を見てきていますが、DevOpsを導入している企業でも各環境(ステージ)ごとにPipelineがあったり、EC2でホストしたJenkinsを使っていたりと、DOPで問われるようなシナリオをフル活用できているプロジェクトは見たことがありません。本資格勉強で現場で活用余地があるDevOpsのベストプラクティスを多数学べたのでDOP試験を受験してよかったと感じました。
まとめ
AWS DOP-C02試験は、DevOpsエンジニアとしての高度なスキルを試される内容で、特に自動化やCI/CDの理解が求められます。試験ではCodePipelineやCodeBuild、Configなど、AWSのDevOps関連サービスが多く出題され、実際にそれらを利用したプロジェクト経験が大いに役立ちます。また、合格のためには時間管理や選択肢の絞り込みなど、試験の戦略的なテクニックも重要です。
試験の難易度は高いですが、事前にしっかりとした準備を行い、Udemyの模試や教材を活用することで合格への道が開けます。これから受験を考えている方は、勉強計画をしっかり立て、焦らず一歩一歩学んでいくことをおすすめします。AWS DOP-C02に合格することで、DevOpsエンジニアとしてのスキルや知識を証明し、キャリアの次のステップに進むための大きな武器となるでしょう。
PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!
SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ
システムエンジニア
AWSを中心としたクラウド案件に携わっています。
IoTシステムのバックエンド開発、Datadogを用いた監視開発など経験があります。
IT資格マニアでいろいろ取得しています。
AWS認定:SAP, DOP, SAA, DVA, SOA, CLF
Azure認定:AZ-104, AZ-300
ITIL Foundation
Oracle Master Bronze (DBA)
Oracle Master Silver (SQL)
Oracle Java Silver SE
■略歴
理系の大学院を卒業
IT企業に就職
AWSのシステム導入のプロジェクトを担当