SOAデプロイ、プロビジョニング、および自動化
ある企業のOpsチームは、本番EC2インスタンスのリサイズ作業(インスタンス停止→EBSスナップショット作成→インスタンスタイプ変更→インスタンス再起動)を月次で手動実施しており、手順ミスが頻発しています。この一連の作業を手順書として定義・バージョン管理し、AWSコンソールやCLIから手動実行でき、EventBridgeによるスケジュール実行にも対応した形で自動化したいと考えています。最小の開発工数で実現するために最も適切なアプローチはどれですか?
ASystems Manager Run Command でシェルスクリプトを作成し、EC2 インスタンス上でコマンドを実行して各ステップを処理する
Systems Manager Run Command は EC2 インスタンスの OS 上でシェルコマンドを実行するサービスです。インスタンスを停止すると SSM エージェントも停止するため後続ステップを実行できず、AWS API のオーケストレーション目的には適していません。
BSystems Manager Automation ランブックを作成し、停止・スナップショット・タイプ変更・起動の各ステップを組み込みアクションで定義する
✓ 正解
Systems Manager Automation は AWS API 操作を手順(ランブック)として定義・バージョン管理できます。停止・スナップショット・タイプ変更・起動の組み込みアクションが揃い、コンソール・CLI・EventBridge からの実行に対応しており、コードなしで実現できます。
CAWS Lambda 関数に AWS SDK で各ステップをコーディングし、コンソールから手動実行と EventBridge によるスケジュール実行を設定する
Lambda + AWS SDK でも各ステップを実装できますが、すべての処理をコーディングする必要があり開発工数が増加します。手順書としての管理容易性でも SSM Automation ランブックに劣り、最小工数の要件を満たしません。
DStep Functions のステートマシンで各ステップを定義し、Lambda 関数を介して EC2・EBS の各 API を呼び出してオーケストレーションする
Step Functions はワークフローオーケストレーションに優れますが、各ステップの実行に Lambda 関数の実装が別途必要となり設定が複雑になります。単純な AWS API の順次実行には SSM Automation の方が適しています。
解説
Systems Manager Automation は、AWS APIへの一連の操作を「ランブック(SSM Automation ドキュメント)」として定義・バージョン管理できるサービスです。aws:stopInstances・aws:createSnapshot・aws:changeInstanceType・aws:startInstances などの組み込みアクションが標準提供されており、コードを書かずに各ステップを定義できます。コンソール・CLI・API・EventBridge からの実行に対応し、実行履歴もステップ単位で追跡できます。ドキュメントのバージョニング機能によりロールバックも容易です。
選択肢AのSystems Manager Run Command は EC2 インスタンス上で OS コマンドを実行するサービスです。インスタンスを停止すると SSM エージェントが停止して後続ステップを実行できず、AWS API のオーケストレーション用途には設計されていません。
選択肢CのAWS Lambda は AWS SDK で API 呼び出しを実装できますが、各ステップのコーディングが必要で開発工数が増加し、最小工数の要件を満たしません。
選択肢DのAWS Step Functions はワークフローオーケストレーションに適しますが、各ステップの実行に Lambda 関数の別途実装が必要で設定が複雑になります。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →