AWS認定試験の合格に必要な知識を確認します。
本稿では下記の略語を使用します。
略称 | 原語 |
---|---|
AZ | Availability zones |
I/O | Input/Output |
ACL | Access control list |
GW | Gateway |
IGW | Internet Gateway |
FW | Firewall |
IPS | Intrusion prevention system |
RI | Reserved instances |
SSO | Single sign-on |
SG | Security group |
SF | Step Functions |
AD | Active Directory |
GSI | Global Secondary Index |
LSI | Local Secondary Index |
前提
本稿では,プロフェッショナルレベルのDevOpsエンジニア(DOP:AWS Certified DevOps Engineer Professional)に関する直前対策を行います。DOPは現在C02とよばれる形式の試験が実施されています。
DOPは基礎レベルのクラウドプラクティショナー,およびアソシエイトレベルのソリューションアーキテクト・デベロッパー・SysOps Administratorの知識を前提としています。したがって,本稿は下記の直前対策の内容を前提としています。
SDLC のオートメーション
1つのターゲットグループに複数のlambdaを割り当てることはできるか。
できない。
CodeGuru ProfilerとCodeGuru Reviewerの違いを説明せよ。
- Profiler:コードのボトルネックを発見する等の最適化
- Reviewer:コードの潜在的な不具合や問題を検出
CodeGuru ReviewerはCode CommitとCode Buildのどちらに紐づけるか。
Code Commit。GitHubに静的解析ツールを紐づけるイメージで,Code CommitリポジトリにCodeGuru Reviewerを紐づけると理解する。
API Gateway自体にカナリアリリースの機能は備わっているか。
備わっている。わざわざ新しいAPIを作成してRoute53でルーティングする必要はない。
BeanstalkにA/Bテストの機能は備わっているか。
備わっている。
CodeBuildでfinalブロックとcommandsブロックを簡単に説明せよ。
- final:commandsブロックの後で,コマンドの成功/失敗に関わらず実行される
- commands:コマンドを実行する
BeanstalkでBlue/Greenを行う方法を簡単に説明せよ。
- アプリケーションの新バージョンを別の環境にデプロイする
- 新旧環境のCNAMEを切り替える
CloudFormationでS3バケットの強制削除を行う方法は何か。
全てのオブジェクトを削除するlambdaと連携する方法。Terraformではforce_destroyのようなオプションが設定できるが,CloudFormationにはそのような機能は存在しない模様。
Beanstalkのロールバック時にCloudWatchは併用するか。
あまり併用しない。ELBのヘルスチェックと拡張ヘルスモニタリングを利用することが多い。
CodeCommitリポジトリへのpushを起点にCodePiplineをトリガーできるサービスは何か。
EventBridgeルール。CodeCommit自体にトリガーの機能はない。
設定管理とIaC
S3のACLとバケットポリシーを自動で編集する方法は何か。
Systems Manager Automation Runbook
CloudFormationがドリフトを検出するための条件は何か。
すべてのプロパティの値が具体的に明示されていること。デフォルト値であっても明示する必要がある。
AWS Control Tower Account Factoryでアカウントが作成されたトリガーを利用するサービスは何か。
Customizations for AWS Control Tower(CfCT)
オンプレミス環境の物理マシンをSystems Managerに追加するためのサービスは何か。
Systems Manager Hybrid Activations
AutoScalingで起動しているEC2のEBSにタグを付与する方法を説明せよ。
起動テンプレートでタグを指定する。
EC2 Instance Connectのユースケースを説明せよ。
SSHやRDPでインスタンスに接続するケース。
API GatewayとlambdaのデプロイにBeanstalkは最適な選択か。
最適ではない。BeanstalkはEC2インスタンス上でのアプリケーションのデプロイに適している。API GatewayとlambdaのデプロイにはCloudFormationを利用する。SAMも利用できるが,sam deployコマンド等を利用する必要があるため,選択肢の記述に注意する。
Systems ManagerのRunbookとRunCommandの違いは何か。
- Runbook:あらゆるAWSサービスが対象
- RunCommand:EC2が対象
ネストされたスタックでFn::ImportValueを利用するのは適切か。
適切ではない。ネストしたテンプレートの値をimportするので,TemplateURLのルートのParametersセクションでFn::ImportValueを使うべき。
SSM Parameter Storeの容量制限を述べよ。
- Standard:4KB
- Advanced:8KB
Secrets Manager Parameter Storeの容量制限を述べよ。
512文字
耐障害性の高いクラウドソリューション
Blue-Greenを自前で実装する場合のRoute53のルーティングポリシーは何か。
荷重ルーティングポリシー
DynamoDBのグローバルテーブルにはリードレプリカは存在するか。
デフォルトでは存在しない。マルチリージョンかつマルチアクティブの構成になる。レプリカを追加したい場合は,いくつかの条件をクリアする必要がある。
フェイルオーバールーティングとレイテンシルーティングはどのように併用すればよいか。
サブドメイン戦略を取る。トップドメイン(Zone Apex)にレイテンシルーティング,サブドメインにフェイルオーバールーティングを設定する。
モニタリングとロギング
IAMに関連する異常な動作を検出するサービスは何か。
Amazon GuardDuty。名前からAmazon Detectiveを選択しないように注意。Amazon Detectiveは,あくまでもセキュリティのもないや不審なアクティビティの調査のみ。
GuardDutyにSNSを直接呼び出す機能はあるか。
ない。EventBridgeルールを用いてlambdaを呼び出し,SNSトピックを発行する必要がある。
EventBridgeルールは他のアカウントで発生したS3イベントを検出できるか。
できない。一方,AWS Configルールはあらゆるアカウント・あらゆるリージョンに適用可能。
Service QuotaのモニタリングにTrusted Adviserは有効な手段か。
コンソールの確認程度であれば有効だが,毎日モニタリングするという要件においては有効ではない。Trusted Adviserの更新は1週間単位で行われるので,OrganizationsとService Quotasを連携させた方が有効である。
Amazon InspectorはEC2以外にも適用可能か。
適用可能。
KinesisシリーズでデータをS3に保存するだけのユースケースで適しているサービスは何か。
Kinesis Data Firehose
「暗号化」という要件に対してmanaged VPNというサービスは使えるか。
使える。IPsecでVPNを実現していると考える。
CloudWatchのモニタリングで標準解像度と高解像度のメトリクス間隔を述べよ。
- 標準解像度:1分単位
- 高解像度:1秒単位
KMSのローテーションが長期間行われていないキーを判別するために使うサービスは何か。
AWS Configのカスタムルール。
APIコールを追跡するイベントフィルタは,どのサービスで実装可能か。
EventBridgeルール。CloudTrailそのものにはイベントフィルタという機能はない。
EventBridgeでCodePipelineイベントのスコープを調整する方法を説明せよ。
detail-typeに下記を指定する。
- CodePipeline Pipeline Execution State Change
- パイプライン
- CodePipeline Stage Execution State Change
- パイプラインの中で指定されたステージ
- CodePipeline Action Execution State Change
- パイプラインの中のステージで指定されたアクション
特に,Pipeline > Stage > Action という関係をおさえておけばよい。
デフォルトのイベントバスをソースとするEventBridgeでは何を検出するか。
EC2セキュリティグループの作成・変更イベント
インシデントとイベントへの対応
Pending:WaitとTerminating:Waitの違いを説明せよ。
- Pending:Wait:起動時のライフライクルフック
- Terminating:Wait:終了時のライフライクルフック
例えば,終了前にログを収集したいという要件に対しては,Terminating:Waitを利用する。Pending:Waitでは次のインスタンスに対するライフサイクルフックなので遅い。
EC2インスタンスのリタイアとは。
基盤の障害等により,AWS都合でEC2を起動させられなくなった状態。AWS Healthイベントで検知できる。
SQSのWaitTimeSecondsはどのような機能と関係しているか。
ショートポーリング・ロングポーリング。WaitTimeSecondsを0にするとショートポーリングで,1以上20以下にするとロングポーリングとなる。
EC2のStatusCheckFailedはAWS起因のエラーを指すか。
指すとは限らない。StatusCheckには,以下の二つの種類がある。
- システム:AWS起因
- インスタンス:メモリ不足などAWS起因とは限らない
セキュリティとコンプライアンス
Encrypt APIで暗号化できない対象は存在するか。
存在する。ビルドアーティファクト・アーカイブ・オブジェクトの暗号化は行うことはできない。
EC2の侵害を検知できるサービスは何か。
GuardDuty。Inspectorは侵害アクティビティを検知しない。
ひっかけポイント
Auroraの可用性担保のため「リーダーインスタンスを追加する」は適切か。
不適切。「インスタンス」を追加する必要はなく,MultiAZオプションを有効化すればよい。
AWSサービスアカウントとは何か。
delivery.logs.amazonaws.com のようなもの。ユーザアカウントとは異なる点に注意。
CodeDeployのBeforeInstallとInstallの両方でスクリプトの実行はできるか。
- BeforeInstall:できる
- Install:できない
AutoScalingグループのウォームプールにはどのような状態のEC2を入れておくか。
停止状態。開始状態のEC2を入れると料金が発生してしまう。
Systems Manager用のVPCエンドポイントは作成可能か。
作成可能。
API Gatewayでは暗号化されていないHTTPエンドポイントを持つことはできるか。
できない。
DLMでEBSを削除するライフサイクルを設定することはできるか。
できない。EventBridgeとlambdaを利用する。
特定の地域への負荷が高まると予想されている場合に効果的なルーティング設定は何か。
地理的近接性ルーティング。バイアスを設定して,各リージョンの範囲を仮想的に変更できる。
S3のクロスリージョンレプリケーションを行うための一連の設定を述べよ。
- ソースバケットでレプリケーションルールを設定してレプリケーションを有効にする
- ソースアカウントにレプリケーション用のIAMロールを作成する
- ターゲットバケットのバケットポリシーでIAMロールによるレプリケートを許可する
SASTとDASTとは何か。
- SAST:静的解析(Static Application Security Testing)
- DAST:動的解析(Dynamic Application Security Testing)
EventBridgeルールのターゲットにS3を指定できるか。
指定できない。
CloudWatchとKinesisを連携するサービスは何か。
CloudWatchのサブスクリプションフィルタ。Kinesis側が自動で取得するわけではないので注意。サブスクリプションフィルタは他にlambdaに対応している。
Lambdaにはリソースベースのポリシーをアタッチできるか。
できる。lambdaのアイデンティティベースのポリシーがlambda実行ロールで,リソースベースのポリシーは別に設定可能。
可用性向上のためEC2のシステムステータスチェックを監視する手段は適切か。
基盤自体の監視となるため不適切。
AWS Budgetでコスト情報を収集するアプリケーションを定義することはできるか。
できない。
SSL/TLSはALBにアタッチできるか。
安直に考えればできるが,厳密に言えばリスナーにアタッチする。
AWS ConfigでWAFとACLを一元管理できるか。
できない。Firewall Managerで行う。
AutoScalingの終了保護機能を利用すると,グループ内のインスタンスが終了することを防げるか。
防げない。あくまでもAutoScalingグループ自体の削除機能。
コメント