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 で気軽にコスト改善やってみた
Search
Kazuki Obata
November 07, 2024
Technology
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CLI で気軽にコスト改善やってみた
JAWS-UG CLI専門支部 #419 シェル基礎1 (入力)
https://jawsug-cli.connpass.com/event/335677/
Kazuki Obata
November 07, 2024
More Decks by Kazuki Obata
See All by Kazuki Obata
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
680
KubeCon + CloudNativeCon Japan 2025 Recap
donkomura
0
800
計装を見直してアプリケーションパフォーマンスを改善させた話
donkomura
2
490
自分だけの仮想クラスタを高速かつ効率的に作る kubefork
donkomura
0
320
散らばったトレースを繋げる技術
donkomura
1
860
ウォンテッドリーのインフラチームに加わってみて
donkomura
0
270
入門 KRR
donkomura
0
390
Other Decks in Technology
See All in Technology
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.2k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
TypeScript Compiler APIとPHP-Parserを活用し、TypeScriptとPHPで型を共有する
shuta13
0
360
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
400
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
0
120
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
25
15k
AgentGatewayを試してみたかった
tkikuchi
0
120
そのPoC、何を検証したつもりでしたか? AIプロダクトの価値検証で陥った落とし穴
techtekt
PRO
0
150
運用を見据えたAIエージェント設計実践
amacbee
1
3.1k
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
590
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
8
390
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
840
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Odyssey Design
rkendrick25
PRO
2
690
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
550
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
190
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Transcript
© 2024 Wantedly, Inc. AWS CLI で気軽に コスト改善やってみた JAWS-UG CLI専門支部
#419 Nov. 7 - Kazuki Obata @donkomura
© 2024 Wantedly, Inc. 自己紹介 巨畠 和樹 (Obata Kazuki) @donkomura_
Wantedly, Inc. (2024/09~) インフラエンジニア #AWS歴2年目 #SAA #AWS Organizations #ボルダリング
© 2024 Wantedly, Inc. 解決したい課題 - Amazon S3 の multipart
upload - 大きなS3オブジェクトを分割してアップロードできる機能 - 未完了のもの課金対象になる - アップロードに失敗すると未完了の multipart uploads が残る - ストレージクラスと同じだけ料金がかかる - ムダな費用が発生しているのでは...?? - 未完了の multipart uploads が実はめっちゃ溜まってる...?? → 量を調べて削除したい 未完了の multipart uploads を削除したい
© 2024 Wantedly, Inc. 課題 • マネコンで multipart upload を一覧できない
→ AWS CLI でシュッと一覧したい(データ量も知りたい) どれぐらい multipart upload が溜まっているか知りたい https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/list-mpu.html
© 2024 Wantedly, Inc. 調査 1. S3 バケットを一覧する ◦ aws
s3api list-buckets --query "Buckets[].Name" 2. バケットで進行中の multipart upload 操作を一覧する ◦ aws s3api list-multipart-uploads --bucket "$bucket" --query "Uploads[*].[Key,UploadId]" ◦ 最大 1,000件/req な点に注意 3. 未完了の multipart upload の詳細を一覧する ◦ aws s3api list-parts --bucket "$bucket" --key "$key" --upload-id "$upload_id" --query "Parts[*].Size" ◦ 最大 1,000件/req な点に注意 AWS CLI を活用してコストを試算する
© 2024 Wantedly, Inc. 試算する • 未完了な multipart upload のデータ量を求める
◦ cat data | cut -f3 -d, | \ awk '{s+=$1} END {print s " bytes"; split("B KB MB GB TB",unit); for(i=0; s>=1000 && i<5; i++) s/=1000; printf "%.2f %s\n", s, unit[i+1]}' • 費用を計算する ◦ ストレージタイプが「S3 標準」ならストレージ料金は 0.025 USD/GB ぐらい ◦ (データ量) x 0.025 = (未完了の multipart upload の費用) USD ◦ 180 GB ぐらいあったので、すべて消すと 700円ぐらい節約できる シェル芸をする
© 2024 Wantedly, Inc. 対処 • 未完了の multipart uploads を削除する
◦ aws s3api abort-multipart-upload \ --bucket $bucket --key $key --upload-id $upload_id • 今回はバケットライフサイクル設定を入れた ◦ AbortIncompleteMultipartUpload アクション ◦ Terraform で設定した ◦ AWS CLI で設定することもできる 未完了の multipart uploads を削除する
© 2024 Wantedly, Inc. まとめ • AWS CLI で時間をかけずにコストを見積もれた ◦
作業に 1h も使っていない • 多少スクリプトとして書く必要がある ◦ list の場合は1回で取得できる数が制限される ◦ 制限されていたら Marker を渡して再度実行する必要がある • AWS CLI で気軽にコスト改善できた 🚀 ◦ わずかだが、コスト改善に寄与 AWS CLI で未完了 multipart uploads の量を調査・コスト改善に寄与した話