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 クックブック

第8章 Terraformによる構成管理 Terraformによる構成管理

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

このの章では、Terraformを構成管理タスクに利用し、インフラ全体のシステム構成が望ましい状態になるようにする方法について説明する。

コンフィギュレーション管理は、システムの情報の詳細な記録を作成することによって、システムの性能の一貫性を確立し、維持することを含む。この情報には、サーバ、ソフトウェア、ハードウェア、その他インストールされているコンポーネントの詳細が含まれる。

構成管理は、すべてのシステム・コンポーネントが意図したとおりに動作し、これらのコンポーネントへの変更が潜在的な混乱を避けるために体系的に行われることを保証する。これは現代のITにおいて重要なプロセスであり、チームがタスクを自動化し、生産性を高め、人的エラーの可能性を減らすのに役立つ。

Terraformの第一の強みは、幅広いサービスやプロバイダにわたるインフラリソースの管理にある。サーバ内のソフトウェアコンフィギュレーションを直接管理することはできないが、専用のコンフィギュレーション管理ツールと効果的に連携することができ、インフラとそのコンフィギュレーションを統合的かつ自動化された方法で管理することができる。

この章が終わる頃には、様々な設定管理タスクにTerraformを使う方法を包括的に理解し、より堅牢で柔軟なコードとしてのインフラソリューションを作成できるようになるだろう。

8.1 Terraformでシェルスクリプトを書く

問題

Terraformでインフラ構築を自動化しつつ、セットアップの一環としてサーバ上でシェルスクリプトを実行する必要がある。

解決策

このソリューションでは、Terraformを使用して AWS EC2インスタンスを作成し、user_data パラメータを使用して起動時にインスタンス上でシェルスクリプトを実行する方法を示す:

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c94855ba95c574c8"
  instance_type = "t2.micro"
  
  user_data = <<-EOF
              #!/bin/bash
              echo "Hello, World" > index.html
              nohup busybox httpd -f -p 8080 &
              EOF

  tags = {
    Name = "example-instance"
  }
}

ディスカッション

この例では、特定のAMI IDとインスタンスタイプを使用して、us-west-2 リージョンにAWS EC2インスタンスを作成する。ここで重要なのは、user_data パラメータだ。インスタンスの起動時に実行されるシェルスクリプトを指定できる。

この例のシェルスクリプトは、2つの単純なタスクを実行する:

  • index.htmlというファイルを作成し、"Hello, World"

  • ポート8080でbusybox 、基本的なHTTPサーバを起動する。

nohup コマンド 、バックグラウンドでサーバを実行し、スクリプトを完了してEC2インスタンスを起動する。

これは基本的な例だが、user_data スクリプトは必要なだけ複雑にすることができる。ソフトウェアのインストール、セットアップ、サービスの開始、その他必要なセットアップ作業を行うことができる。そのため、インフラ自動化の強力なツールとなる。 ...

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