GNU/Linux >> Linux の 問題 >  >> Linux

Terraformを使用してAWSでEC2インスタンスを作成します

この記事では、Terraformを使用してEC2インスタンスを作成する方法を説明します。先に進む前に、TerraformとAWSEC2インスタンスの基本に精通していることを前提としています。 AWSコンソールからEC2インスタンスを作成する方法を学びたい場合は、ここをクリックしてください。

前提条件
  1. Terraformの基本的な理解。
  2. システムにインストールされているTerraform。
  3. AWSアカウント(アカウントがない場合は作成します)。
  4. AWSIAMユーザーの「access_key」と「secret_key」。 (AWSで「access_key」と「secret_key」を使用してIAMユーザーを作成する方法については、ここをクリックしてください)

私たちが行うこと

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

Terraform構成ファイルを書き込んでEC2インスタンスを作成します

テラフォーム構成ファイルを作成できる専用ディレクトリを作成します。

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

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 = "Access key to AWS console"
}
variable "secret_key" {
        description = "Secret key to AWS console"
}


variable "instance_name" {
        description = "Name of the instance to be created"
        default = "test"
}

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

variable "subnet_id" {
        description = "The VPC subnet the instance(s) will be created in"
        default = "subnet-a5a72ce8"
}

variable "ami_id" {
        description = "The AMI to use"
        default = "ami-096b8af6e7e8fb927"
}

variable "number_of_instances" {
        description = "number of instances to be created"
        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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"

これで、3つのファイル、つまり、variables.tf、terraform.tfvars、およびmain.tfが必要になります

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

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

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

 terraform init

使用する2番目のコマンドは「テラフォームプラン」です。このコマンドは、インフラストラクチャで行われる変更を確認するために使用されます。

 terraform plan

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

terraform apply

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

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

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

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

terraform destroy

結論

この記事では、選択したリージョンでEC2インスタンスを作成する手順を説明しました。インスタンスを削除する方法も確認しました。


Linux
  1. Terraformを使用してAWSで仮想プライベートクラウド(VPC)を作成する

  2. AWS EC2 ubuntu インスタンスのディスク容量を増やす

  3. EC2 を使用して AWS で SonarQube をセットアップする

  1. AWSインスタンス(EC2)でEBSボリュームを作成および追加する方法

  2. Terraformを使用してAWSでRDSインスタンスを作成する方法

  3. Terraformを使用してAWSでIAMロールを作成する方法

  1. Terraformを使用してAWSEC2インスタンスを起動する方法

  2. kubeadmを使用してUbuntuを使用してAWSEC2インスタンスにKubernetesクラスターをセットアップする

  3. Terraformモジュールを作成する方法