Share
Embed
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
以下、勉強会での資料です。
https://youtu.be/LyazDzhTgsg
iret.kumoben
September 12, 2024
Transcript
39 slides
-
講師自己紹介 満村 雄二(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.本資料について ◼ 理解出来ること(主な目的) • Amazon Aurora Serverless(以降Aurora Serverless)の基礎 • Aurora
Serverlessのアーキテクチャ概要 ◼ 説明しないこと • RDBMS、データベースエンジンの解説 • Auroraの機能に関する解説 • 効率の良いクエリの書き方 • 他クラウド製品との比較 • ハンズオン形式での提供 5 -
1.本資料について ◼ 留意事項 ・ 初学者向けの解説になります。 ・ Version2(v2)を前提に説明します。 ・ 当資料は事前撮影したものをYouTubeに公開したものです。 ・
質問事項は、 YouTubeのコメント欄に記載ください。 6 -
1.本資料について(登場人物の紹介) 名前:さわD ⚫ ベテランのインフラエンジニア ⚫ オンプレ経験が長く部内でも頼られている ⚫ 今回の講師役 ⚫ 一年の時を経て「さわだ」から「さわD」に改名
名前:はやぶさ ⚫ 猛禽類系インフラエンジニア ⚫ 技術に対する好奇心が高い ⚫ とりあえず見に来た 8 -
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. 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. 料金設定 ◼ 従来型・サーバレス共通の料金設定(東京リージョン) 項目 料金(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. 料金比較 ◼ 従来型(プロビジョンド)の場合 項目 内容 リージョン 東京(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のアーキテクチャを覗いてみる 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のアーキテクチャを覗いてみる 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のスケーリングについて 37 • 実際に稼働しているインスタンスに対してスケーリングが行われる。 • ライター/リーダーインスタンスのCPU、メモリ、ネットワーク情報を継続的に追跡して おり、AWS側で設定された閾値に応じてスケーリングを行う。
• インスタンスの入れ替わりが起きないため、トランザクションを受けつつ、vCPU、 メモリのサイズを変更出来、スケーリング中でもアプリケーションに影響を与えない。 CPU足りてな い・・・ まだ足りない・・・ 処理が落ち着いて きたかな