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
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を...
Search
iret.kumoben
September 12, 2024
Technology
0
200
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
以下、勉強会での資料です。
https://youtu.be/LyazDzhTgsg
iret.kumoben
September 12, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
18
第165回 雲勉 Google Agentspace について
iret
0
18
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
iret
1
38
第163回 雲勉 CircleCIで複数リポジトリ間のパイプラインを連携する
iret
1
35
第162回 雲勉 比較して学ぶ AWS Amplify Gen 2
iret
0
47
第161回 雲勉 Amazon Kinesis Data Streams と Amazon Data Firehose を使ってみよう
iret
0
46
第160回 雲勉 それ、AWS Step Functions で置き換えれん?
iret
0
69
第159回 雲勉 Amazon Bedrock でブラウザを操作する AI エージェントを作ってみた
iret
0
82
第158回 雲勉 AWS CDK 入門 ~ プログラミング言語で書くインフラ Python 編 ~
iret
0
69
Other Decks in Technology
See All in Technology
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
3
710
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
210
Definition of Done
kawaguti
PRO
6
470
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
150
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
110
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
610
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
110
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
220
How Community Opened Global Doors
hiroramos4
PRO
1
110
A2Aのクライアントを自作する
rynsuke
1
170
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
120
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
380
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
A better future with KSS
kneath
239
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Done Done
chrislema
184
16k
Docker and Python
trallard
44
3.4k
Transcript
第144回 雲勉 Amazon Aurora Serverless v2の基礎と アーキの裏側を覗いてみる
講師自己紹介 満村 雄二(Mitsuo) ⚫ クラウドインテグレーション事業部 第二構築セクション所属 ⚫ インフラエンジニアとしてAWSサービスの要件定義、設計および構築に従事 ⚫ 2022
- 2024 APN ALL AWS Certifications Engineer ⚫ AWS Community Builder(Networking Content Delivery) ⚫ iret テクニカルアンバサダー(Advanced) @Chanmitsu_sys 2
アジェンダ 1. 本資料について 2. Amazon Aurora Serverlessについて 3. Amazon Aurora
Serverlessのアーキテクチャを覗いてみる 3
1. 本資料について 4
1.本資料について ◼ 理解出来ること(主な目的) • Amazon Aurora Serverless(以降Aurora Serverless)の基礎 • Aurora
Serverlessのアーキテクチャ概要 ◼ 説明しないこと • RDBMS、データベースエンジンの解説 • Auroraの機能に関する解説 • 効率の良いクエリの書き方 • 他クラウド製品との比較 • ハンズオン形式での提供 5
1.本資料について ◼ 留意事項 ・ 初学者向けの解説になります。 ・ Version2(v2)を前提に説明します。 ・ 当資料は事前撮影したものをYouTubeに公開したものです。 ・
質問事項は、 YouTubeのコメント欄に記載ください。 6
1.本資料について(登場人物の紹介) 久しぶりの雲勉なので 自己紹介お願いできます? みつおくんがスーツ着てるやん いいですけど わたしフリー素材みたいに なってませんか? 7
1.本資料について(登場人物の紹介) 名前:さわD ⚫ ベテランのインフラエンジニア ⚫ オンプレ経験が長く部内でも頼られている ⚫ 今回の講師役 ⚫ 一年の時を経て「さわだ」から「さわD」に改名
名前:はやぶさ ⚫ 猛禽類系インフラエンジニア ⚫ 技術に対する好奇心が高い ⚫ とりあえず見に来た 8
2. Amazon Aurora Serverless について 9
2. Amazon Aurora Serverless について サーバレスというより 資料的にAuroraの説明から 入ったほうが自然ですかね? ご存知な方も多いのでしょうが、 後からAuroraの
アーキテクチャの話もするのでそうしましょうか 10
2. まずはAmazon Auroraの概要から ◼ Amazon Aurora • AWSがクラウド向けに開発したマネージドなデータベース • データベースの運用管理を大幅にAWS側に移譲可能
• 主に商用データベースとしてライセンス不要で利用可能 • MySQL、PostgreSQLと高い互換性 • 従量課金制(課金体系に応じて利用した分のみ請求) ここはさらっと 行きましょうか! 11
2. Amazon Aurora Serverlessとは? ◼ Amazon Aurora Serverlessとは? • Aurora用のAuto
Scaling設定 • オンデマンドにデータベースのスペック(CPU、メモリ等)を変動させる • スペックはACUと呼ばれる単位で管理される • ACU単位で課金が発生する 従来のプロビジョンドと 比べると 細かい制約はあるものの AWS側でキャパシティ管理を する事以外はほとんど使用感 が同じなんですよね 参考:Supported Regions and Aurora DB engines for Aurora Serverless v2 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.html MySQL、PostgreSQLの 対応バージョンには制限が あるので公式ドキュメントを 確認してください 12
2. Amazon Aurora Serverlessとは? ◼ ACUとは? • Aurora Capacity Unitの略称
• 1ACUあたり対応するCPU、2GiBのメモリおよびネットワーキングを提供 • 0.5ACUから128ACUの間で最小値、最大値を指定し負荷に応じて AWSが自動で調整 EC2のAuto Scalingでも インスタンス数の最小数、最大数 を指定すると思いますが、 Aurora ServerlessでもACUの 最小数、最大数を指定します とてもざっくり言うと、 スペックの単位です! 13
2. Amazon Aurora Serverlessの作成方法(コンソールの場合) 基本的に従来型(プロビジョンド)と同様 インスタンスクラスでサーバレスを選択するだけ! 14
2. Amazon Aurora Serverlessの作成方法(コンソールの場合) 非対応のエンジンバージョンであればインスタンスクラスにサーバレスを選択出来ない 15
2. Amazon Aurora Serverlessの作成方法(CloudFormationの場合) • AWS::RDS::DBClusterでACUの最小数と最大数を指定する • AWS::RDS::DBInstanceでインスタンスクラスを指定する 16
2. サーバレス・・・? Auroraのサーバレスって Lambdaのサーバレスとは 少し違いますよねー あー確かに Aurora Serverlessを使ったことがない人だ とそのイメージはあるかもしれないですよね 解説します
17
2. Lambdaの場合(一般的なサーバレスのイメージ) AWS Lambda Service VPC AWS Lambda Service VPC
処理が追いつかなくなってきた・・・ 実行数を増やして処理しよう!! 18
2. Aurora Serverlessの場合 Amazon Virtual Private Cloud ライターの処理が追いついてない・・・ ACU数を増やそう!! Amazon
Virtual Private Cloud 19
2. Aurora Serverlessについて • Aurora Serverlessは、利用者VPC上に常に存在するため コンピューティングの存在を意識する必要はある。 • Lambdaは処理時のみAWSが管理するVPC上で実行されるため、 コンピューティングの存在を意識する必要がない。
• 具体的な定義は確認出来なかったが、Auroraのサーバレスは、 キャパシティ管理が不要=コンピューティングの意識が薄れると解釈。 LambdaもProvisioned Concurrencyを使うと常にコ ストが発生はしますが・・・ 20
2. 料金の話しておきます ここまでは キャパシティ管理してくれる サーバレスの方が従来型(プロビジョンド) より優れてるように聞こえるんですが コストの話はしておこうと思います。 21
2. 料金設定 ◼ 従来型・サーバレス共通の料金設定(東京リージョン) 項目 料金(Aurora Standard) ストレージ料金 USD 0.12/1GBあたり
月単位 I/O料金 USD 0.24/100万リクエストあたり 月単位 項目 料金(Aurora Standard) インスタンス料金 データベースモデルによる db.r6g.largeの場合・・・ USD0.313 db.r5.xlarge ・・・ USD 0.70 ◼ 従来型の場合(東京リージョン) 項目 料金(Aurora Standard) インスタンス料金 USD 0.20/1ACUあたり 1時間単位 ◼ サーバレスの場合(東京リージョン) 22
2. 料金の話しておきます 料金説明をしたので プロビジョンドとサーバレスでの 料金比較を行いますね 共通項目やその他に発生するコストは (バックトラック、バックアップ、データ転送等) 考慮しません あくまでプロビジョンドとサーバレスで発生するコ ストの差異について整理します
23
2. 料金比較 ◼ 従来型(プロビジョンド)の場合 項目 内容 リージョン 東京(ap-northeast-1) モデル db.r5.xlarge
vCPU 4 メモリ 32 項目 内容 リージョン 東京(ap-northeast-1) ACU数 8 or 16 ワークロードの想定 8ACUで15日稼働 16ACUで15日稼働 ◼ サーバレス の場合 24
2. 料金比較 ◼ 従来型(プロビジョンド)の場合 • USD 0.70 * 24 *
30 = 504 USD ◼ サーバレスの場合 • USD 0.20 * 8 * 24 * 15 = 576 USD • USD 0.20 * 16 * 24 * 15 = 1,152 USD ◼ サーバレスの場合(合計) • 576 USD + 1152 USD = 1,728 USD ファッ!!? 1000USD以上差が出ますやん 25
2. 自分も答えが見えていない 前提の置き方によって変わるんだろうけど ワークロードが安定してるシステムだと サーバレスを使うのはコスト効率が悪い ですよね・・・ 後、サーバレスだとRI契約出来ないのも 大きいですよね。従来型であれば試算し た金額より更に下げることは可能だと思い ます。
まずそのシステムがコスト優先するのか パフォーマンスを優先するのか方針を決め た方がいい気がします。 AWS利用料だけで比較する話でも ないだろうし難しい・・・ 26
2. ユースケースを整理してみる • 安定したワークロードなのであれば従来型を検討する • コストが厳しいようであれば従来型を検討する • ほぼ即時、無停止のキャパシティスケーリングが必要であればサーバレスが候補に上がる • スパイクが激しい、アイドル状態が長いなど極端なユースケースはサーバレスが
候補に上がる • パフォーマンス、コストを優先するかで従来型かサーバレスかを検討する • 無理にサーバレスにする必要はない • AWS利用料だけではなく運用コストの意識も大切 27
2. いったんまとめ • Aurora ServerlessはAurora用のAutoscaling機能の事 • スペックはACUという単位で管理される • 負荷に応じてACU数を増減する事によってワークロードを処理する •
Aurora Serverlessは、従来型(プロビジョンド)のAuroraと同様に利用者側のVPC 上に配置される • Aurora Serverlessは、料金設定が従来型よりも高いため、ワークロードによっては 割高になるケースがある サーバレスというほど コンピューティングの意 識がなくなる訳でない と思ったりします なんてこというんですか! でもワークロードが変動しやす いケースでキャパシティ管理を AWSに任せれるのは便利だ と思いますよ 28
3. Amazon Aurora Serverlessの アーキテクチャを覗いてみる 29
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Aurora Serverlessの アーキテクチャって 基本的に従来型と同じなんですよね? そうです! せっかくなので解説しますね
後、サーバレスならではの スケーリングの特徴について補 足したいと思います。 30
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる 31 • 基本的なアーキテクチャは、従来型とサーバレスで同様である • ライターインスタンスとリーダーインスタンスでコンピュートが分かれている •
コンピュートとストレージ領域が分かれている Availability Zone Availability Zone Availability Zone ライター リーダー リーダー ストレージ
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Availability Zone Availability Zone Availability Zone
ライター リーダー リーダー 左図のようにコンピュートとストレージが分離されてい ます。矢印は黒色が読み込み、朱色が書き込み、 そして緑色がS3バケットへのバックアップを表していま す。 AWSにはデータベース用に設計された「ログ構造分 散ストレージシステム」を用いています。ストレージ内 に複数のストレージノードが存在し、ライターは各AZ のノード2つずつに対して書き込みを行います。 計6つのコピーですね。 これによってデータの可用性を確保しています。 ストレージは最大128TiBまで拡張可能です。 ストレージ 32
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Auroraはデータの読み書きに関して、 クォーラムモデルを採用しています。 クォーラムモデルとは、一定数の書き込み、読み込みが出来た時点で その処理を完了したと見なす考え方を指します。 ストレージへのコピーはAZ毎に2箇所で 計6つコピーするでしたよね。
完了とみなした後、残り分を非同期で処理します。 33
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Availability Zone Availability Zone Availability Zone
ライター リーダー リーダー 6箇所のうち4箇所書き込みが出来れば、 完了とみなします。 2箇所のデータ損失まで影響なく利用可能です。 ストレージ 書き込みの場合 34
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Availability Zone Availability Zone Availability Zone
ライター リーダー リーダー 6箇所のうち3箇所読み取りが出来れば、 完了とみなします。 3箇所のデータ損失まで影響なく利用可能です。 ストレージ 読み取りの場合 35
3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる 次にスケーリング時の挙動の 話をしますね!! 36
3. Amazon Aurora Serverlessのスケーリングについて 37 • 実際に稼働しているインスタンスに対してスケーリングが行われる。 • ライター/リーダーインスタンスのCPU、メモリ、ネットワーク情報を継続的に追跡して おり、AWS側で設定された閾値に応じてスケーリングを行う。
• インスタンスの入れ替わりが起きないため、トランザクションを受けつつ、vCPU、 メモリのサイズを変更出来、スケーリング中でもアプリケーションに影響を与えない。 CPU足りてな い・・・ まだ足りない・・・ 処理が落ち着いて きたかな
3. まとめ • Aurora Serverlessはプロビジョンと同様のアーキテクチャである • AWS側でCPU、メモリ、ネットワーキングの使用量を定期的に観測し設定された閾値 を超えた場合、スケーリングが行われる 38
最後に ありがとうございました!!! 39