0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【簡単Terraform】【初心者向け】Terraformとは何か?IaCの基礎を理解する

Posted at

📘 Terraform入門から実践まで

🏗️ はじめに

クラウドインフラの構築は、かつてはマネジメントコンソールでポチポチ設定するのが当たり前でした。
しかし、現在では 「Infrastructure as Code(IaC)」 という考え方が主流になりつつあります。

このシリーズでは、IaCツールの代表である Terraform を使って、
「手動構築」から「自動化構築」へのステップアップを目指します。


🌍 IaC(Infrastructure as Code)とは?

IaC とは、「インフラ構成をコードとして記述し、自動的に構築・管理する」手法です。

従来の方法 IaC方式
AWSコンソールで手動設定 コードで構成を宣言
設定ミスが発生しやすい 一貫性と再現性が高い
設定変更の履歴が残らない Gitでバージョン管理できる

例えば、これまで手動でVPCを作っていた作業を、IaCでは次のようなコードで記述できます。

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "main-vpc"
  }
}

このファイルを実行するだけで、Terraformが自動的にAWS上にVPCを構築します。


⚙️ Terraformとは

Terraform は HashiCorp 社が開発したオープンソースの IaC ツールです。
宣言的な構文でクラウドインフラを記述し、複数のクラウド環境を統一的に管理できます。

💡 Terraformの特徴

  • マルチクラウド対応:AWS、Azure、GCPなどを1つのツールで管理可能
  • 宣言的アプローチ:最終的な状態を「宣言」するだけで自動的に構築
  • 再現性と一貫性:同じコードで同じ環境を再構築できる
  • コード管理が容易:Gitで変更履歴を追跡できる

🧩 Terraformの構成要素

要素 説明
provider 利用するクラウドサービスを指定(例:aws, google, azure)
resource 作成する具体的なリソース(例:S3, EC2, VPC)
variable パラメータ化された変数を定義
output 構築後に表示する値を指定
state 現在の構築状態を保存するファイル(terraform.tfstate)

🧱 Terraformの基本的な流れ

Terraformの操作はシンプルで、以下の4コマンドで完結します。

terraform init    # 初期化(プラグインのダウンロード)
terraform plan    # 実行前の変更内容を確認
terraform apply   # 実際にリソースを作成
terraform destroy # リソースの削除

これだけで、コードに書かれた通りにAWSやGCP上にインフラを構築できます。


🔄 Terraformと他ツールの比較

ツール 特徴
CloudFormation (AWS) AWS専用。ネイティブだが汎用性に欠ける。
Pulumi プログラミング言語でIaCを記述できる。学習コスト高め。
Terraform 宣言的構文、マルチクラウド対応、学習コスト低め。

🚀 結論:マルチクラウド環境で使いたいなら Terraform が最適。


🧠 まとめ

  • IaCとは「インフラをコード化」する考え方。
  • Terraformは最も広く使われるIaCツールの一つ。
  • 宣言的な構文と再現性の高さが特徴。
  • init → plan → apply → destroy の4ステップで動く。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?