よっしー
こんにちは。よっしーです(^^)
今日は、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アドレスを作成します。各部分の詳細は以下の通りです:
google_compute_instance
リソース:
name
: インスタンス名を “terraform-instance” に設定machine_type
: “e2-micro” を使用(コスト効率の良い小型インスタンス)tags
: “web” と “dev” タグを付与(ネットワークルールの適用などに使用可能)
boot_disk
ブロック:
initialize_params
:image
: “cos-cloud/cos-stable” を使用(Container-Optimized OS)
network_interface
ブロック:
network
: 別途定義された VPC ネットワークに接続access_config
:nat_ip
: 静的IPアドレスを割り当て
google_compute_address
リソース:
- 名前が “terraform-static-ip” の静的IPアドレスを作成
このコードの特徴と影響:
- Container-Optimized OS の使用:
- コンテナワークロードに最適化されたOSを使用
- セキュリティが強化されていますが、汎用性は低下
- 静的IPの使用:
- インスタンスに固定のパブリックIPアドレスを割り当て
- 再起動後もIPアドレスが変わらないため、DNSレコードの管理が容易
- タグの使用:
- “web” と “dev” タグにより、ファイアウォールルールの適用やリソース管理が容易に
- ネットワーク設定:
- 既存のVPCネットワークを使用(
google_compute_network.vpc_network.self_link
)
- マシンタイプ:
- e2-micro は低コストですが、リソースも限られています
注意点:
- このコードはインスタンスを作成しますが、具体的なアプリケーションのデプロイは含まれていません
- セキュリティグループやファイアウォールルールの設定が必要かもしれません
- 静的IPアドレスには追加コストが発生する可能性があります
terraform plan と apply
これらのコマンドは Terraform を使用してインフラストラクチャの変更を計画し、適用するためのものです。それぞれの目的と理由を説明します:
terraform plan -out static_ip
目的:
- 実行プラン(実行計画)を作成し、それを
static_ip
という名前のファイルに保存します。
理由:
- 変更内容を事前に確認できます。これにより、意図しない変更を防ぐことができます。
- プランをファイルに保存することで、同じプランを後で確実に適用できます。
- 複雑な変更や本番環境の変更の前に、変更内容を詳細にレビューできます。
terraform apply "static_ip"
目的:
- 先ほど作成した
static_ip
プランファイルを使用して、実際にインフラストラクチャに変更を適用します。
理由:
- 保存されたプランを使用することで、
plan
とapply
の間に設定ファイルが変更されても、元のプランどおりに適用されることが保証されます。 - 人為的ミスを減らし、予期せぬ変更を防ぐことができます。
- CI/CD パイプラインなどで、承認されたプランのみを適用するためにも使用されます。
これらのコマンドを順番に実行する理由:
- まず変更内容を確認し(
plan
)、 - 問題がなければその exact なプランを適用する(
apply
)
という2段階のプロセスを踏むことで、安全かつ制御された方法でインフラストラクチャの変更を行うことができます。特に本番環境や重要なシステムでの変更時には、このアプローチが推奨されます。
おわりに
今日は、 TerraformでGCPのリソース作成について解説しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント