GCP入門: Terraform を使用した IaC -Vol.5-

スポンサーリンク
GCP入門: Terraform を使用した IaC -Vol.5- ノウハウ
GCP入門: Terraform を使用した IaC -Vol.5-
この記事は約5分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、TerraformでGCPのリソース作成について解説しています。

スポンサーリンク

背景

前回の記事の続きになります。

実施内容

main.tfに下記のリソースを追記します。

resource "google_compute_address" "vm_static_ip" {
  name = "terraform-static-ip"
}

main.tfで下記の緑色部分に更新します。

  network_interface {
    network = google_compute_network.vpc_network.self_link
    access_config {
      nat_ip = google_compute_address.vm_static_ip.address
    }
  }


# 実行プランの作成
terraform plan -out static_ip

# 変更を適用
terraform apply "static_ip"

# 状態ファイルの確認
terraform show

解説

main.tf

このTerraformコードは、Google Cloud Platform (GCP) 上にCompute Engineインスタンスと静的IPアドレスを作成します。各部分の詳細は以下の通りです:

  1. google_compute_instance リソース:
  • name: インスタンス名を “terraform-instance” に設定
  • machine_type: “e2-micro” を使用(コスト効率の良い小型インスタンス)
  • tags: “web” と “dev” タグを付与(ネットワークルールの適用などに使用可能)
  1. boot_disk ブロック:
  • initialize_params:
    • image: “cos-cloud/cos-stable” を使用(Container-Optimized OS)
  1. network_interface ブロック:
  • network: 別途定義された VPC ネットワークに接続
  • access_config:
    • nat_ip: 静的IPアドレスを割り当て
  1. google_compute_address リソース:
  • 名前が “terraform-static-ip” の静的IPアドレスを作成

このコードの特徴と影響:

  1. Container-Optimized OS の使用:
  • コンテナワークロードに最適化されたOSを使用
  • セキュリティが強化されていますが、汎用性は低下
  1. 静的IPの使用:
  • インスタンスに固定のパブリックIPアドレスを割り当て
  • 再起動後もIPアドレスが変わらないため、DNSレコードの管理が容易
  1. タグの使用:
  • “web” と “dev” タグにより、ファイアウォールルールの適用やリソース管理が容易に
  1. ネットワーク設定:
  • 既存のVPCネットワークを使用(google_compute_network.vpc_network.self_link
  1. マシンタイプ:
  • e2-micro は低コストですが、リソースも限られています

注意点:

  • このコードはインスタンスを作成しますが、具体的なアプリケーションのデプロイは含まれていません
  • セキュリティグループやファイアウォールルールの設定が必要かもしれません
  • 静的IPアドレスには追加コストが発生する可能性があります

terraform plan と apply

これらのコマンドは Terraform を使用してインフラストラクチャの変更を計画し、適用するためのものです。それぞれの目的と理由を説明します:

  1. terraform plan -out static_ip

目的:

  • 実行プラン(実行計画)を作成し、それを static_ip という名前のファイルに保存します。

理由:

  • 変更内容を事前に確認できます。これにより、意図しない変更を防ぐことができます。
  • プランをファイルに保存することで、同じプランを後で確実に適用できます。
  • 複雑な変更や本番環境の変更の前に、変更内容を詳細にレビューできます。
  1. terraform apply "static_ip"

目的:

  • 先ほど作成した static_ip プランファイルを使用して、実際にインフラストラクチャに変更を適用します。

理由:

  • 保存されたプランを使用することで、planapply の間に設定ファイルが変更されても、元のプランどおりに適用されることが保証されます。
  • 人為的ミスを減らし、予期せぬ変更を防ぐことができます。
  • CI/CD パイプラインなどで、承認されたプランのみを適用するためにも使用されます。

これらのコマンドを順番に実行する理由:

  1. まず変更内容を確認し(plan)、
  2. 問題がなければその exact なプランを適用する(apply

という2段階のプロセスを踏むことで、安全かつ制御された方法でインフラストラクチャの変更を行うことができます。特に本番環境や重要なシステムでの変更時には、このアプローチが推奨されます。

おわりに

今日は、 TerraformでGCPのリソース作成について解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

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