AWS, Terraform · 1 min read · Feb 09, 2026

Terraformを使用してAWSにEC2インスタンスを作成する

この記事では、Terraformを使用してEC2インスタンスを作成する方法を見ていきます。進む前に、TerraformとAWS EC2インスタンスの基本を理解していることを前提とします。AWSコンソールからEC2インスタンスを作成する方法を学びたい場合は、こちらをクリック

前提条件

  1. Terraformの基本的な理解。
  2. システムにTerraformがインストールされていること。
  3. AWSアカウント(持っていない場合は作成してください)。
  4. AWS IAMユーザーの’access_key’と’secret_key’。(こちらをクリックして、AWSで’access_key’と’secret_key’を持つIAMユーザーを作成する方法を学びます。)

私たちが行うこと

  1. EC2インスタンスを作成するためのTerraform構成ファイルを書く。
  2. Terraform構成ファイルを使用してEC2を作成する。
  3. Terraformを使用して作成したEC2インスタンスを削除する。

EC2インスタンスを作成するためのTerraform構成ファイルを書く

Terraform構成ファイルを作成できる専用のディレクトリを作成します。


次のコマンドを使用してディレクトリを作成し、現在の作業ディレクトリを変更します。

*mkdir terraform  
**cd terraform/*

私はファイルを書くために「vim」をエディタとして使用していますが、好みのエディタを使用して、次の構成をコピー&ペーストしてvariables.tf、terraform.tfvars、main.tfを作成できます。

AWSにEC2を作成する責任を持つ’main.tf’を作成します。このmain.tfは、variables.tfおよびterraform.tfvarsから変数の値を読み取ります。

*vim main.tf*
provider "aws" {
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
    region = "eu-west-3"
}

resource "aws_instance" "ec2_instance" {
    ami = "${var.ami_id}"
    count = "${var.number_of_instances}"
    subnet_id = "${var.subnet_id}"
    instance_type = "${var.instance_type}"
    key_name = "${var.ami_key_pair_name}"
}  

指定した地域以外でインスタンスを作成したい場合は、「region」の値を変更してください。

変数の宣言と定義を含む‘variables.tf’を作成します。

vim variables.tf
variable "access_key" {
        description = "AWSコンソールへのアクセスキー"
}
variable "secret_key" {
        description = "AWSコンソールへのシークレットキー"
}


variable "instance_name" {
        description = "作成するインスタンスの名前"
        default = "test"
}

variable "instance_type" {
        default = "t2.micro"
}

variable "subnet_id" {
        description = "インスタンスが作成されるVPCサブネット"
        default = "subnet-a5a72ce8"
}

variable "ami_id" {
        description = "使用するAMI"
        default = "ami-096b8af6e7e8fb927"
}

variable "number_of_instances" {
        description = "作成するインスタンスの数"
        default = 1
}


variable "ami_key_pair_name" {
        default = "tomcat"
}

‘variables.tf’を作成したら、変数に割り当てられた値を変更することを忘れないでください。ami_key_pair_name、ami_id、subnet_idは私の環境に特有のため、これらを変更する必要があります。他の変数はそのままにしておくことができます。

上記のファイルで定義されたaccess_keyとsecret_key変数の定義を含む‘terraform.tfvars’を作成します。これらの2つの変数の宣言は’terraform.tfvars’ファイルに保持されています。

以下のキーは、あなたのIAMユーザーのキーに変更する必要があります。

*vim terraform.tfvars*
access_key = "AKIAQ6GAIA5XIHHM2GJM"
secret_key = "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"

これで、variables.tf、terraform.tfvars、main.tfの3つのファイルができているはずです。

Terraform構成ファイルを使用してEC2インスタンスを作成する

次のコマンドを実行する前に、有効なaccess_keyとsecret_keyが設定されていることを確認してください。

最初に使用するコマンドは’terraform init’です。このコマンドは、構成内で使用されるプロバイダーのプラグインをダウンロードしてインストールします。私たちの場合はAWSです。

*  **terraform init*

次に使用するコマンドは’terraform plan’です。このコマンドは、インフラストラクチャにどのような変更が行われるかを確認するために使用されます。

* terraform plan*

‘terraform apply’コマンドは、main.tfファイルに記載されたAWS上のリソースを作成します。リソースを作成するために入力を提供するように求められます。

terraform apply

上記のコマンドを実行すると、出力に1つの新しいリソースが追加され、0が破棄されたことが表示されます。

AWS EC2コンソールに移動して、EC2インスタンスが作成されたかどうかを確認できます。

Terraformを使用して作成したEC2インスタンスを削除する


main.tfファイルに記載された構成を使用して作成したリソースがもはや必要ない場合は、「terraform destroy」コマンドを使用してそれらのリソースをすべて削除できます。

terraform destroy

結論


この記事では、私たちの選択した地域にEC2インスタンスを作成する手順を見ました。また、インスタンスを削除する方法も見ました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。