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
170
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
計装を見直してアプリケーションパフォーマンスを改善させた話
donkomura
2
280
自分だけの仮想クラスタを高速かつ効率的に作る kubefork
donkomura
0
170
散らばったトレースを繋げる技術
donkomura
1
650
ウォンテッドリーのインフラチームに加わってみて
donkomura
0
160
入門 KRR
donkomura
0
250
Other Decks in Technology
See All in Technology
Introduction to Bill One Development Engineer
sansan33
PRO
0
230
テストを実施する前に考えるべきテストの話 / Thinking About Testing Before You Test
nihonbuson
PRO
10
1.7k
OTel meets Wasm: プラグイン機構としてのWebAssemblyから見る次世代のObservability
lycorptech_jp
PRO
0
190
VPC Reachability AnalyzerAnalyzer~実務での使いどころ
masakiokuda
1
300
会社員しながら本を書いてきた知見の共有
sat
PRO
2
590
CloudTrailも、GuardDutyも、VPC Flow logsも… ログ多すぎ問題の整理術
nikuyoshi
4
520
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
360k
AIのための オンボーディングドキュメントを整備する - hirotea
hirotea
5
1.7k
Azure の裏側を支える SRE の世界
tsubasaxzzz
2
490
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
3
1.5k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
37k
Cloud Run を解剖して コンテナ監視を考える / Breaking Down Cloud Run to Rethink Container Monitoring
aoto
PRO
0
110
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
33
6.6k
Art, The Web, and Tiny UX
lynnandtonic
298
21k
Fireside Chat
paigeccino
37
3.5k
The Cult of Friendly URLs
andyhume
78
6.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
The Cost Of JavaScript in 2023
addyosmani
49
7.9k
Unsuck your backbone
ammeep
671
58k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
Producing Creativity
orderedlist
PRO
344
40k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.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 の量を調査・コスト改善に寄与した話