LinuCレベル3 プラットフォームスペシャリスト プラットフォームの運用管理 問30
プラットフォームの運用管理/インフラプロビジョニングの自動化OpenTofuで新しいサブネットを作成したい。サブネットを置くVPCは別のチームが管理しており、自分たちのstateの管理下に置いたり変更したりせずに、そのIDなどの属性を読み取って参照したい。設定ファイルで使うブロックとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの運用管理」に対応。実際の試験問題ではありません)
- Amoduleブロック
- Bresourceブロック
- Cdataブロック
- Doutputブロック
正解:C
解説
OpenTofuのdataブロック(データソース)は、プロバイダーを通じて既存のリソースの情報を読み取り、その属性を他のブロックから data.<種類>.<名前>.<属性> の形で参照できるようにするものです。データソースは読み取りだけを行い、対象のリソースを作成・変更・削除することはありません。そのため、他のチームが管理するVPCやネットワークの情報を、自分たちの構成から安全に参照できます。一方、resourceブロックで同じVPCを書くと、OpenTofuが自分の管理対象として作成や変更を行おうとします。
選択肢ごとの解説
- A誤り。moduleブロックは、別のディレクトリ等にまとめた設定を部品として呼び出すものです。既存のリソースの属性を読み取るためのものではありません。
- B誤り。resourceブロックは、OpenTofuが作成・変更・削除を管理するリソースを定義するものです。VPCを書くと自分たちのstateで管理する対象になってしまいます。
- C正しい。dataブロックは既存のリソースの情報を読み取るだけで、管理下に置かずに属性を参照できます。
- D誤り。outputブロックは、自分の構成の値を実行結果として表示したり、他の構成へ渡したりするためのものです。外部のリソースを読み取る機能はありません。