Skip to Content
Terraform クックブック
book

Terraform クックブック

by Kerim Satirli, Taylor Dolezal
March 2025
Intermediate to advanced
282 pages
3h 50m
Japanese
O'Reilly Media, Inc.
Content preview from Terraform クックブック

第10章. 実際の使用例

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

、Terraformがコードとしてのインフラを管理する上で優れている様々な実際のユースケースを探ろう。複数の環境のオーケストレーションから可用性の高いアプリケーションのデプロイまで、様々なクラウドプロバイダーやツールにまたがる複雑なインフラの課題をTerraformがどのように解決できるかを示す。

これらの例を通して、主にAWSを中心とした様々なクラウドプロバイダーと連携し、Kubernetes、AWS Lambda、APIゲートウェイなどのツールとの統合を探る。また、GitOpsワークフローの実装やディザスタリカバリの自動化といった高度なトピックについても議論し、実際のシナリオにおけるTerraformの多機能性を紹介する。

この章が終わる頃には、複雑なインフラの課題を解決するためにTerraformを適用する方法をしっかりと理解しているだろう。実践的な例、ベストプラクティス、そしてあなたのプロジェクトにTerraformを実装する自信を身につけ、様々な環境やユースケースにおいてコードとしてのインフラを効率的かつ効果的に管理できるようになる。

10.1Terraformワークスペースで複数の環境を管理する

問題

組織が成長し、インフラが複雑化するにつれ、開発、ステージング、本番といった複数の環境を管理することは重要な課題となる。それぞれの環境は、異なるコンフィギュレーション、リソース、変数を持っている可能性があり、コードの重複やメンテナンス作業の増加につながる。これらの環境を手作業で管理することは、エラーが発生しやすく、時間がかかる。

解決策

Terraformにはワークスペースと呼ばれる機能があり、1つのTerraform設定内で複数の環境を管理することができる。ワークスペースを活用することで、TerraformのコードをDRY(Don't Repeat Yourself)に保ちながら、環境ごとに異なる変数、リソース、設定を定義することができる:

# Define the workspace variable
variable "environment" {
  type = string
  default = terraform.workspace
}

# Configure the AWS provider
provider "aws" {
  region = var.region
}

# Define environment-specific variables
variable "instance_type" {
  type = map(string)
  default = {
    default = "t2.micro"
    dev     = "t2.small"
    prod    = "t2.medium"
  }
}

# Create an EC2 instance based on the workspace
resource "aws_instance" "example" {
  ami           = var.ami_id
  instance_type = var.instance_type[terraform.workspace]
  tags = {
    Name = "example-instance-${terraform.workspace}"
  }
}
複数の環境を管理するには、 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

入門 Kubernetes

入門 Kubernetes

Kelsey Hightower, Brendan Burns, Joe Beda, 松浦 隼人
AWS クックブック

AWS クックブック

John Culkin, Mike Zazon
AWS Lambdaのプログラミング

AWS Lambdaのプログラミング

John Chapin, Mike Roberts

Publisher Resources

ISBN: 9798341633247Supplemental Content