Skip to content

Instantly share code, notes, and snippets.

@kun432
Last active August 29, 2015 14:10
Show Gist options
  • Save kun432/fe4bec827021ff05e978 to your computer and use it in GitHub Desktop.
Save kun432/fe4bec827021ff05e978 to your computer and use it in GitHub Desktop.

awscli

目次

コマンド

$ aws ec2 create-vpc --cidr-block 10.0.0.0/16

VPCでパブリックIPにDNS名をつける

$ aws ec2 modify-vpc-attribute --vpc-id VPCのID --enable-dns-hostnames

サブネットを作成

以下の通り作成する

  • パブリックサブネット1 (リージョンA)
  • パブリックサブネット2 (リージョンC)
  • プライベートサブネット1 (リージョンA)
  • プライベートサブネット2 (リージョンC)
$ aws ec2 create-subnet --vpc-id VPCのID --cidr-block 10.0.1.0/24  --availability-zone ap-northeast-1a
$ aws ec2 create-subnet --vpc-id VPCのID --cidr-block 10.0.2.0/24  --availability-zone ap-northeast-1c
$ aws ec2 create-subnet --vpc-id VPCのID --cidr-block 10.0.11.0/24 --availability-zone ap-northeast-1a
$ aws ec2 create-subnet --vpc-id VPCのID --cidr-block 10.0.12.0/24 --availability-zone ap-northeast-1c

インターネットゲートウェイの作成

$ aws ec2 create-internet-gateway

インターネットゲートウェイをVPCにアタッチ

$ aws ec2 attach-internet-gateway --internet-gateway-id インターネットゲートウェイのID --vpc-id VPCのID

パブリックサブネット用ルートテーブルの作成

$ aws ec2 create-route-table --vpc-id VPCのID

パブリックサブネット用ルートテーブルとパブリックサブネットを紐づける

$ aws ec2 associate-route-table --route-table-id パブリックサブネット用ルートテーブルのID --subnet-id パブリックサブネット1のサブネットID
$ aws ec2 associate-route-table --route-table-id パブリックサブネット用ルートテーブルのID --subnet-id パブリックサブネット2のサブネットID

パブリックサブネット用ルートテーブルにインターネットゲートウェイへのルートを追加する

$ aws ec2 create-route --route-table-id パブリックサブネット用ルートテーブルのID --gateway-id インターネットゲートウェイのID --destination-cidr-block 0.0.0.0/0

セキュリティグループを作成

以下の通り作成する

  • NAT用
  • WEB用
  • DB用
  • ELB用
$ aws ec2 create-security-group --group-name NAT-SG --description NAT-SG --vpc-id VPCのID
$ aws ec2 create-security-group --group-name WEB-SG --description WEB-SG --vpc-id VPCのID
$ aws ec2 create-security-group --group-name DB-SG  --description DB-SG  --vpc-id VPCのID
$ aws ec2 create-security-group --group-name ELB-SG --description ELB-SG --vpc-id VPCのID

セキュリティグループにそれぞれルールを追加

$ aws ec2 authorize-security-group-ingress --group-id NAT-SGのID --protocol tcp --port 22  --cidr 0.0.0.0/0
$ aws ec2 authorize-security-group-ingress --group-id NAT-SGのID --protocol tcp --port 80  --source-group DB-SGのID
$ aws ec2 authorize-security-group-ingress --group-id NAT-SGのID --protocol tcp --port 443 --source-group DB-SGのID
$ aws ec2 authorize-security-group-egress  --group-id NAT-SGのID --protocol tcp --port 80  --cidr 0.0.0.0/0
$ aws ec2 authorize-security-group-egress  --group-id NAT-SGのID --protocol tcp --port 443 --cidr 0.0.0.0/0
$ aws ec2 authorize-security-group-ingress --group-id WEB-SGのID --protocol tcp --port 22  --source-group NAT-SGのID
$ aws ec2 authorize-security-group-ingress --group-id WEB-SGのID --protocol tcp --port 80  --cidr 0.0.0.0/0
$ aws ec2 authorize-security-group-ingress --group-id DB-SGのID --protocol tcp --port 22   --source-group NAT-SGのID
$ aws ec2 authorize-security-group-ingress --group-id DB-SGのID --protocol tcp --port 3306 --source-group WEB-SGのID
$ aws ec2 authorize-security-group-ingress --group-id ELB-SGのID --protocol tcp --port 80  --cidr 0.0.0.0/0

NATインスタンスを起動

$ aws ec2 run-instances \
> --image-id NATインスタンスのAMI ID \
> --key-name キーペア名 \
> --subnet-id パブリックサブネットのサブネットID(どちらか) \
> --security-group-ids NAT-SGのID \
> --instance-type t2.micro \
> --associate-public-ip-address \
> --private-ip-address 適当なプライベートIP(ここは固定の方がベター)

Webインスタンスを起動(2台でマルチAZ)

$ aws ec2 run-instances \
> --image-id AmazonLinuxのAMI ID \
> --key-name キーペア名 \
> --subnet-id パブリックサブネット1のサブネットID \
> --security-group-ids WEB-SGのID \
> --instance-type t2.micro \
> --associate-public-ip-address
$ aws ec2 run-instances \
> --image-id AmazonLinuxのAMI ID \
> --key-name キーペア名 \
> --subnet-id パブリックサブネット2のサブネットID \
> --security-group-ids WEB-SGのID \
> --instance-type t2.micro \
> --associate-public-ip-address

ELBを作成

$ aws elb create-load-balancer --load-balancer-name TEST-VPC-ELB --listeners Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80 --subnets パブリックサブネット1のサブネットID パブリックサブネット2のサブネットID --security-groups ELB-SGのID

ELBの配下にインスタンスを追加

$ aws elb register-instances-with-load-balancer --load-balancer-name TEST-VPC-ELB --instances Webインスタンス2台のインスタンスID
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment