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の基本概念 IaCツールとしてのTerraformの仕組み

0
Posted at

クラウド環境では、サーバーやネットワークなどのインフラを構築する機会が多くあります。

例えば次のような作業です。

  • EC2インスタンスの作成
  • VPCやサブネットの設定
  • RDSの作成

これらを手動で構築していると

  • 設定ミスが発生する
  • 環境ごとに設定が変わる
  • 再現性が低くなる

という問題が発生します。

このような問題を解決する仕組みが
Terraformです。

この記事では次の内容を解説します。

  • Terraformの基本概念
  • CloudFormationとの違い
  • Terraformの構成要素
  • tfstateファイルの役割

① Terraformの基本概念

Terraformとは

インフラ構成をコードで管理するIaCツールです。

通常のインフラ構築

管理者

AWSコンソール操作

インフラ作成

Terraform

Terraformコード

Terraform

インフラ作成

この仕組みにより

  • インフラ構成をコード管理できる
  • 同じ環境を再現できる
  • 自動でインフラ構築できる

というメリットがあります。


② TerraformとCloudFormationの違い

TerraformとCloudFormationはどちらも
IaCツールです。

主な違いは次の通りです。

項目 Terraform CloudFormation
提供元 HashiCorp AWS
対応クラウド マルチクラウド AWS専用
記述形式 HCL YAML / JSON

イメージ

Terraform

AWS / GCP / Azure

CloudFormation

AWSのみ


③ Terraformの構成要素

Terraformでは
.tfファイルでインフラ構成を定義します。

.tfファイルの役割

.tfファイルとは

Terraformの設定を記述するファイルです。

main.tf
network.tf
ec2.tf


required_providers

required_providers

使用するクラウドプロバイダを指定する設定です。

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

resource

resource

作成するインフラリソースを定義する部分です。

resource "aws_instance" "web" {
  instance_type = "t2.micro"
}

つまり

要素 役割
required_providers クラウド指定
resource リソース作成

になります。

④ tfstateファイルの役割(まとめ)

Terraformでは
tfstateファイルというファイルが作成されます。

tfstateとは

Terraformが管理しているインフラ状態を記録するファイルです。

Terraformコード

Terraform実行

AWSリソース

tfstateに状態保存

主な役割

・インフラ状態の管理

・差分検出

・更新管理

まとめ

Terraformは

インフラ構成をコードで管理するIaCツールです。

主なポイントは次の通りです。

・TerraformはIaCツールの一つ

・CloudFormationとの違いはマルチクラウド対応

・.tfファイルでインフラ構成を定義する

・resourceでリソースを作成する

・tfstateでインフラ状態を管理する

Terraformを利用することで
再現性の高いインフラ構築が可能になります。

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?