4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSで、Terraformを利用する方法をまとめてみた(8/10)

Last updated at Posted at 2023-10-25

VPC、サブネット、ルートテーブル、およびインターネットゲートウェイを作成する

1. Terraformをインストールし、AWSプロバイダを設定します。

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

2. VPCを作成するためのリソースを定義します。

resource "aws_vpc" "my_vpc" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "My VPC"
  }
}

3. サブネットを作成するためのリソースを定義します。

resource "aws_subnet" "public_subnet" {
  vpc_id     = aws_vpc.my_vpc.id
  cidr_block = "10.0.1.0/24"
  availability_zone = "ap-northeast-1a"
  map_public_ip_on_launch = true
  tags = {
    Name = "Public Subnet"
  }
}

4. ルートテーブルを作成するためのリソースを定義します。

resource "aws_route_table" "public_rt" {
  vpc_id = aws_vpc.my_vpc.id
  route {
    cidr_block = "10.0.1.0/24"
    gateway_id = aws_internet_gateway.my_igw.id
  }
  tags = {
    Name = "Public Route Table"
  }
}

5. インターネットゲートウェイを作成するためのリソースを定義します。

resource "aws_internet_gateway" "my_igw" {
  tags = {
    Name = "My Internet Gateway"
  }
}

6. パブリックルートテーブルとパブリックサブネットを関連付けます。

resource "aws_route_table_association" "public_subnet_association" {
  subnet_id      = aws_subnet.public_subnet.id
  route_table_id = aws_route_table.public_rt.id
}

7. パブリックルートテーブルに、インターネットゲートウェイをルートとして追加します。

resource "aws_route" "public_internet_gateway_route" {
  route_table_id = aws_route_table.public_rt.id
  destination_cidr_block = "0.0.0.0/0"
  gateway_id = aws_internet_gateway.my_igw.id
}

これで、VPC、サブネット、ルートテーブル、およびインターネットゲートウェイが作成され、関連付けられました。

8.セキュリティグループを作成するためのリソースを定義します。

作成されたセキュリティグループは、名前がweb_server_sgで始まり、VPCに関連付けられており、ポート番号80と443のTCPトラフィックを許可しています。また、Nameタグには"Web Server Security Group"という値が設定されます。

resource "aws_security_group" "web_server_sg" {

  name_prefix = "web_server_sg"

  vpc_id = aws_vpc.my_vpc.id

  ingress {
    from_port = 80
    to_port = 80
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  ingress {
    from_port = 443
    to_port = 443
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = {
    Name = "Web Server Security Group"
  }
}

すべてのリソースを定義したら、Terraformを使用してAWSに適用することができます。

Terraformを初期化します。

$ terraform init

Terraformの実行計画を確認します。

$ terraform plan

Terraformを使用してAWSにリソースを作成します。

$ terraform apply

AWSで、Terraformを利用する方法をまとめてみた(1/10)
https://qiita.com/kimuni-i/items/ffde2f8df96fe5d9513f
AWSで、Terraformを利用する方法をまとめてみた(2/10)
https://qiita.com/kimuni-i/items/6298ed10adc6ad450488
AWSで、Terraformを利用する方法をまとめてみた(3/10)
https://qiita.com/kimuni-i/items/4d2f90506eb2dd4ee702
AWSで、Terraformを利用する方法をまとめてみた(4/10)
https://qiita.com/kimuni-i/items/b97089a820cc06ed2d9c
AWSで、Terraformを利用する方法をまとめてみた(5/10)
https://qiita.com/kimuni-i/items/11efb60b9a731d212211
AWSで、Terraformを利用する方法をまとめてみた(6/10)
https://qiita.com/kimuni-i/items/943daf8f4e80af12b70e
AWSで、Terraformを利用する方法をまとめてみた(7/10)
https://qiita.com/kimuni-i/items/b2cc6e1e4b5d5c1a92cb
AWSで、Terraformを利用する方法をまとめてみた(9/10)
https://qiita.com/kimuni-i/items/edbdc88f0bca9c0354d2
AWSで、Terraformを利用する方法をまとめてみた(10/10)
https://qiita.com/kimuni-i/items/2f900d792c38ad93979c

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?