DOP構成管理と Infrastructure as Code (IaC)
CloudFormationテンプレートを使用して、ネイティブにサポートされていないサードパーティDNSプロバイダーへのレコード登録を自動化するために、Lambdaバックエンドのカスタムリソースを実装することにしました。このカスタムリソースを正しく実装する上で最も重要な考慮事項はどれですか?
ALambda関数のタイムアウトをデフォルトの3秒から最大15分に延長することで、長時間処理でもCloudFormationがタイムアウトしなくなる
Lambdaのタイムアウト延長は必要に応じて行う設定ですが、presigned URLへのレスポンス送信を実装しなければタイムアウトを延長してもスタックはROLLBACK_FAILEDになるため、単独では最重要の考慮事項ではありません。
BLambda関数はCREATE・UPDATE・DELETE全イベントに対してべき等に動作し、成功・失敗いずれの場合もpresigned URLへのレスポンス送信を必ず実装しなければスタックが永続的にROLLBACK_FAILEDになる
✓ 正解
カスタムリソースのLambda関数が例外をスローするかレスポンスを返さない場合、CloudFormationはスタックを待機状態のまま最終的にROLLBACK_FAILEDにします。try-catchで必ず成功・失敗レスポンスをpresigned URLに送信する実装が必須です。またUPDATEでPhysicalResourceIdが変わると旧リソースのDELETEが追加で呼び出されるため、べき等実装も重要です。
CカスタムリソースのServiceTokenにはLambda関数ARNだけでなくSNSトピックARNも指定可能だが、どちらの場合もCloudFormationスタックと同一アカウント・同一リージョンに限定されるため、クロスアカウント構成での柔軟な利用はできない
Lambda関数にリソースベースポリシーを設定することでクロスアカウントのLambda関数もServiceTokenに指定して使用できます。
DカスタムリソースはCloudFormationと同一リージョンのLambda関数のみ参照でき、グローバルエンドポイントを持つサービスへのアクセスには対応していない
Lambda関数自体はCloudFormationと同一リージョンに配置する必要がありますが、Lambda関数内からRoute 53やS3などグローバルエンドポイントを持つサービスへのAPI呼び出しは問題なく可能です。
解説
正解:
Lambda関数はCREATE・UPDATE・DELETE全イベントに対してべき等に動作し、成功・失敗いずれの場合もpresigned URLへのレスポンス送信を必ず実装しなければスタックが永続的にROLLBACK_FAILEDになる。
カスタムリソースのLambda関数が例外をスローするかレスポンスを返さない場合、CloudFormationはスタックを待機状態のまま最終的にROLLBACK_FAILEDにします。try-catchで必ず成功・失敗レスポンスをpresigned URLに送信する実装が必須です。またUPDATEでPhysicalResourceIdが変わると旧リソースのDELETEが追加で呼び出されるため、べき等実装も重要です。
選択肢AはLambdaのタイムアウト延長は必要に応じて行う設定ですが、presigned URLへのレスポンス送信を実装しなければタイムアウトを延長してもスタックはROLLBACK_FAILEDになるため、単独では最重要の考慮事項ではありません。
選択肢CはLambda関数にリソースベースポリシーを設定することでクロスアカウントのLambda関数もServiceTokenに指定して使用できます。
選択肢DはLambda関数自体はCloudFormationと同一リージョンに配置する必要がありますが、Lambda関数内からRoute 53やS3などグローバルエンドポイントを持つサービスへのAPI呼び出しは問題なく可能です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →