Q79 — AWS DOP-C02 第2章
第 79/100 問 | ← 第2章
ある企業は、AWS 上で専用のエンタープライズメモリーデータストレージ向けにグリッドシステムを導入したいと考えています。このシステムは、任意の Linux ベースのディストリビューション上で複数のサーバーノードで動作可能です。ノードの追加または削除時に、システム全体が自動的に再構成される必要があります。ノードの追加または削除時には、クラスタの現在のノードメンバーの IP アドレスを一覧表示する /etc/cluster/nodes.config ファイルが更新されます。 この企業は、クラスタへの新規ノード追加タスクを自動化したいと考えています。 DevOps エンジニアは、これらの要件を満たすために何を行うことができますか?
- A. AWS OpsWorks Stacks を使用してクラスタのサーバーノードをレイヤー化します。/etc/cluster/nodes.config ファイルの内容を生成する Chef レシピを作成し、そのレイヤーの現在のメンバーに基づいてサービスを再起動します。このレシピを構成ライフサイクルイベントに割り当てます。 ✓
- B. nodes.config ファイルをバージョン管理に置きます。クラスタノードの Amazon EC2 タグ値に基づいて AWS CodeDeploy のデプロイ構成およびデプロイグループを作成します。クラスタに新規ノードを追加する際、すべてのタグ付きインスタンスを反映したファイルを更新し、バージョン管理にコミットします。その後、新しいファイルをデプロイしてサービスを再起動します。
- C. Amazon S3 バケットを作成し、/etc/cluster/nodes.config ファイルのバージョンをアップロードします。S3 ファイルを定期的にポーリングしてダウンロードする crontab スクリプトを作成します。Monit や systemd などのプロセスマネージャーを使用して、ファイルの変更を検知した際にクラスタサービスを再起動します。クラスタにノードを追加する際には、最新のメンバー情報を含むファイルを編集し、S3 バケットにアップロードします。
- D. ユーザー・データ・スクリプトを作成し、クラスタの現在のセキュリティグループの全メンバーを列挙し、クラスタに新規インスタンスを追加する際に /etc/cluster/nodes.config ファイルを自動的に更新します。
正解: A. AWS OpsWorks Stacks を使用してクラスタのサーバーノードをレイヤー化します。/etc/cluster/nodes.config ファイルの内容を生成する Chef レシピを作成し、そのレイヤーの現在のメンバーに基づいてサービスを再起動します。このレシピを構成ライフサイクルイベントに割り当てます。
解説
本問は、AWS 上で専用のエンタープライズメモリーデータストレージ向けグリッドシステムを運用し、クラスタへの新規ノード追加を自動化する方法を問うものです。選択肢 A では、AWS OpsWorks Stacks を用いたサーバーノードのレイヤー管理と、Chef レシピによる /etc/cluster/nodes.config ファイルの自動更新、および構成ライフサイクルイベントへの割り当てにより、ノード追加時の自動再構成を実現します。これは、問題文の要件である「自動化されたノード追加とクラスタ全体の再構成」を満たします。選択肢 B はバージョン管理と AWS CodeDeploy を活用していますが、自動化されたノード追加および再構成の具体的な手順が明示されていません。選択肢 C は Amazon S3 と crontab を用いる手法ですが、複雑かつ直接的ではなく、自動化および簡潔性の要件に合致しません。選択肢 D はユーザー・データ・スクリプトによる nodes.config の自動更新を提案していますが、AWS サービスとの統合による自動化管理については言及していません。以上より、選択肢 A が最も要件を満たす回答です。