メインコンテンツへ
開発技術開発・運用実践

Infrastructure as Code(IaC)の説明として、最も適切なものはどれか。

ア.インフラの構築・変更をGUIのダッシュボードから行い、操作履歴をログファイルに記録する手法。
イ.アプリケーションのソースコードの中にインフラ設定を埋め込み、デプロイ時に自動的にサーバーを起動する手法。
ウ.サーバーやネットワークなどのインフラ構成をコードで記述・管理し、バージョン管理・自動化・再現性を実現する手法。正解
エ.インフラのコスト最適化を目的とし、使用量に応じて自動的にリソースをオンオフするスクリプトの総称。

解説

IaCは「設計図からビルを自動建設」するアプローチ。Terraform等のツールで「このサーバーを3台」と書くだけで、人手を介さず同じインフラが何度でも再現できます。

なぜ ウ が正解か

ウが正解。Infrastructure as Code(IaC)はTerraform・AWS CloudFormation・Ansibleなどのツールを使い、インフラ(サーバー・ネットワーク・ストレージ・クラウドリソース等)の構成をコードで記述・管理する手法。コードをGitで管理することで変更履歴の追跡・レビュー・ロールバックが可能になり、同一構成を何度でも再現できる(冪等性)。

なぜ ア は間違いか

GUIダッシュボードから手動操作して履歴をログに記録するのはIaCとは対極の「手動プロビジョニング」。IaCの本質は「人間が手動で操作しない」ことにあり、コードで宣言的に定義する。

なぜ イ は間違いか

アプリのソースコードにインフラ設定を埋め込む手法はAWS CDK等に近いが、IaCの一般的な説明としては適切でない。IaCはアプリコードとインフラコードを分離して管理することが多い。

なぜ エ は間違いか

コスト最適化でリソースを自動オンオフするスクリプトはコスト管理ツールの話であり、IaCではない。IaCはコスト削減ではなく構成の再現性・自動化・バージョン管理が目的。

出典: AI生成問題(学習用)