Terraformのクイックスタート
クイックスタート
概要
このクイックスタートでは、Terraform を使用して Docker コンテナを作成し、NGINX サーバーを起動する手順を解説します。 主に公式のドキュメントを参考にしています。
これは、初心者を対象としています。以下に関する基本的な知識を持っていることを前提としています
- Dockerおよびコンテナの概念(nginxコンテナを実行するため)
- 基本的なコマンドライン操作(ls、cd、mkdirなど)
始める前に
- Terraformをインストールしていること
- Dockerデスクトップをインストールしていること
リソースを作成する
Terraformを実行して、Dockerコンテナを作成します。
ファイルの作成
適当なディレクトリを作成し、その中にmain.tfという名前のファイルを作成します。
$ mkdir terraform-docker
$ cd terraform-docker
$ touch main.tf
TerraformではHCL(HashiCorp Configuration Language)という言語を使用して、インフラストラクチャをコード化します。Terraformは実行しているディレクトリにある
*.tf
ファイルを読み込みます。tf拡張子であればファイル名は何でも構いませんが、慣習的に main.tf
という名前を使用します。
次に、main.tfファイルを開いて、以下のコードを追加します。
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 3.0.1"
}
}
}
provider "docker" {}
resource "docker_image" "nginx" {
name = "nginx"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.image_id
name = "quickstart-nginx"
ports {
internal = 80
external = 8000
}
}
初期化を行い、Terraformのプロバイダーをインストールします。
$ terraform init
ls
コマンドを実行して、生成されたファイルを確認します。
$ ls -a1
.
..
.terraform
.terraform.lock.hcl
main.tf
terraform.tfstate
.terraform
ディレクトリは、Terraformがキャッシュされたプロバイダプラグインやモジュールの管理、現在アクティブなワークスペースの記録、などを管理するために使用されます。
terraform.tfstate
ファイルは、よく「ステートファイル」と呼ばれ、Terraformが管理しているインフラストラクチャの状態を記録するために使用されます。
apply
コマンドを実行して、リソースを作成します。Terraformから承認を求められた場合は、yes
を入力してください。
$ terraform apply
ブラウザで http://localhost:8000
にアクセスして、NGINXのデフォルトページが表示されることを確認します。
コンテナを停止するには、destroy
コマンドを実行します。Terraformから承認を求められた場合は、yes
を入力してください。
$ terraform destroy
Next Steps
これで、Terraformを使用してDockerコンテナを作成し、NGINXサーバーを起動する方法を学びました。
次のステップとして、好きなクラウドに実際にインフラストラクチャを作成する方法を学びましょう。
- AWS
- Azure
- GCP
Discussion