omuronの雑記

個人的な備忘録

「JAWS-UG CLI専門支部 #155R EC2入門」受講で知った AWS コンプリータ

jawsug-cli.connpass.com

皆さん大好き EC2 です。
資料は connpass からリンクされている こちら

前回の S3 入門の記事は こちら

AWS コンプリータ

ハンズオンに入る前に話題にできてた AWS コンプリータなんですが、これ全く知りませんでした。

docs.aws.amazon.com

bash – 組み込みのコマンド complete を使用します。

$ complete -C '/usr/local/aws/bin/aws_completer' aws

AWS コンプリータを設定すると、大量にある aws コマンドのオプションがタブ補完が効くようになります。
自身の環境( macOS )を検索するとちゃんと /usr/local/aws/bin/aws_completer に実行ファイルがありました。
bash を利用しているのであれば ~/.bashrc に設定すれば、次回以降補完が効くようになります。

$  echo "complete -C '/usr/local/aws/bin/aws_completer' aws" >> ~/.bashrc

上記を設定してターミナルを再起動したあとは、例えば $ aws e でタブキーを叩くと

$ aws e
ec2                 elasticache         emr 
ecr                 elasticbeanstalk    es 
ecs                 elastictranscoder   events
efs                 elb                 
eks                 elbv2  

ちゃんと補完候補がでてきました。
$ aws ec2 でタブを叩くと

$ aws ec2 
Display all 329 possibilities? (y or n)

accept-reserved-instances-exchange-quote 
accept-transit-gateway-vpc-attachment 
accept-vpc-endpoint-connections 
...

と、ちゃんと ec2 のオプションが大量に出てきました。

恥ずかしながら 20 年コマンドラインを叩いているのに bash の組込コマンド complete も知りませんでした。
bash の補完に使うコマンドなんですね。

所感

肝心のハンズオンをすっ飛ばした感想で申し訳ないんですが、このような思いも寄らない知見を得れるのは、勉強会に参加する喜びの一つですね。
ハンズオンも知ってることは多かったものの ユーザーデータの作成 とかは、普段使わないのでもちろん勉強になりました。
ユーザーデータで、「EC2 起動時に内部で aws コマンドを叩いて自身で EIP を設定するようにするのとかエモくないですか」(実際に話した言葉とは違うので雰囲気だけはこんな感じだったかと)はとても共感できました。
能動的に EC2 が自身の設定をしていくのすごいエモい。