IaC(Infrastructure as Code)
インフラ構成をコードとして記述・管理する手法。Terraform・AWS CDK・Ansibleなどのツールを使い、インフラの再現性・バージョン管理・自動化を実現する。
IaC(Infrastructure as Code)とは?
IaC(Infrastructure as Code)は、サーバー・ネットワーク・クラウドリソースなどのインフラ構成をコードとして記述・管理する手法です。コードをバージョン管理することで、環境の再現性・変更履歴の追跡・自動化が実現します。
IaCが解決する問題
従来の手動操作(ClickOps)の問題:
- 本番・開発環境の設定差異が生じる
- 誰がいつ何を変更したか不明
- 環境の再現に時間がかかる
- 変更のレビューができない
IaCツールの分類
| 分類 | 説明 | ツール |
|---|---|---|
| プロビジョニング | クラウドリソースを作成・管理 | Terraform, AWS CDK, Pulumi |
| 構成管理 | OS・ソフトウェアの設定を管理 | Ansible, Chef, Puppet |
| コンテナオーケストレーション | Kubernetesマニフェスト管理 | Helm, Kustomize |
Terraformの基本例
# GCPでCompute Instanceを作成
resource "google_compute_instance" "default" {
name = "my-server"
machine_type = "n2-standard-2"
zone = "asia-northeast1-a"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
}
IaCのベストプラクティス
- 宣言的IaC: 「あるべき状態」を記述(HowではなくWhat)
- Gitでバージョン管理: インフラ変更もPRレビューを行う
- べき等性の確保: 何度実行しても同じ結果になる
- 環境ごとに変数化: dev/stg/prdの差異を変数で管理
まとめ
IaCは現代のクラウドインフラ管理の標準です。TerraformはマルチクラウドでシェアNo.1であり、新規インフラ構築時はTerraformから始めることを推奨します。
関連する用語 (DevOps)
全58件を見るIT用語: ブルー/グリーンデプロイとは|ダウンタイムゼロのリリース手法
本番環境(Blue)と新バージョン環境(Green)を並列稼働させ、瞬時に切り替えるブルー/グリーンデプロイの仕組みを解説。
Secret
Kubernetesでパスワード・APIキー・TLS証明書などの機密情報を管理するリソース。Base64エンコードで保存され、Podへのマウントや環境変数での参照が可能。本番ではVault等の外部シークレット管理との連携が推奨される。
IT用語: オブザーバビリティ(可観測性)とは|ログ・メトリクス・トレースの3本柱
システムの内部状態を外部から観察できる「オブザーバビリティ」の概念とログ・メトリクス・分散トレーシングを解説。
IaC
Infrastructure as Code(コードとしてのインフラ)の略。インフラ構成をコードで記述・管理することで、自動化・バージョン管理・再現性を実現する考え方。TerraformやAnsibleが代表的ツール。
ArgoCD
Kubernetesのための宣言的GitOps継続デリバリーツール。Gitリポジトリ上のマニフェストと実際のK8sクラスタの状態を常に同期させる。変更を検知して自動でデプロイする。
Helm
KubernetesのパッケージマネージャーAptやyumのK8s版。Helmチャートと呼ばれるテンプレートで複雑なK8sリソースを一括管理・デプロイできる。バージョン管理やロールバックも容易。