AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

JAWS-UG CLI専門支部 ハンズオン オンライン参加

本日オンライン開催された JAWS-UG CLI専門支部 #151R AWS CLI入門 に参加したので、自分の気づきをメモ。

なおオンライン会議室は Amazon Chime を使って準備されていました。


151R AWS CLI入門

JAWS-UG CLI専門支部 のオンラインイベントで、今回の講師は HATANO Hirokazu (@tcsh) | Twitter さん。


オンラインハンズオンやってることを知らず、今回が初の参加。

最近AWS CLI触ってるし、どんな人がいるのかなぁとのぞいてみました。

AWS CLI変更の見方

週に3回、最近の巣ごもり期間だと5回!のバージョンアップを繰り返してる aws-cli

変更を掴むオススメとして、 GitHubのChangelog を紹介されていました。

以前は、機能詳細もあったけど、変更が多くなったので、現在はサブコマンド名と概要だけとのこと。


気になるv2


GitHub のブランチを観察してると デフォルトブランチ develop は、まだ1.8.x系。

ブランチ v2 をみると、バージョンアップの頻度が追従していないので、まだメインはv1と考えていいだろうとの話。

また、リファレンスも分離して管理されていることの紹介ももらいました。


個人的には、v2環境は dockerで試験的に作っただけだったので安心(?)。

またおいおい、便利機能などとともにキャッチアップしよう。

利用方法 と APIとの関連

AWS CLIの利用方法 として、大きく2種類のコマンドがあることの紹介。

  • ハイレベル コマンド [s3のみ対応]
    • UNIXライクな出力
    • UNIXライクな入力 (引数指定)
  • APIコマンド [全サービス対応]
    • JSON出力
    • UNIXライクな入力 (パラメーター指定) & JSONによる入力 (JSON指定)

あ、たしかに。 aws s3 だけJSONじゃない。と気づいた。納得です。

APIコマンドのAPIとの関連

APIコマンドの場合 の TIPSとして紹介されてたけど、これ知ってると知らないでは大きな差があると思う。

AWS CLIのサブコマンドは、APIリファレンスの Actions が、ほぼそのままサブコマンド名になってるとの話。

  • 例)
    • api: AcceptReservedInstancesExchangeQuote
    • cli: accept-reserved-instances-exchange-quote

APIリファレンスのActionsがキャメルケースで記述されてるものを、小文字化してハイフンでつないだら AWS CLI のサブコマンド名。

また、CLIリファレンスで情報が足りなければ、APIリファレンスをみればいい。


なるほどー

これなら1度覚えたら2度美味しい?と思えて、モチベーションあがるかも(笑

(ぼそ:英語圏の人には優しいけど、日本人にはちょっと大変)

なお、EC2を例にAction数をカウントしてみたら、違いは1つだった。

  • API: 403 Actions
  • CLI: 402 action

なお、EC2は超巨大なAPIとのこと。VPCも入ってるし、仕方がないのかも。

(リファレンス流し読みできるレベルじゃないですよね)

JSONあたりのTIPS 2つ

CloudFront

このサービスは、JSONファイル指定を使うことが多いとのこと。

引数でできることが少ないため。

    • generate-cli-skeletonでテンプレートを作って編集しましょうとの紹介。
jq

基本的に使う必要はないのだけれどもと(え、そうなの!)

使う必要がないのは、 --query オプションをうまく使えば大抵のことは出来るからとの話だった。

jq は、前述のテンプレートを編集して、別のJSON作るときには必要。

AWS CLIで重要な設定

タブ補完

~/.bashrc に記述しておくと、bash起動時に自動実行される

complete -C aws_completer aws

あー、設定してなかったー

--query

XMLXPathJSON の JAMES-Path。なるほど。

describe系のサブコマンド filter オプションで絞り込みをして、
その結果から queryオプションでノードを取り出す(変数取り込み時に多用)。

ここ、ハンズオンでいくつか実例を説明してくれてたのだけど、後述の理由により手を動かせず。

宿題! > 自分

IAM

IAMすごい重要!

6000 - 7000 API Actionがある、それすべてについて個別にシンプルに設定が可能。

なるほどぉ。

ハンズオンの事前準備資料も、IAMがきちんと設定する内容になっていて、大変参考になりました。

全体を通して

リモート開催というためか、大変ゆったりと進行してもらえました。

自宅環境がノートのシングルモニタだったので、スライドと自分の画面を同時にみれずに、以外に苦労した。

こういう環境も想定してもらえてたのだろうなぁと感謝でした。

資料も良かったけど、各所ででてくるヘビーユーザーならではのTIPSが、すごくためになりました。


ありがとうございました!

その他

参加して気づいたのが、5回ぐらいで一連の流れを用意してくれていること。

僕は、AWS CLIでコマンド叩いたことある人だったので、事前準備なくても理解はできます。

が、事前準備は、事前にやっておいたほうがハンズオン楽しめますね(あたりまえ)

GWだったので油断してたのを反省。