AWS-Shellを使ってAPIをコールしてみた

aws-cli-image

AWS-Shellのインストール

  • 下記のGithubからインストールする(インストール方法はgithubに記載がある)
  • https://github.com/awslabs/aws-shell

  • 起動方法

~ ❯❯❯ aws-shell
aws>

【インスタンスを1台作成する】

=> run-instances

引数    value
— image-id ami-374db956
— instance-type t2.nano
— count 1
— region ap-northeast-1
— key-name (key-name)
— security-group-ids (sg-id)
— subnet-id (subnet-id)
aws> ec2 run-instances --image-id ami-374db956 --instance-type t2.nano --count 1 --key-name --security-group-ids --subnet-id

【インスタンスを停止/起動/破棄する】

=> stop-instances / run-instances / terminate-instances
引数    value
— instance-ids (instance_id)

aws> ec2 [stop|start|terminate]-instances --instance-ids

{
"StoppingInstances": [
{
"InstanceId": "",
"CurrentState": {
"Code": 64,
"Name": "stopping"
},
"PreviousState": {
"Code": 16,
"Name": "running"
}
}
]
}

【VPCを作成】

=> create-vpc
引数    value
— cider-block 10.0.0.0/16

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

{
"Vpc": {
"VpcId": "",
"InstanceTenancy": "default",
"State": "pending",
"DhcpOptionsId": "dopt-381b085a",
"CidrBlock": "10.0.0.0/16",
"IsDefault": false
}
}

【Subnetの作成】

=> create-subnet
引数    value
— vac-id (vpc-id)
— cider-block 10.0.0.0/24

aws> ec2 create-subnet --vpc-id --cidr-block 10.0.0.0/24

{
"Subnet": {
"VpcId": "",
"CidrBlock": "10.0.0.0/24",
"State": "pending",
"AvailabilityZone": "ap-northeast-1c",
"SubnetId": "",
"AvailableIpAddressCount": 251
}
}

aws> ec2 create-subnet --vpc-id --cidr-block 10.0.1.0/24

{
"Subnet": {
"VpcId": "",
"CidrBlock": "10.0.1.0/24",
"State": "pending",
"AvailabilityZone": "ap-northeast-1c",
"SubnetId": "",
"AvailableIpAddressCount": 251
}
}

【サブネット削除】

=> delete-subnet
引数    value
— subnet-id (subnet-id)

aws> ec2 delete-subnet --subnet-id

【インターネットゲートウェイを作成】

=> create-internet-gateway
引数    value
— region ap-northeast-1

aws> ec2 create-internet-gateway --region ap-northeast-1

{
"InternetGateway": {
"Tags": [],
"InternetGatewayId": "",
"Attachments": []
}
}

【インターネットゲートウェイをVPCにアタッチする】

=> attach-internet-gateway
引数    value
— internet-gateway-id ()
— vpc-id ()

aws> ec2 attach-internet-gateway --internet-gateway-id --vpc-id

【ルートテーブルを追加する】

=> create-route
引数    value
— route-table-id (rtb-id)
— destination-cidd-block 0.0.0.0/0
— gateway-id (igw-id)

aws> ec2 create-route --route-table-id --destination-cidr-block 0.0.0.0/0 --gateway-id

{
"Return": true
}

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

=> create-security-group
引数    value
— group-name SSH
— description “for-ssh-g”

aws> ec2 create-security-group --group-name SSH --description "for-ssh-g"

{
"GroupId": ""
}

【セキュリティグループのグループにポリシーを追加(Ingress)】

=> authorize-security-group-ingress
引数    value
— group-id (security-group-id)
— protocol tcp
— cidr (ip-address/32)

aws> ec2 authorize-security-group-ingress --group-id --protocol tcp --port 22 --cidr <ip-address/32>

【セキュリティグループの削除】

=> delete-security-group
引数    value
— group-id (sg-id)

aws> ec2 delete-security-group --group-id

【Elastic-IPの発行】

=> allocate-address
引数    value
— region ap-northeast-1

aws> ec2 allocate-address --region ap-northeast-1

{
"PublicIp": "",
"Domain": "vpc",
"AllocationId": "eipalloc-0c2e6b69"
}

【Elastic-IPを割り当てる】

=> associate-address
引数    value
— instance-id (instance-id)
— public-ip (Elastic-ip)
— region ap-northeast-1

aws> ec2 associate-address --instance-id --public-ip --region ap-northeast-1

{
"AssociationId": "eipassoc-7ce1f918"
}

Route53/S3

【Route53にAレコードをセットする(file://./)】

aws> route53 change-resource-record-sets --hosted-zone-id --change-batch file://./a-record-set.json

[a-record-set.json]
{
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "hoge.example.xyz.",
"ResourceRecords": [
{
"Value": "192.0.2.1"
}
],
"Type": "A",
"TTL": 300
}
}
]
}

aws> route53 list-hosted-zones

aws> route53 list-resource-record-sets --hosted-zone-id

aws> route53 create-hosted-zone --name --caller-reference 111

aws> s3 ls