Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
S3のライフサイクルをAmazon Braketで最新化してみる
Search
Shuya Sawa
June 05, 2024
Technology
0
15
S3のライフサイクルをAmazon Braketで最新化してみる
2024/6/5 Storage-JAWS #4
https://storage-jaws.connpass.com/event/319243/
Shuya Sawa
June 05, 2024
Tweet
Share
More Decks by Shuya Sawa
See All by Shuya Sawa
Q Developerの最新動向
shuyasawa
3
600
Apache Icebergの解説とAWSでの運用
shuyasawa
1
110
S3 Metadataの仕組みと活用方法
shuyasawa
0
25
Other Decks in Technology
See All in Technology
202512_AIoT.pdf
iotcomjpadmin
0
140
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
510
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
390
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
180
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
1.9k
特別捜査官等研修会
nomizone
0
570
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
5
850
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
170
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
460
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
AR Guitar: Expanding Guitar Performance from a Live House to Urban Space
ekito_station
0
220
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
160
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The browser strikes back
jonoalderson
0
120
Odyssey Design
rkendrick25
PRO
0
440
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
From π to Pie charts
rasagy
0
91
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
28
Color Theory Basics | Prateek | Gurzu
gurzu
0
150
Embracing the Ebb and Flow
colly
88
4.9k
KATA
mclloyd
PRO
33
15k
My Coaching Mixtape
mlcsv
0
13
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
89
AI: The stuff that nobody shows you
jnunemaker
PRO
1
24
Transcript
S3のライフサイクルを Amazon Braketで最適化してみる 2024/6/5 Storage JAWS #4 IBM Japan /
Shuya Sawa
適切なS3クラスの検討例 3 アクセス頻度が 予測できる? 分析可能な 既存データがある? S3 Intelligent-Tiering の適用 S3
ストレージクラス分析 + ライフサイクルルール設定 ????? 適切なライフサイクルルールを適用することで、S3のコストを最適化することができる。 一方で新規構築データに対する適切なS3クラスを設定することに難しさは残る。 No Yes No Yes
適切なS3クラスの検討例 4 アクセス頻度が 予測できる? 分析可能な 既存データがある? S3 Intelligent-Tiering の適用 S3
ストレージクラス分析 + ライフサイクルルール設定 ????? 適切なライフサイクルルールを適用することで、S3のコストを最適化することができる。 一方で新規構築データに対する適切なS3クラスを設定することに難しさは残る。 No Yes No Yes とりあえずS3 Intelligent-Tieringでいいのでは…?
適切なS3クラスの検討例 5 アクセス頻度が 予測できる? 分析可能な 既存データがある? S3 Intelligent-Tiering の適用 S3
ストレージクラス分析 + ライフサイクルルール設定 ????? 適切なライフサイクルルールを適用することで、S3のコストを最適化することができる。 一方で新規構築データに対する適切なS3クラスを設定することに難しさは残る。 No Yes No Yes 前回のStorage JAWS#3 のおさらい Storage-JAWS運営 藤原さん Amazon GuardDutyを有効化していると、 脅威検出のためのアクセスが継続的に行われるため、 Intelligent-Tiringは階層の移動が不要と判断し てしまい、高頻度アクセス階層からオブジェクトの移動 ができないことがあった…
適切なS3クラスの検討例 6 アクセス頻度が 予測できる? 分析可能な 既存データがある? S3 Intelligent-Tiering の適用 S3
ストレージクラス分析 + ライフサイクルルール設定 ????? 適切なライフサイクルルールを適用することで、S3のコストを最適化することができる。 一方で新規構築データに対する適切なS3クラスを設定することに難しさは残る。 No Yes No Yes 本日のテーマ 事前にシミュレーションして ライフサイクルルールを検討 する
7 新しい角度から S3ライフサイクルを 検討したい! 01 最新の技術を 活用してみたい! 02 最適なライフ サイクルルールを
見つけたい! 03 今回の目的
やりたいことの具体化 8 S3 Standard S3 Standard-IA S3 Glacier Instant Retrieval
全体データ量 1000 GB 取りうる ストレージクラス • S3 Standard • S3 Standard-IA • S3 Glacier Instant Retrieval Get Request数/ 月 • 10万~1憶 Put Request数/ 月 • 10万~1000万 ※オブジェクト単位でのアクセスの頻度の差はないものとする Objects 1000 GB GET/PUT Requests from same region どの配分がコストを最小化できるのか? コスト① 保管コスト コスト② リクエストコスト クラス配分の最適化 リクエストを変数として各リクエストに対して どの配分が適切なのかシミュレーションする 何GBずつ分ければ イイの…?
【参考】 S3のコスト 9 S3 Standard S3 Standard IA S3 Glacier
Instant Retrieval 保管コスト [USD / GB] 0.025 0.0138 0.005 GET リクエスト [USD / GETリクエスト数] 0.00000037 0.000001 0.00001 PUT リクエスト [USD / PUTリクエスト数] 0.0000047 0.00001 0.00002 同じリージョンからのアクセスを想定しているためデータ転送量は考慮対象外 保管コストとリクエストコストはトレードオフの関係性がある
組み合わせ最適化問題として考える 組み合わせ最適化とは… 様々な制約下で多くの選択肢の中から、ある指標(価値)を最も良くする変数の値(組合せ)を求めること 10 例) ナップサック問題 価値 7 重さ 10
価値 2 重さ 4 価値 9 重さ 5 価値 4 重さ 1 最大容量 15 どの組み合わせが価値を 最大化できるのか?
組み合わせ最適化問題として考える 11 クラス Standard 容量 100 GB コスト xxx 容量
1000GB S3ストレージクラスの組み合わせを以下のように考える クラス Standard 容量 200 GB コスト xxx クラス Standard 容量 400 GB コスト xxx クラス Standard 容量 800 GB コスト xxx クラス IA 容量 100 GB コスト xxx クラス IA 容量 200 GB コスト xxx クラス IA 容量 400 GB コスト xxx クラス IA 容量 800 GB コスト xxx クラス Glacier 容量 100 GB コスト xxx クラス Glacier 容量 200 GB コスト xxx クラス Glacier 容量 400 GB コスト xxx クラス Glacier 容量 800 GB コスト xxx
S3ストレージクラスの組み合わせを以下のように考える 組み合わせ最適化問題として考える 12 容量 1000GB クラス IA 容量 100 GB
コスト xxx クラス IA 容量 200 GB コスト xxx クラス IA 容量 400 GB コスト xxx クラス IA 容量 800 GB コスト xxx クラス Glacier 容量 100 GB コスト xxx クラス Glacier 容量 200 GB コスト xxx クラス Glacier 容量 400 GB コスト xxx クラス Glacier 容量 800 GB コスト xxx クラス Standard 容量 100 GB コスト xxx クラス Standard 容量 200 GB コスト xxx クラス Standard 容量 400 GB コスト xxx クラス Standard 容量 800 GB コスト xxx これらを組み合わせることで100 ~ 1000を再現可能 容量を設定 保管コスト + リクエストコスト
S3ストレージクラスの組み合わせを以下のように考える 組み合わせ最適化問題として考える 13 容量 1000GB クラス Standard 容量 200 GB
コスト xxx クラス Standard 容量 400 GB コスト xxx クラス Standard 容量 800 GB コスト xxx クラス IA 容量 200 GB コスト xxx クラス IA 容量 400 GB コスト xxx クラス IA 容量 800 GB コスト xxx クラス Glacier 容量 200 GB コスト xxx クラス Glacier 容量 400 GB コスト xxx クラス Glacier 容量 800 GB コスト xxx クラス Standard 容量 100 GB コスト xxx クラス IA 容量 100 GB コスト xxx クラス Glacier 容量 100 GB コスト xxx ストレージクラスを設定
S3ストレージクラスの組み合わせを以下のように考える 組み合わせ最適化問題として考える 14 クラス Standard 容量 100 GB コスト xxx
クラス Standard 容量 400 GB コスト xxx クラス Standard 容量 800 GB コスト xxx クラス IA 容量 200 GB コスト xxx クラス IA 容量 800 GB コスト xxx クラス Glacier 容量 400 GB コスト xxx クラス Glacier 容量 800 GB コスト xxx 容量 1000GB クラス Standard 容量 200 GB コスト xxx クラス IA 容量 100 GB コスト xxx クラス IA 容量 400 GB コスト xxx クラス Glacier 容量 100 GB コスト xxx クラス Glacier 容量 200 GB コスト xxx 例えば … Standard: 200 GB IA: 500 GB Glacier: 300 GB
Amazon Braketとは 15 Amazon Braketとはフルマネージド量子コンピューティングサービス [AWS Webinar]Amazon Braket の使い⽅とクラウド量⼦コンピューティング活⽤事例 https://pages.awscloud.com/rs/112-TZM-766/images/webinar-hpc-20221027.pdf
量子コンピュータの計算方式 16 量子コンピュータとCMOSアニーリング~量子コンピュータの“今”と、半導体技術で大規模最適化計算に挑むCMOSアニーリング~ https://www.hitachi.co.jp/products/it/finance/insights/essay/2109-cmos_01.html 従来のコンピュータのビットを量子ビットで置き換えた量子ゲートウェイ方式を利用
量子近似最適化アルゴリズム(QAOA) QAOA (Quantum Approximation Optimization Algorithm) とは 量子ゲート方式で組み合わせ最適化を行うためのアルゴリズム 17 Step
1 : QUBO(Quadratic Unconstrained Binary Optimization)形式で定式化 • ハミルトニアン (𝐻) = 価値 (最小化/最大化対象) + 制約 Step 2 : QAOAアルゴリズムで量子計算を行う • Qiskit (量子コンピュータ用フレームワーク)を使用して実行 ハミルトニアンが最小値 = 最適解 となるように定式化
組み合わせ最適化問題として考える 18 クラス Standard 容量 100 GB コスト xxx 容量
1000GB S3ストレージクラスの組み合わせを以下のように考える クラス Standard 容量 200 GB コスト xxx クラス Standard 容量 400 GB コスト xxx クラス Standard 容量 800 GB コスト xxx クラス IA 容量 100 GB コスト xxx クラス IA 容量 200 GB コスト xxx クラス IA 容量 400 GB コスト xxx クラス IA 容量 800 GB コスト xxx クラス Glacier 容量 100 GB コスト xxx クラス Glacier 容量 200 GB コスト xxx クラス Glacier 容量 400 GB コスト xxx クラス Glacier 容量 800 GB コスト xxx 再掲
100 GB 200 GB 300 GB 800 GB 𝑥1 𝑥2
𝑥3 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8 𝑥9 𝑥10 𝑥11 𝑥12 定式化 – 変数/制約設定 𝑥𝑖 は0か1の値を取る変数とし、以下のように設定する 19 S3 Standard S3 Standard-IA S3 Glacier Instant Retrieval 0 or 1 ∀𝑖 ∈ ℕ, 1 ≤ 𝑖 ≤ 12 𝑥𝑖 ∈ 0, 1 𝑠𝑖𝑧𝑒𝑖 = 100 (𝑖 𝑚𝑜𝑑 4 = 1) 200 (𝑖 𝑚𝑜𝑑 4 = 2) 400 (𝑖 𝑚𝑜𝑑 4 = 3) 800 (𝑖 𝑚𝑜𝑑 4 = 0) 制約 (Restriction) 𝑖 12 𝑠𝑖𝑧𝑒𝑖 ∙ 𝑥𝑖 = 1000 変数定義 𝑅𝑒𝑠𝑡𝑟𝑖𝑐𝑡𝑖𝑜𝑛 = 1000 − 𝑖 12 𝑠𝑖𝑧𝑒𝑖 ∙ 𝑥𝑖 2 総容量が 1000
定式化 – コストの計算方法 保管コスト 20 リクエストコスト 𝑆𝑡𝑜𝑟𝑒𝑑𝐶𝑜𝑠𝑡 = 𝑖
12 𝑠𝑡𝑜𝑟𝑒𝑑_𝑐𝑜𝑠𝑡𝑖 ∙ 𝑠𝑖𝑧𝑒𝑖 ∙ 𝑥𝑖 𝑅𝑒𝑞𝑢𝑒𝑠𝑡𝐶𝑜𝑠𝑡 = 𝑖 12 𝑠𝑖𝑧𝑒𝑖 1000 𝑇𝑜𝑡𝑎𝑙𝐺𝑒𝑡𝑅𝑒𝑞𝑢𝑒𝑠𝑡𝑠 ∙ 𝑔𝑒𝑡_𝑐𝑜𝑠𝑡𝑖 + 𝑇𝑜𝑡𝑎𝑙𝑃𝑢𝑡𝑅𝑒𝑞𝑢𝑒𝑠𝑡𝑠 ∙ 𝑝𝑢𝑡_𝑐𝑜𝑠𝑡𝑖 ∙ 𝑥𝑖 𝑔𝑒𝑡_𝑐𝑜𝑠𝑡𝑖 = ቐ 0.00000037 1 ≤ 𝑖 ≤ 4 0.000001 5 ≤ 𝑖 ≤ 8 0.00001 9 ≤ 𝑖 ≤ 12 𝑝𝑢𝑡_𝑐𝑜𝑠𝑡𝑖 = ቐ 0.0000047 1 ≤ 𝑖 ≤ 4 0.00001 5 ≤ 𝑖 ≤ 8 0.00002 9 ≤ 𝑖 ≤ 12 𝑠𝑡𝑜𝑟𝑒𝑑_𝑐𝑜𝑠𝑡𝑖 = ቐ 0.025 1 ≤ 𝑖 ≤ 4 0.0138 5 ≤ 𝑖 ≤ 8 0.005 9 ≤ 𝑖 ≤ 12 データサイズ × 保管コスト Getリクエスト数 × Getリクエストコスト Putリクエスト数 × Putリクエストコスト
定式化 – 評価関数 21 𝐻を最小化する𝑥𝑖 の組み合わせを求める 𝐻 = 𝑆𝑡𝑜𝑟𝑒𝑑𝐶𝑜𝑠𝑡 +
𝑅𝑒𝑞𝑢𝑒𝑠𝑡𝐶𝑜𝑠𝑡 + 𝑘・𝑅𝑒𝑠𝑡𝑟𝑖𝑐𝑡𝑖𝑜𝑛 コストの和 = 最小化対象 制約 係数𝑘は制約の強さに合わせて値を調整 プログラム開発環境 マネージド Jupyter Notebook 言語 python 主要ライブラリ Qiskit (量子コンピュータ用フレームワーク) Pyqubo (QUBO形式定式化ツール) 実行デバイス SV1 (ゲート方式のマネージドシミュレータ) 実行環境
実行結果 – まとめ 22 Getリクエスト 10 万 100 万 1000
万 1 億 Putリクエスト 10 万 $8.0 $15.9 $25.8 $72.9 100 万 $25.2 $26.9 $33.5 $66.7 1000 万 $84.6 $90.9 $121.6 $109.0 Standard IA Glaciar 1 0 0 900 1000 200 800 800 200 400 600 400 600 700 300 1000 1000 700 300 800 1 0 0 1 0 0 800 200 各リクエスト数に対して以下の量子計算上の最適解が得られた
実行結果 – ソルバーとの比較 一般的なソルバーでも試してみたところ、ソルバーの方が良い解を導きました。。。 23 Getリクエスト 10 万 100 万
1000 万 1 億 Putリクエスト 10 万 $8.0 $15.8 $24.8 $62.5 100 万 $23.9 $24.8 $33.4 $66.7 1000 万 $72.0 $72.4 $75.7 桁数が大きく解なし 1000 1000 1000 1000 Standard IA Glaciar 1000 1000 1000 1000 1000 1000 1000
実行結果 – 原因分析 24 原因点 ⚫ 量子コンピュータは確率論のため、値の振れ幅が小さいと最適を見誤る可能性がある • → コストに基づいていたため数値が非常に小さかった
⚫ 試行回数が少なかった/計算量が十分でなかった • → 問題の規模に対して計算量が少なく、最適解(確度の高い解)にたどり着く前に終了してしまった ⚫ 純粋な量子コンピュータへの理解が不足でチューニングができていない • → 現在鋭意勉強中です….今回は動かすことをメインに考えていたので理論を抑える必要がありそうです
25 新しい角度から S3ライフサイクルを 検討したい 01 最新の技術を 活用してみたい! 02 最適なライフ サイクルルールを
見つけたい! 03 今回の目的