Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を...

iret.kumoben
September 12, 2024

第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる

以下、勉強会での資料です。
https://youtu.be/LyazDzhTgsg

iret.kumoben

September 12, 2024
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 講師自己紹介 満村 雄二(Mitsuo) ⚫ クラウドインテグレーション事業部 第二構築セクション所属 ⚫ インフラエンジニアとしてAWSサービスの要件定義、設計および構築に従事 ⚫ 2022

    - 2024 APN ALL AWS Certifications Engineer ⚫ AWS Community Builder(Networking Content Delivery) ⚫ iret テクニカルアンバサダー(Advanced) @Chanmitsu_sys 2
  2. 1.本資料について ◼ 理解出来ること(主な目的) • Amazon Aurora Serverless(以降Aurora Serverless)の基礎 • Aurora

    Serverlessのアーキテクチャ概要 ◼ 説明しないこと • RDBMS、データベースエンジンの解説 • Auroraの機能に関する解説 • 効率の良いクエリの書き方 • 他クラウド製品との比較 • ハンズオン形式での提供 5
  3. 2. まずはAmazon Auroraの概要から ◼ Amazon Aurora • AWSがクラウド向けに開発したマネージドなデータベース • データベースの運用管理を大幅にAWS側に移譲可能

    • 主に商用データベースとしてライセンス不要で利用可能 • MySQL、PostgreSQLと高い互換性 • 従量課金制(課金体系に応じて利用した分のみ請求) ここはさらっと 行きましょうか! 11
  4. 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
  5. 2. Amazon Aurora Serverlessとは? ◼ ACUとは? • Aurora Capacity Unitの略称

    • 1ACUあたり1CPU、2GiBのメモリおよびネットワーキングを提供 • 0.5ACUから128ACUの間で最小値、最大値を指定し負荷に応じて AWSが自動で調整 EC2のAuto Scalingでも インスタンス数の最小数、最大数 を指定すると思いますが、 Aurora ServerlessでもACUの 最小数、最大数を指定します とてもざっくり言うと、 スペックの単位です! 13
  6. 2. Lambdaの場合(一般的なサーバレスのイメージ) AWS Lambda Service VPC AWS Lambda Service VPC

    処理が追いつかなくなってきた・・・ 実行数を増やして処理しよう!! 18
  7. 2. Aurora Serverlessについて • Aurora Serverlessは、利用者VPC上に常に存在するため コンピューティングの存在を意識する必要はある。 • Lambdaは処理時のみAWSが管理するVPC上で実行されるため、 コンピューティングの存在を意識する必要がない。

    • 具体的な定義は確認出来なかったが、Auroraのサーバレスは、 キャパシティ管理が不要=コンピューティングの意識が薄れると解釈。 LambdaもProvisioned Concurrencyを使うと常にコ ストが発生はしますが・・・ 20
  8. 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
  9. 2. 料金比較 ◼ 従来型(プロビジョンド)の場合 項目 内容 リージョン 東京(ap-northeast-1) モデル db.r5.xlarge

    vCPU 4 メモリ 32 項目 内容 リージョン 東京(ap-northeast-1) ACU数 8 or 16 ワークロードの想定 8ACUで15日稼働 16ACUで15日稼働 ◼ サーバレス の場合 24
  10. 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
  11. 2. いったんまとめ • Aurora ServerlessはAurora用のAutoscaling機能の事 • スペックはACUという単位で管理される • 負荷に応じてACU数を増減する事によってワークロードを処理する •

    Aurora Serverlessは、従来型(プロビジョンド)のAuroraと同様に利用者側のVPC 上に配置される • Aurora Serverlessは、料金設定が従来型よりも高いため、ワークロードによっては 割高になるケースがある サーバレスというほど コンピューティングの意 識がなくなる訳でない と思ったりします なんてこというんですか! でもワークロードが変動しやす いケースでキャパシティ管理を AWSに任せれるのは便利だ と思いますよ 28
  12. 3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Availability Zone Availability Zone Availability Zone

    ライター リーダー リーダー 左図のようにコンピュートとストレージが分離されてい ます。矢印は黒色が読み込み、朱色が書き込み、 そして緑色がS3バケットへのバックアップを表していま す。 AWSにはデータベース用に設計された「ログ構造分 散ストレージシステム」を用いています。ストレージ内 に複数のストレージノードが存在し、ライターは各AZ のノード2つずつに対して書き込みを行います。 計6つのコピーですね。 これによってデータの可用性を確保しています。 ストレージは最大128TiBまで拡張可能です。 ストレージ 32
  13. 3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Availability Zone Availability Zone Availability Zone

    ライター リーダー リーダー 6箇所のうち4箇所書き込みが出来れば、 完了とみなします。 2箇所のデータ損失まで影響なく利用可能です。 ストレージ 書き込みの場合 34
  14. 3. Amazon Aurora Serverlessのアーキテクチャを覗いてみる Availability Zone Availability Zone Availability Zone

    ライター リーダー リーダー 6箇所のうち3箇所読み取りが出来れば、 完了とみなします。 3箇所のデータ損失まで影響なく利用可能です。 ストレージ 読み取りの場合 35
  15. 3. Amazon Aurora Serverlessのスケーリングについて 37 • 実際に稼働しているインスタンスに対してスケーリングが行われる。 • ライター/リーダーインスタンスのCPU、メモリ、ネットワーク情報を継続的に追跡して おり、AWS側で設定された閾値に応じてスケーリングを行う。

    • インスタンスの入れ替わりが起きないため、トランザクションを受けつつ、vCPU、 メモリのサイズを変更出来、スケーリング中でもアプリケーションに影響を与えない。 CPU足りてな い・・・ まだ足りない・・・ 処理が落ち着いて きたかな