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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
める
March 01, 2026
Technology
2
1.1k
AWSをCLIで理解したい! / I want to understand AWS using the CLI
2026/02/28 JAWS-UG 名古屋 2月回でのLT内容です。
める
March 01, 2026
Tweet
Share
More Decks by める
See All by める
AWS ドキュメントをあるいてみた / Walk on AWS documents
mel_27
0
210
Amazon FSx for ONTAPを 試してみた / Try Amazon FSx for ONTAP
mel_27
0
920
AWS Directory ServiceとFSxをCLIでさわってみた / AWS Directry Service and FSx for Windows Server
mel_27
0
600
Other Decks in Technology
See All in Technology
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
110
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
340
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
370
Amazon Qはアマコネで頑張っています〜 Amazon Q in Connectについて〜
yama3133
1
130
Kiro Meetup #7 Kiro アップデート (2025/12/15〜2026/3/20)
katzueno
2
250
品質を経営にどう語るか #jassttokyo / Communicating the Strategic Value of Quality to Executive Leadership
kyonmm
PRO
3
1.2k
スピンアウト講座02_ファイル管理
overflowinc
0
1.4k
ThetaOS - A Mythical Machine comes Alive
aslander
0
180
Phase07_実務適用
overflowinc
0
1.9k
AgentCoreとLINEを使った飲食店おすすめアプリを作ってみた
yakumo
2
250
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
190
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
300
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
From π to Pie charts
rasagy
0
160
Discover your Explorer Soul
emna__ayadi
2
1.1k
KATA
mclloyd
PRO
35
15k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
210
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
Amusing Abliteration
ianozsvald
0
140
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
95
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
130
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Spectacular Lies of Maps
axbom
PRO
1
650
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
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はいいぞ! 遠回りかもしれないが、小手先のものでない深い理解をしていきたい