AWS CLI Ailas を使って入力を簡単にする

  • 2019.10.17
  • AWS
AWS CLI Ailas を使って入力を簡単にする

はじめに

AWS CLIを使っていて毎回長いコマンドを入力するのが結構大変です。それで補完機能を使ったりしているのですが、もっと簡単にするには Ailas を使うと良いです。

Aliasの設定準備

まずはAlias設定用のファイルを作成します。

~/.aws/cli/alias

cliというディレクトリはないので、まずこのディレクトリを作成して、次にaliasというファイルを作成します。

Aliasのサンプル

[toplevel]
desc-ins = ec2 describe-instances

aliasファイルの中にこのように記述します。そうすると次のように実行するだけで、 aws ec2 describe-instances と実行したのと同じことができます。

$ aws desc-ins

引数を渡す方法

[toplevel]
desc-ins-vpc = 
  !f() {
    aws ec2 describe-instances --filters Name=vpc-id,Values="${1}" --query 'Reservations[].Instances[].{InstanceId:InstanceId,State:State.Name,AvailabirityZone:Placement.AvailabilityZone,PrivateDnsName:PrivateDnsName,PrivateIpAddress:PrivateIpAddress,PublicDnsName:PublicDnsName,PublicIpAddress:PublicIpAddress,Name:Tags[?Key==`Name`] | [0].Value}'
  }; f

このような Alias を作成します。そうすると次のように実行すると指定したvpcidを元にEC2インスタンスの情報を特定の項目に絞って表示してくれます。すごく便利です。

$ vpc_id=vpc-123455667788
$ aws desc-ins-vpc $vpc_id
[
    {
        "InstanceId": "i-004f1416b8698713c",
        "State": "running",
        "AvailabirityZone": "ap-northeast-1c",
        "PrivateDnsName": "ip-10-1-1-142.ap-northeast-1.compute.internal",
        "PrivateIpAddress": "10.1.1.142",
        "PublicDnsName": "ec2-18-179-24-82.ap-northeast-1.compute.amazonaws.com",
        "PublicIpAddress": "18.179.24.82",
        "Name": null
    },
    {
        "InstanceId": "i-067f774504d9dd09b",
        "State": "running",
        "AvailabirityZone": "ap-northeast-1a",
        "PrivateDnsName": "ip-10-1-0-136.ap-northeast-1.compute.internal",
        "PrivateIpAddress": "10.1.0.136",
        "PublicDnsName": "ec2-54-250-195-90.ap-northeast-1.compute.amazonaws.com",
        "PublicIpAddress": "54.250.195.90",
        "Name": null
    }
]