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
1
210
AWS CLI で気軽にコスト改善やってみた
JAWS-UG CLI専門支部 #419 シェル基礎1 (入力)
https://jawsug-cli.connpass.com/event/335677/
Kazuki Obata
November 07, 2024
Tweet
Share
More Decks by Kazuki Obata
See All by Kazuki Obata
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
400
KubeCon + CloudNativeCon Japan 2025 Recap
donkomura
0
290
計装を見直してアプリケーションパフォーマンスを改善させた話
donkomura
2
410
自分だけの仮想クラスタを高速かつ効率的に作る kubefork
donkomura
0
210
散らばったトレースを繋げる技術
donkomura
1
740
ウォンテッドリーのインフラチームに加わってみて
donkomura
0
200
入門 KRR
donkomura
0
300
Other Decks in Technology
See All in Technology
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
2
250
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
300
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
64k
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
470
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
0
220
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
250
Android Audio: Beyond Winning On It
atsushieno
0
1.4k
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
22
12k
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
180
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
570
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Embracing the Ebb and Flow
colly
87
4.8k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Documentation Writing (for coders)
carmenintech
74
5k
Optimizing for Happiness
mojombo
379
70k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
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 の量を調査・コスト改善に寄与した話