Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CLI skeletonのススメ / An Encouragement of CLI skel...
Search
miztch
June 12, 2025
Programming
130
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CLI skeletonのススメ / An Encouragement of CLI skeleton
20250612 JAWS-UG CLI専門支部 #433 LT
miztch
June 12, 2025
Other Decks in Programming
See All in Programming
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
170
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
380
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
200
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
420
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
Next.js: The final boss of Web Performance
guaca
0
220
Domain-Driven Transformation
hschwentner
2
2.3k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
490
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Test your architecture with Archunit
thirion
2
2.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Building AI with AI
inesmontani
PRO
1
1.3k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
A better future with KSS
kneath
240
18k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Transcript
CLI skeletons のススメ 2025/06/12 JAWS-UG CLI専門支部 #433 miztch
🏢 kaonavi, inc. 👷 Infrastructure Engineer 💕 Lambda, EventBridge (Input
Transformer) 🖼 Museum / 🎹 DTM / 📚 Tsundoku / 🐱 Cats miztch @miztch @m1ztch
🤯 aws autoscaling create-auto-scaling-group $ aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
"my-asg" \ --launch-template LaunchTemplateId="lt-12345678901234567",Version='$Latest' \ --min-size 2 --max-size 10 --desired-capacity 4 \ --default-cooldown 300 \ --health-check-type "ELB" --health-check-grace-period 300 \ --vpc-zone-identifier "subnet-12345678,subnet-87654321,subnet-11111111" \ --target-group-arns "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/m y-targets/1234567890123456" \
• 指定可能なパラメータがこれでもかというぐらいに豊富 • 特に Create 系の Action は、必須のパラメータが多い ◦ 結果的にコマンドがとても長くなる
CLIあるある
• 宣言型な IaC tools でリソースを作成・管理することは今や一般的 ◦ Terraform, CDK, CloudFormation, Pulumi
• しかし、すべてを完全に管理しきれない状況は必ず起きる ◦ 宣言された状態と実リソースに Drift が発生する ▪ アプリケーションデプロイ → ECSのタスク定義変更 ▪ CodeDeploy の B/G deploy → AutoScaling グループ複製 ◦ Lifecycle が異なると Ignore するか別の仕組みで管理したい ▪ このリソースだけは CloudFormation で / CLI で 時は2025年
• Batch コンピューティング環境で利用する AMI を更新する ◦ ECS on EC2 /
ECS 最適化 AMIを利用 • Batch コンピューティング環境の配分戦略 (Allocation Strategy) ◦ オンデマンドインスタンスの場合、以下の2種類から選択 ▪ BEST_FIT ▪ BEST_FIT_PROGRESSIVE ◦ 更新対象環境の配分戦略はデフォルト値の BEST_FIT 事例 : Batch コンピューティング環境 Update
• 配分戦略によってコンピューティング環境の更新方法が異なる ◦ BEST_FIT : ▪ 起動テンプレートの新バージョンを作成 (AMI を変更) ▪
新規コンピューティング環境を作成 ▪ ジョブキューに登録して入れ替え ◦ BEST_FIT_PROGRESSIVE : ▪ 起動テンプレートの新バージョンを作成 (AMI を変更) ▪ 既存コンピューティング環境を更新 事例 : Batch コンピューティング環境 Update
• コンピューティング環境の入れ替えに create / delete が必要 ◦ 起動テンプレートの新バージョンを作成 ◦ 起動テンプレートを利用したコンピューティング環境を作成
◦ 作成したコンピューティング環境をジョブキューに関連付け ◦ 既存のコンピューティング環境をジョブキューから切り離し ◦ 切り離したコンピューティング環境を削除 • さらに、更新対象環境は諸事情で IaC で管理されていない 🤯 事例 : Batch コンピューティング環境 Update
• コンピューティング環境の入れ替えに create / delete が必要 ◦ aws ec2 create-launch-template-version
◦ aws batch create-compute-environment ◦ aws batch update-job-queue ◦ aws batch update-job-queue ◦ aws batch delete-compute-environment • IaC で管理されていないので、CLI でやるしかない 😰 ◦ create のアクションと向き合うことに 事例 : Batch コンピューティング環境 Update
• JSON 形式のファイルを生成するパラメータ ◦ 編集および入力できるすべてのパラメータが含まれている • 加工して --cli-input-json | --cli-input-yaml
の入力ファ イルとして利用する --generate-cli-skeleton https://awscli.amazonaws.com/v2/documentation/api/latest/reference/batch/create-compute-environment.html
--generate-cli-skeleton & --cli-input-json # skeleton を出力 $ aws batch create-compute-environment
--generate-cli-skeleton > input.json $ cat input.json { "computeEnvironmentName": "", "type": "MANAGED", "state": "ENABLED", "unmanagedvCpus": 0, "computeResources": { "type": "EC2", "allocationStrategy": "BEST_FIT", … } # skeletonに必要なパラメータを埋めて、--cli-input-json で入力値として利用する $ aws batch create-compute-environment --cli-input-json file://input_filled.json
• --generate-cli-skeleton yaml-input ◦ skeleton を yaml 形式で出力 ◦ 実行時には
--cli-input-yaml でファイルを指定する ◦ コメントにパラメータの説明があり、編集しやすい 😃 --cli-input-yaml がオススメ
• バージョン管理しておくことで再利用しやすい • レビューがしやすい • (YAMLなら)コメントも付けられ、パラメータの意図が分かりやすい チームにもオススメ
• AWS CLI の公式ドキュメント を読むと面白い ◦ https://docs.aws.amazon.com/cli/latest/userguide ◦ skeleton 以外の便利機能
/ 面白機能?もあるぞ ▪ alias • .gitconfig ライクにエイリアスを設定可能 ▪ wizard • 対話的にリソースを作成(一部リソースのみサポート) ◦ DynamoDB, Lambda, IAM Role, Events Rule appendix : Official Docs
Thank you!