{Pulumi} VPC/AWS

 

https://www.pulumi.com/docs/get-started/
https://qiita.com/yufuku/items/1c8ca01494e77924ab48


Python: 3.9.13

 

-- 1. macにPulumiインストール


brew install pulumi/tap/pulumi

 


-- 2. macAWS CLIインストール

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

which aws
aws --version

 

-- 3. Create new project

mkdir test
cd test
pulumi new aws-python

 

vim __main__.py


import pulumi
import pulumi_aws as aws

 

vpc01 = aws.ec2.Vpc(
  "vpc01",
  cidr_block="10.0.0.0/16",
  tags={
    "Name": "vpc01",
  }
)

subnet_public_a = aws.ec2.Subnet(
  "subnet_public_a",
  cidr_block="10.0.1.0/24",
  availability_zone="ap-northeast-1a",
  tags={
    "Name": "subnet_public_a",
  },
  vpc_id=vpc01.id
)

internet_gateway01 = aws.ec2.InternetGateway(
  "internet_gateway01",
  tags={
    "Name": "internet_gateway01",
  },
  vpc_id=vpc01.id
)


rt_public_a = aws.ec2.RouteTable(
  "rt_public_a",
  routes=[
    {
      "cidr_block": "0.0.0.0/0",
      "gateway_id": internet_gateway01.id,
    },
  ],
  tags={
    "Name": "rt_public_a",
  },
  vpc_id=vpc01.id
)


rt_public_a_subnet_public_a = aws.ec2.RouteTableAssociation(
  "rt_public_a_subnet_public_a",
  route_table_id=rt_public_a.id,
  subnet_id=subnet_public_a.id
)

 

 

-- 4. pulumi 実行

pulumi up

 

aws ec2 describe-vpcs
aws ec2 describe-subnets
aws ec2 describe-internet-gateways
aws ec2 describe-route-tables

 

-- 5. クリーンアップ


pulumi destroy


pulumi stack rm dev