search
LoginSignup
29
Help us understand the problem. What are the problem?

posted at

updated at

Organization

待たせたな!噂のAuroraサーバーレスv2がGA。初心者にも分かりやすくまとめてみた

長い長いプレビュー期間をついに卒業!

おさらい

そもそもAuroraって何だっけ?

AWSが提供するマネージドDBサービス「RDS」の上位ラインナップ。
RDSで選択可能なDBMSエンジンにはOracle、PostgreSQL、MySQLなど複数あるが、その中でやや特殊な上位ラインナップとしてRDS(Aurora)エンジンとして存在する。

RDS(Aurora)はさらに2種類のバリエーションがあり、PostgreSQL互換もしくはMySQL互換が選択可能。

RDS(Aurora)の何がいいのか?

通常のRDSと比べて…

  • 高性能。クラウドに最適化してイチから設計されているため、互換先のDBMS比で3〜5倍高速。
  • 高可用性。DBインスタンスおよびストレージが3AZに自動分散される。

で、Aurora Serverlessっていうのは何?

まず、DB系サービスのマネージド度合いは3段階ある。

セルフマネージド マネージド サーバーレス
EC2(自分でDBMS導入) RDS
RDS(Aurora)
DynamoDB
Aurora Serverless

オンプレチックにEC2へDBMSを自前導入することももちろん可能だが、RDSを使えばOS層以下はAWSがよろしく管理してくれる。ただしDBインスタンスのキャパシティ管理はユーザーが実施する必要あり。

このキャパシティ管理すらも自動でやってくれる(自動で起動停止/スケーリングする)のがサーバーレスで、DynamoDBが代表的だがこいつはリレーショナルDBではなくNoSQL(キーバリュー型)。
そこに颯爽と登場したRDB、しかも高性能なAuroraのサーバーレス版というのがAurora Serverlessだった。

Aurora Serverless v2って何がすごいの?

上記のとおり大変期待できそうなAurora Serverlessだったが、フタを開けてみると結構微妙だった。

Aurora Serverless v1の微妙だったところ

  • シングルAZのみ対応…。障害時は他AZへF/Oする(が結構モタつく)
  • クエリー実行中はオートスケーリングできない
  • コールドスタート(アイドル状態からの復帰に1分程度かかる)
  • 手動で再起動ができない
  • 互換DBMSのバージョンがかなり限定される
  • Auroraの機能で使えないものが結構ある
  • VPC外からアクセスできない

ということでAuroraが活躍しているようなミッションクリティカルな商用ワークロードをバンバン捌く用というよりかは、あまりシビアでない開発環境のコストダウン目的などで、機能制約を呑みつつ利用されるケースが多かったと思われる。

Aurora Serverless v2で良くなったところ

  • マルチAZに対応。F/O所要時間も短縮
  • クエリー実行中でも即スケーリング可能
  • コールドスタートが解消
  • Auroraの一部機能が使えるように(以下一例)
    • グローバルDB
    • リードレプリカ
  • VPC外からのアクセス可能(パブリックIP付与OK)
  • 通常Auroraクラスターとの混在も可能(ReadのみServerless利用など)

GA版の詳細な機能比較は公式ドキュメント参照。

でも、お高いんでしょう?

Aurora Serverless v2はv1の倍の単価が設定されているが、AWSさん曰く…

  • 多くのケースでv1よりも安く済む(スケーリングが細やかになった恩恵)
  • 通常Auroraより最大9割のコスト削減が可能

実際にちょっと触ってみた

まずは通常のAurora(=プロビジョンド版)

RDSコンソールから「データベースの作成」をクリック
スクリーンショット 2022-04-23 18.32.42.png

ここで「エンジンのタイプ」から「Amazon Aurora」を選ぶとRDS(Aurora)、およびAurora Serverlessを作成できる。
スクリーンショット 2022-04-23 18.34.13.png

エディションとしてポスグレ版を選択し、そのままポチッと作成。
少し待つとクラスターが作成されました。リーダー/ライターのインスタンスがマルチAZで構成されているのが分かる。
スクリーンショット 2022-04-23 20.09.10.png

次にServerless v1

通常のRDS(Aurora)同様、エンジンとしてAmazon Auroraを選択する。
Serverless v1に対応したエンジンバージョンを確認し選択しておく。(v2の対応バージョンと異なるため注意)
スクリーンショット 2022-04-24 11.26.24.png

するとインスタンスクラスの設定画面で「サーバーレス」が選択でき、「Serverless v1」がプルダウン表示されていることが分かる。
スクリーンショット 2022-04-24 11.28.03.png

ポチッと作成してみると、通常のプロビジョンドAuroraでは3行表示(クラスター名+2インスタンス)だったのに対し、Serverless v1では「サーバーレス」というロールの1行のみが表示されている。
「サイズ」列を見てみると、通常のインスタンスクラスではなくACU(Aurora Capacity Unit)の数のみが表示されている。
スクリーンショット 2022-04-24 11.44.13.png

そしてServerless v2

通常のRDS(Aurora)やServerless v1同様、エンジンとしてAmazon Auroraを選択する。
このときフィルターオプションでServerless v2に対応するバージョンのみを絞り込むことが可能。
スクリーンショット 2022-04-23 20.26.57.png

Serverless v2対応のエンジンバージョンを選択していると、インスタンスクラスとして「サーバーレス」が選択可能になる。
スクリーンショット 2022-04-23 20.31.08.png

ポチッと作成してみると、通常のプロビジョンドAurora同様にライター/リーダーがマルチAZで配置される。ここがServerless v1と大きく異なる点。
「サイズ」列を見ると動的なスペック設定(ACU = Aurora Capacity Unit)になっていることが分かる。
スクリーンショット 2022-04-23 20.58.38.png

早速コミュニティでも盛り上がる

JAWS-UG横浜支部(2022/4/23配信)

GAホヤホヤのタイミングで早速扱ってくれているのは流石!

AWSさんの解説&ツイッターQAより抜粋

  • Serverless v2のプレビュー版とGA版は別モノと考えてよい。プレビュー中にうけたフィードバックを取り込み、大幅な機能改善を取り込んでいる。
  • オートスケーリングはスケール「アウト」ではなく「アップ」。インスタンスの置き換えではなくそのまま拡張されるため、ウォーミング時間も短縮される。
  • 同一クラスター内に通常のAuroraとServerless v2のインスタンスを混在させることが可能。
    • 既存のAuroraクラスターへとりあえず足してみる、といったおためし導入にも有用。
  • グローバルデータベースで活用すれば、コストを抑えつつ有事にセカンダリーリージョン側で即座にインスタンスを起動することが可能。
  • Performance Insightsの利用には2 ACU(Aurora Capacity Unit)を消費するため、サイジングに注意すること。
  • 引き続き未対応のAurora機能:DAG、バックトラックなど複数あり

※残念ながら、大阪リージョンには未対応のようです。DR対応でも活きそうなので、AWSさん是非お願いします!

さいごに

まだまだ情報出始めの時期のため、間違っている情報や補足などあればコメント頂けると嬉しいです! m(_ _)m
(4/24:AWS Samurai 2021の織田さんよりServerless v1の選択方法について補足をいただき取り込みました。ありがとうございました!!)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
29
Help us understand the problem. What are the problem?