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
150
第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
第159回 雲勉 Amazon Bedrock でブラウザを操作する AI エージェントを作ってみた
iret
0
18
第158回 雲勉 AWS CDK 入門 ~ プログラミング言語で書くインフラ Python 編 ~
iret
0
30
第157回 雲勉 AWSインフラ監視をNew Relicで行う際の個人的Tips
iret
0
36
第156回 雲勉 AWS on Windows入門
iret
0
70
第155回 雲勉 サーバレスアーキテクチャを 用いたコスト重視 AI サービス
iret
0
51
第154回 雲勉 AWS Codeシリーズ盛り上げ隊 ~ Codeシリーズは砕けない ~
iret
0
54
第153回 雲勉 トラシューが秒で終わる新機能 Amazon Q Developer operational investigations
iret
0
65
第150回 雲勉 AWS AppSyncではじめるGraphQL体験
iret
0
57
第151回 雲勉 プロジェクトのドキュメントにおける課題をAmazon Bedrockで解決してみる
iret
0
72
Other Decks in Technology
See All in Technology
パスキーでのログインを 実装してみよう!
hibiki_cube
0
670
年末調整プロダクトの内部品質改善活動について
kaomi_wombat
0
210
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
300
バクラクでのSystem Risk Records導入による変化と改善の取り組み/Changes and Improvement Initiatives Resulting from the Implementation of System Risk Records
taddy_919
0
220
LINEギフトのLINEミニアプリアクセシビリティ改善事例
lycorptech_jp
PRO
0
240
Keynote - KCD Brazil - Platform Engineering on K8s (portuguese)
salaboy
0
120
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
110
お問い合わせ対応の改善取り組みとその進め方
masartz
1
370
大規模サービスにおける カスケード障害
takumiogawa
1
210
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.2k
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
420
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
7
1.8k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
99
5.4k
GraphQLの誤解/rethinking-graphql
sonatard
70
10k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Writing Fast Ruby
sferik
628
61k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
Optimising Largest Contentful Paint
csswizardry
35
3.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
It's Worth the Effort
3n
184
28k
Docker and Python
trallard
44
3.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Producing Creativity
orderedlist
PRO
344
40k
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