IT用語: IaC(Infrastructure as Code)とは|インフラをコードで管理する
サーバー・ネットワーク・クラウドリソースをコードで定義・自動構築するIaCの概念とメリットを解説。
IaC(Infrastructure as Code)とは
IaCは、サーバー・ネットワーク・クラウドリソースなどのインフラ構成をコードとして定義し、自動的に構築・変更・削除する手法です。従来の「管理者がコンソールから手動で設定する」方法と対比されます。
IaCのメリット
- バージョン管理: Gitでインフラの変更履歴を管理できる
- 冪等性: 何度実行しても同じ結果になる
- 再現性: 開発・ステージング・本番を同一のコードで構築
- レビュー: インフラ変更もコードレビューで品質担保
- コスト削減: 不要なリソースを見落とさない
主要ツール
| ツール | 用途 |
|---|---|
| Terraform | クラウドリソースの作成・管理 |
| Ansible | OS・ミドルウェアの設定管理 |
| AWS CDK | AWSリソースをTypeScriptで定義 |
| Pulumi | TypeScript/Python等でマルチクラウド管理 |
インフラをコードで定義したファイルはJSON・YAMLが多く、JSONフォーマッターやYAML-JSON変換ツールが役立ちます。
関連する用語 (DevOps)
全58件を見るSRE
Site Reliability Engineering(サイト信頼性エンジニアリング)の略。Googleが提唱した、ソフトウェアエンジニアリングの手法を運用・インフラに適用するアプローチ。SLO・エラーバジェット・トイルの削減が核心概念。
ArgoCD
Kubernetesのための宣言的GitOps継続デリバリーツール。Gitリポジトリ上のマニフェストと実際のK8sクラスタの状態を常に同期させる。変更を検知して自動でデプロイする。
Ansible
構成管理・プロビジョニング自動化ツール。YAMLで記述したPlaybookをエージェントレスで実行し、サーバーの設定を一元管理できる。インフラの自動化とべき等性の確保が特徴。
GitHub Actions
GitHubに組み込まれたCI/CDプラットフォーム。リポジトリへのプッシュやプルリクエストをトリガーに、ワークフロー(.yml)を自動実行できる。テスト・ビルド・デプロイを一元管理できる。
SLA
Service Level Agreement(サービスレベル合意)の略。サービス提供者と利用者の間で合意するサービス品質の保証内容。SLOと違い、違反時のペナルティや補償を含む契約上の約束。
ConfigMap
Kubernetesで設定値(接続先URLや設定パラメーター等)をコンテナから分離して管理するリソース。環境ごとに異なる設定を外出しにすることで、同一イメージを複数環境で使い回せる。