10/14(木)JAWS-UG CLI専門支部 #231R AWS CLI入門 に参加しました。 CLI専門支部にはずっと参加していましたが、復習ブログはしばらく書いていませんでした。 久々になってしまいましたが、ブログ書いていきます。 今回はいつもと違い、座学多めでハンズオン少なめでしたが、 波田野さんのAWS CLIへの熱量がいつもより強くて濃い内容でした。 この記事では座学パートとLTについてを参加レポートとして書いていこうと思います。 ハンズオンの方は別記事に書きました。
目次
イベントページ
AWS CLIについて
AWS CLIの概要
- AWS公式コマンドラインインタフェース
- 以前からあった個別プロダクトを統一したもの
- Pythonの Boto coreライブラリをバックエンドで利用している
- 約280サービスに対応
- 基本的には1サービス1コマンド
- S3のみハイレベルコマンドがある(s3,s3api)
AWS CLIの特徴
- AWSサービスはAPIの集合体
- AWS CLIは基本的にサービスAPIのラッパー
- 最新機能への対応が早い
- バージョン1の方が積極的に更新されている(ほぼ週5回)
- バージョン2は週2回(水・金)
- バージョン1の方が積極的に更新されている(ほぼ週5回)
- ブラウザ(Cloud9、CloudShell)・Linuxなど多様な実行環境
AWSの変更作業にCLIを使う
- マネコンだと何となく理解していればつつがなく作業完了してしまう。
- AWS CLIだと過去の資産を使える。
- マネコンだと処理が隠蔽化されているので、Undoできない。
- CLIだと変更差異が確実にわかるので、Undoできる。
なぜGUIを使う人が多いのか?
- GUIは楽
- 直感的に操作できるから
- グラフィカルな表示は分かりやすいから
それは本当か?
- 突然UI改訂が起こる。
- 手順書修正が追い付かず混乱する。
- 直感に依存することで、論理だったコンピューティングを利用しなくなった可能性がある。
- 情報過剰になりやすく、論理構造が把握しづらい。本質的な理解を妨げる側面もある。
- 何となく、たぶんで接するコンピューティングは「IT」なのか?
- 理解があやふやなまま本質をとらえる機会が得られずにコンピューティングしている「つもり」になりがち。
- 過剰な情報から適切な取捨選択や推論ができないコンピューティングは「IT」なのか?
手順書の工数と品質
AWSとどうつきあいたいのか?
それぞれの特徴
- GUI
- メリット:柔軟性がある。
- デメリット:反復、再現性がない。
- CLI
- メリット:柔軟性、反復再現性がある。
- デメリット:学習コストは高い。
- SDK
- メリット:反復、再現性
- デメリット:柔軟性がない、陳腐化が早い。学習コストは高い。
付き合い方
- AWSで手作業したいときは、GUIとCLI
- 自動化したいときは、CLIとSDK
- 両方に対応できるのはCLI
- CLIを軸にSDKかGUIに展開していくのが良い。
- コストをかけないで良いところをCLIでやるのが良い。
AWS CLIの導入と更新
- バージョン1
- デフォルトブランチ
- 週5回リリース
- Cloud9、Amazon Linux2標準
- パッケージ管理:pip3
- シンプル
バージョン2
- 週2回リリース
- CloudShell標準
- パッケージ管理:tar
- 多機能・肥大
ハンズオンはバージョン1を利用
バージョン1の導入
- Amazon Linux2では導入済
- PIPでインストール
sudo pip install awscli==1.20.1
(バージョン指定する必要があるならば、==<バージョン数>が必要)
aws --version
でバージョン確認
AWS CLIの構成要素
AWS CLIの利用方法
AWS CLIの入力
書式
aws s3api list-objects --bucket hoge
AWS CLIの出力
- サーバサイドフィルタ
- filterパラメータ
- describe系コマンドは、filterパラメータが定義されている。
- 定義されていないものはフィルタリングできない。
- filterパラメータ
- クライアントサイドフィルタ
AWS学習の中長期戦略
- 早めにAWSと付き合う
- 公式トレーニングを受ける
- 公式ドキュメントと付き合う
- ビジネスで使ってみる
- ビジネスで使えそうなプロダクトをつまみ食いする。
- すべてのプロダクトを使うのは非現実的
- 特徴ある使い方出来る人が強い。
- 芋づる式に関連プロダクトに手を出していくと、その領域では数少ないAWSプロフェッショナルになれる
LT
バージョニング有効なS3バケットのオブジェクト一括削除(JQコマンド) emiさん
※資料が公開されたことを確認出来たら、追記します。
- バージョニング有効なS3バケットの削除は、オブジェクト(過去バージョン含む)と削除マーカーすべての削除が必要
- バージョニング有効なS3オブジェクトをたくさん消すのは大変
- JQコマンドが使える
- Cloud9環境にはないので
sudo yum -yu install jq
でインストールが必要 - CloudShellにはインストールされている
- Cloud9環境にはないので
- JQコマンドが使える
list-object-version
とjqコマンドでバージョンIDを一括取得- 削除マーカーなしのオブジェクトIDをすべてを取得できる。
- 削除マーカーを指定してオブジェクトID取得もできる。
- フォルダの削除マーカーはマネコンからは見えない。
- オブジェクトの一括削除
最後に
応用情報の受験も終わり、AWS SysOps Administrator Associateの勉強に重点を戻したところで今回のハンズオンに参加できた良かったです。 改めてAWS CLIを勉強することのメリットを見直すことができて、またAWSの勉強へのやる気が出てきました。 AWSの勉強の際は、GUIからだけでなくAWS CLIもできる限り取り組もうと思いました。