広告

Terraform-クイックスタート

GCP

最近自分でTerraformの使い方を公式ドキュメントを見ながら勉強しています。
自分で勉強したもののメモもかねて、記事にしようと思います。
今日は、Terraformは何なのかぐらいしか知らない方に、まず触れてみるためのクイックスタートを記事にします。

terraform とは

まず初めに、terraform は何をするものなのかをご紹介します。

こちらの図をご覧ください。

Terraform は、簡単に言いますと、ファイルで定義したをリソースをコマンドを使ってクライドにデプロイするツールのことです。
ファイルでリソースを定義できることが一番の売りで、リソースの管理をファイル(コード)でできるようになるからです。

terraform基本準備

  • 使用するツールを用意
    • Visual Studio Code
      • Terraform拡張機能
  • terraformのインストール
    • マニュアルインストール:
      • terraformダウンロード
      • ダウンロード後のファイルを解凍して、置きたい場所へ移動する
      • 移動後のパスをシステム環境変数のpathに登録する
    • 参考
  • 認証情報の準備(GCP)
    • 権限のあるサービスアカウントを作成
    • サービスアカウントのJSONファイルを発行
    • 以下の環境変数を作成する
      • GOOGLE_APPLICATION_CREDENTIALS = <JSONファイルのパス>
  • .tfファイルを用意
    • .tfファイルは、terraformのリソース定義ファイルです。リソースに対する操作は基本この定義ファイルをベースに行う。
  • terraformのプロジェクトを初期化:terraformがGCPを操作するためのプラグインをダウンロードするため
    • cdコマンドで.tfファイルが置いているパスへ移動
    • initコマンドを実行:.tfファイルの中身を見て、使用するプラグインを自動的に用意してくれる
      • terraform init
    • Terraform has been successfully initialized!が表示されることを確認
    • 初期化操作はおそらく、プラグインが追加で必要になったたびに、実行が必要

簡単な.tfファイル例

# main.tf
# GCPプロジェクトの基本設定
provider "google" {
    # 操作するGCPのプロジェクトID
    project = "<GCPのプロジェクトID>"
    # 操作するリソースのデフォルトリージョン。リソース作成時指定しない場合、これを使用する
    region = "asia-northeast1"
    # 操作するリソースのデフォルトゾーン。リソース作成時指定しない場合、これを使用する
    # 注意:すべてのリソースがゾーンを持っているわけではありません
    zone = "asia-northeast1-a"
}

# GCE作成
resource "google_compute_instance" "vm_instance" {
    # リソース名
    name = "terraform-instance"
    # インスタンスのスペック
    machine_type = "f1-micro"

    # bootディスクの設定
    boot_disk {
        initialize_params {
            image = "debian-cloud/debian-9"
        }
    }

    # Nicの設定
    network_interface {
        # VPCの指定
        # 同じモジュール内の他のリソースを指定する
        network = google_compute_network.vpc_network.self_link
        access_config {
        }
    }
}

# VPC作成
resource "google_compute_network" "vpc_network" {
    name = "terraform-network"
    auto_create_subnetworks = "true"
}

terraformの基本コマンドの使い方

基本準備が完了してから、terraform initを実行したディレクトリで、以下のコマンドを使ってリソースの操作が可能です。

  • terraform plan:main.tfの正確性を確認する
  • terraform apply:実際にリソースの作成を行う
  • terraform destroy:リソースを削除する

最後に

今日はterraformはどんなものかのイメージビルディングとして、クイックスタートを書きました。
一番シンプルなものですが、基本な使い方はイメージできたかと思います。
今後は少しずつ深堀行く予定です。

ここまで読んでいただいて、お疲れ様でした。

コメント

タイトルとURLをコピーしました