もっと詳しく

クラウドコンピューティングテクノロジーの台頭に伴い、より多くの業界がワークロードをクラウドベースのインフラストラクチャに移行しています。 このパターンの結果として、技術者は、インスタンスのデプロイ(およびその他のクラウドリソース)のプロセスを自動化するための何らかのメカニズムの必要性を感じています。 Terraformは、この進歩を促進するためのそのようなオープンソースツールの1つです。

カバーする内容

この記事では、Terraformを使用してAWSでEC2インスタンスを作成する方法を説明します。 このインスタンスに単純なWebサーバーをインストールする例を示します。 まず、Terraformのインストールについて少しお話ししましょう。

Terraformをインストールする方法

Windows、Mac、Linuxベースのディストリビューション(Ubuntu / Debian、CentOS / RHELなど)などのさまざまなオペレーティングシステム用の公式Terraformパッケージが利用可能です。 さらに、Terraformはコンパイル済みのバイナリを維持し、ソースからコンパイルすることもできます。 TerraformのWebサイトで、さまざまなインストール手順を確認できます。 Terraformのインストールを確認するには、次のコマンドを実行します。

Terraformを使用したAWSEC2インスタンスの作成

システムにTerraformをインストールした後、AWSでEC2インスタンスの作成に進みます。 Terraformの展開を効果的に管理するためのファイルがいくつかあります。 単一のファイルを作成してすべてのものを宣言することはできますが、このアプローチではシナリオ全体が不器用になります。 したがって、最初に次のような作業ディレクトリを作成しましょう。

ステップ1。 すべての構成ファイルを保持するフォルダーから始めます。 次のようにフォルダを作成し、その中を移動します。

1

$ mkdir linuxhint-terraform && CD linuxhint-terraform

ステップ2。 次のように、AWSリージョンと使用するインスタンスのタイプに関する情報を含む最初の構成ファイル「variables.tf」を作成しましょう。

次に、以下のテキストをその中に入れて、次のようにファイルを保存します。

1
2
3
4
5
6
7
8
9
10

変数 「aws_region」 {{

説明= 「EC2インスタンスをデプロイするAWSリージョン。」

デフォルト= 「us-east-1」
}

変数 “instance_type” {{
説明= 「ec2のインスタンスタイプ」
デフォルト= 「t2.micro」
}

ステップ3。 デフォルトでは、Terraformが新しいインスタンスを作成すると、インスタンスに関連付けられているデフォルトのセキュリティグループがすべてのトラフィックを拒否します。 したがって、新しいファイル「secgrp.tf」を作成して、セキュリティグループ「web-sg」を作成します。これにより、次のように、インバウンドの「SSH」トラフィックと「HTTP」トラフィック、およびすべてのアウトバウンドトラフィックが許可されます。以下:

次に、次のように、次のコードをその中に入れます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

資源 “aws_security_group” 「web-sg」 {{

name =“ new-secgrp”
イングレス {{

from_port = 80

to_port = 80

プロトコル= 「tcp」

cidr_blocks = [“0.0.0.0/0”]

}

イングレス {{
from_port = 22
to_port = 22
プロトコル= 「tcp」
cidr_blocks = [“0.0.0.0/0”]
}

出口 {{
from_port = 0
to_port = 0
プロトコル= 「-1」
cidr_blocks = [“0.0.0.0/0”]
}
}

ステップ4。 次のように、目的のインフラストラクチャを定義する「main.tf」ファイルを作成します。

次に、その中に次の構成を配置します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

テラフォーム {{

required_providers {{
aws = {{
ソース = 「hashicorp/aws」

バージョン= “〜> 3.27”

}
}

required_version = “> = 0.14.9”

}

プロバイダー 「aws」 {{

リージョン=var.aws_region
shared_credentials_file = “/home/User_Name/.aws/credentials”
プロファイル= 「profile1」

}

資源 「aws_instance」 「ウェブサーバー」 {{

ami = 「ami-09d56f8956ab235b3」
instance_type = var.instance_type
key_name = 「EC2-keyPair-Name」
vpc_security_group_ids = [aws_security_group.web-sg.id]
associate_public_ip_address = 真実
root_block_device {{
volume_type = 「gp2」
volume_size = 「30」
delete_on_termination = 間違い

}

user_data = << EOF

#!/ bin / bash

sudo apt-get update

sudo apt-get upgrade -y

sudo apt-get install apache2 -y

sudo systemctl restart apache2

sudo chmod 777 -R / var / www / html /

cd / var / www / html /

sudoecho”

これはTerraformを使用してデプロイされたテストWebサイトです。

“>index.html

EOF

タグ= {{
名前= 「ExampleEC2Instance」
}
}

出力 “IPアドレス” {{
値= 「」$ {aws_instance.webserver.public_ip}「」
}

前のコードでは、「User-Name」をシステムユーザーの名前に変更し、「EC2-keyPair-Name」をケースのキーペアの名前に変更することを忘れないでください。 上記のファイルで使用されているパラメータについて少し見てみましょう。

aws_instance:これにより、EC2インスタンスリソースが作成されます。 インスタンスは、作成、変更、および破棄できます

AMI:EC2インスタンスで使用するAMIIDを指定します

instance_type:このオプションは、使用するインスタンスのタイプを宣言するために使用されます

key_name:EC2インスタンスで使用するキーペアの名前を指定します

vpc_security_group_ids:添付するセキュリティグループIDのリストの引数

associate_public_ip_address:VPC内のインスタンスにパブリックIPを接続するかどうかを指定します

user_data:インスタンスの起動時にコマンド/データを渡すために使用されます

次に、次のコマンドを実行してTerraformを初期化します。

次に、次のコマンドを使用して変更を適用します。

手順の確認

次に、目的のEC2インスタンスが作成されているかどうかを確認しましょう。 EC2コンソールに移動し、次の画像に示すように、実行中のインスタンスを確認します。

インスタンスが正常に作成されたので、デプロイしたWebサイトが正しく機能しているかどうかを確認します。 インスタンスのDNS名またはパブリックIPをコピーして、次のようにWebブラウザ内に入力します。

素晴らしい! 私たちのウェブサーバーはうまく機能しています。

リソースのクリーンアップ

インフラストラクチャをテストした場合、またはインフラストラクチャが不要な場合は、次のコマンドを実行してリソースをクリーンアップします。

結論

このガイドでは、Terraformを使用してAWSでEC2インスタンスを作成する方法について説明しました。 また、Terraformを使用してシンプルなAWSウェブサーバーをプロビジョニングする方法も示しました。

The post Terraformを使用してAWSでEC2インスタンスを作成する方法 appeared first on Gamingsym Japan.