Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSをCLIで理解したい! / I want to understand AWS usin...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
める
March 01, 2026
Technology
1.3k
2
Share
AWSをCLIで理解したい! / I want to understand AWS using the CLI
2026/02/28 JAWS-UG 名古屋 2月回でのLT内容です。
める
March 01, 2026
More Decks by める
See All by める
AWS ドキュメントをあるいてみた / Walk on AWS documents
mel_27
0
220
Amazon FSx for ONTAPを 試してみた / Try Amazon FSx for ONTAP
mel_27
0
940
AWS Directory ServiceとFSxをCLIでさわってみた / AWS Directry Service and FSx for Windows Server
mel_27
0
620
Other Decks in Technology
See All in Technology
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
270
Oracle Cloud Infrastructure:2026年5月度サービス・アップデート
oracle4engineer
PRO
1
270
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
280
Kiro CLI v2.0.0がやってきた!
kentapapa
0
230
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
980
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
100
組織の中で自分を経営する技術
shoota
0
230
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
0
150
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
550
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
280
APIテストとは?
nagix
0
160
プラットフォームエンジニア ワークショップ/ platform-workshop
databricksjapan
0
140
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Paper Plane
katiecoart
PRO
1
50k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
KATA
mclloyd
PRO
35
15k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
180
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Mind Mapping
helmedeiros
PRO
1
220
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
150
WCS-LA-2024
lcolladotor
0
610
Documentation Writing (for coders)
carmenintech
77
5.4k
Transcript
AWSをCLIで理解したい! める(@mel________27) 2026/02/28 JAWS-UG 名古屋
Who am I? 名前:める(@mel________27) 所属:三重県の某SIer 入社に伴って三重県へ来たので、三重県民は12年目 業務:インフラエンジニア 好きなサービス:AWS Cloud9、AWS CloudShell、AWS
IAM
はじめての…… 実は、はじめてのJAWS-UG参加、名古屋支部でした!!!(調べたところ、2018年) 本日、はじめてオフラインでのLTです!
AWSをCLIで理解したい! なぜCLIか? ・手順を作成する場合、GUIの変更を考慮しなくてよい ・GUIだとある程度何となくでも操作できる& バックグラウンドで自動で作成してくれるリソースもある →いざトラブルがあったときに、なんとなく作ったリソースで、対応できるのか? 、、、というのはある程度建前で、AWSを学ぼうと(ちゃんと)し始めた当初 JAWS-UG CLI専門支部のハンズオンに出会ったことによる (そもそも、業務でLinuxサーバはさわるため、bashとの親和性はあったかも)
やったこと① 「Amazon Web Services基礎からのネットワーク&サーバー構築」の書籍を ひととおり操作のうえで、コマンドでの動作に書き直した
やったこと② Network Firewallを構築するにあたり、下記の手順をCLI化して、そのまま業務活用 https://github.com/harunobukameda/AWS-Network-Firewall
やったこと③ Transit Gatewayを理解するために手順をCLI化し、これも一部業務活用 https://catalog.us-east-1.prod.workshops.aws/workshops/e0d1c19d-c80b-4695-a3fc- 5c4a25132f47/ja-JP/
業務での活用① 実際の構築作業・設定変更などの運用作業について、CLIで手順化したうえで実行。 ・Direct Connectの設定 ・Transit Gatewayの設定/Recource Access Managerでの共有 ・Site-To-Site VPNの設定
・Route 53 Resolverの設定 ・EC2の作業 ・IMDSのv1→v2への変更 ・終了保護の一括設定 ・IAMロールの作成
業務での活用② 作業手順の提供・フォローの依頼があった場合、CLIでの手順を提供して実行してもらう →GUIのアップデートに追随しなくていい ※ただし、作業対象者が最低限AWS CLIの実行環境を整備できることが前提。 このため作業対象者によっては、GUIベースでの手順を展開することもある。 (CloudShellがあればCloudShellでよいが、CloudShellが使えない環境があるので)
業務での活用③ トラブルシュート対応 指定のルートが追加されているか確認してほしい時、下記のコマンドの実行結果を提示依頼 # aws ec2 describe-subnets ¥ --filters Name=vpc-id,Values=${VPC_ID}
--query "Subnets[].SubnetId" --output text | while read subnetid do for subnet in `echo ${subnetid}`; ¥ do ¥ routetableid=$( aws ec2 describe-route-tables ¥ --filters Name=association.subnet-id,Values=${subnet} ¥ --query "RouteTables[].RouteTableId" --output text ¥ ) && echo ${routetableid} && aws ec2 describe-route-tables ¥ --filters Name=vpc-id,Values=${VPC_ID} Name=route-table-id,Values=${routetableid} ¥ --query "RouteTables[].Routes[?DestinationCidrBlock == ¥`${ADD_ROUTE_CIDR}¥`]" ¥ ; ¥ done done
サービス理解にあたりよかったこと 画面での操作以上にドキュメントを読み込むので、理解が深まる(気がする) 特にIAM周りは、はじめたての頃にめちゃくちゃ詰まった 初学者のタイミングでしっかり詰まって解決の過程で理解につながったのがよかった IAMポリシー、IAMロール、信頼ポリシー(信頼されたエンティティ)、 インスタンスプロファイル など
業務利用にあたってよかったこと 類似の操作をたくさんしたいときに楽ができる(forやwhileでくりかえす) 事前に変数を設定したCLIスクリプトを作成しておくことで 作業時の入力ミスやオプションの指定ミスを防げる VPC IDやインスタンス IDが設定に必要な場合、タグ名から値を取得することで選択誤りが減る 作業ログをテキストで残せる(GUIのハードコピーを取らなくていい) オプションの設定意図がわかる&きかれてもある程度答えることができる 必要な権限が作業コマンドと紐づくので、作業にかかる最小権限のロール作成を目指せる
やっていてつらいこと オプションの形式によって、うまく指定できないことがある(入れ子になっているときなど) サービスによってはfilterオプションがあるようなものもあるが、 当該オプションがなく、JMASPATHのクエリで何とかするしかないものもある サービスによって、作成済みリソースのARNをオプションに指定する必要があるものの コマンドの出力結果には出てこないものもある(どうして……) →ARNの形式を読み解き、固定文字列とIDなどを組み合わせる形で設定 画面での構築より、(一回だけ、などであれば)めちゃ時間はかかる
CLI vs IaC 業務利用にかかり、CloudFormationやCDKを利用するにかかる学習コスト → 現時点での作業要員(自分含む)としてはbashの方が適性が高い とはいえ、構築頻度の高いものは、Yamlで作成することもある CDKまではまだハードルが高い 上記に関連し、IaCで作成したリソースをメンテナンスするコスト →何をどこで設定しているかわからず、結局使い捨てになる
Replacementが発生するかどうかの判断 CLIのスクリプトも、できるだけリソース単位で作成する →少し面倒だが、他への応用が利く(変数だけ変えて部分的に使う、など)
今後の展望 オプションの指定方法は模索中 →事前にすべてJSONに出力しておいて、ログとセットでJSONを保存しておく……? 作業準備の手間は増えるが、実際の変更・構築作業の短縮 →最近はJAWS-UG CLI専門支部では変数設定をテキスト化しておく手順になっているので その方がいいのかも? あとからの視認性も含めて検討したい スクリプトの作成の効率化 →現状Markdownファイルに書いているが、もう少し効率化したい
(CLI専門支部ではSphinxで手順の作成を自動化しているようなので、 そのような形が理想。実行時に扱いやすい形は?)
まとめ AWS CLIはいいぞ! 遠回りかもしれないが、小手先のものでない深い理解をしていきたい