クラウドとコンテナの基礎
宣言的なIaC(Infrastructure as Code)のツールで、ネットワークと仮想マシン2台の構成を定義したファイルを適用して、環境を作った。その直後に、何も変えずに同じファイルをもう一度適用したときに起きることとして、適切なものはどれか。
- A定義と実際の状態に違いがないので、何も変更されない
- B同じ構成がもう1組作られ、仮想マシンが4台になる
- Cすでに環境があるので、2回目の適用はエラーで中断する
答えと解説を見る
正解:A. 定義と実際の状態に違いがないので、何も変更されない
宣言的なIaCでは、手順ではなく「あるべき構成」をコードに書き、ツールが実際の状態と比べて、違いの分だけを作成、変更、削除します。そのため、同じ定義を何度適用しても結果は同じになり(べき等性)、2回目には変更が起きません。だれかが手作業で設定を変えて実際の状態が定義とずれた場合(構成のドリフト)は、次の適用で定義の状態に戻されます。定義をGitで管理すれば、変更の履歴の確認やレビューも、プログラムと同じように行えます。
- A. 正しい。違いの分だけを変更するので、同じ定義を何度適用しても同じ状態になります。
- B. 作る手順を書いたスクリプトを2回実行した場合に起こりうることです。宣言的なツールは、すでにある分を作り直しません。
- C. 宣言的なツールは、すでにある資源を定義と比べて、違いがなければ何もしません。