Amazon Aurora Serverless を使用する - Amazon Aurora

Amazon Aurora Serverless を使用する

Amazon Aurora Serverless は、Amazon Aurora 用のオンデマンドの Auto Scaling 設定です。キャパシティーを手動で管理する Aurora のプロビジョンド DB クラスターとは異なり、Aurora Serverless DB クラスターは、アプリケーションのニーズに応じてコンピューティング性能をスケールアップ/ダウンする DB クラスターです。Aurora Serverless は、不定期、断続的、または予測不能なワークロードで、比較的シンプルでコスト効率の良い方法として使用できます。このコスト効率が良いのは、アプリケーションの使用状況に合わせて自動的に起動してコンピューティング性能をスケールし、不使用時にはシャットダウンするためです。料金の詳細については、Amazon Aurora Pricing ページで「MySQL 互換エディション」または「PostgreSQL 互換エディション」の「Serverless の料金」を参照してください。

Aurora Serverless クラスターには、プロビジョンド DB クラスターで使用されているのと同じ種類の大容量、分散型、高可用性のストレージボリュームがあります。Amazon Aurora ストレージの詳細については、「Aurora ストレージエンジンの概要」を参照してください。Aurora Serverless クラスターのクラスターボリュームは常に暗号化されます。暗号化キーは選択できますが、暗号化を無効にすることはできません。つまり、Aurora Serverless に対しては、暗号化されたスナップショットに対して許可される同じオペレーションを実行できますが、暗号化されたスナップショットに対して許可されないオペレーションを実行することはできません。詳細については、「Aurora Serverless とスナップショット」を参照してください。

Aurora Serverless の利点

Aurora Serverless では、次のような利点が得られます。

簡素化

Aurora Serverless は、DB インスタンスおよびキャパシティーの複雑な管理作業を大幅に軽減します。

スケーラブル

Aurora Serverless は、必要に応じてシームレスにコンピューティング性能とメモリ容量をスケールします。これに伴うクライアント接続の中断はありません。

コスト効率が良い

Aurora Serverless を使用する場合は、データベースリソースの消費分の料金のみを秒単位で支払います。

可用性の高いストレージ

Aurora Serverless では、データ損失の防止策として、Aurora と同じ 6 ウェイレプリケーションを使用した耐障害性の高い分散型ストレージシステムを使用しています。

Aurora Serverless のユースケース

Aurora Serverless は、以下のユースケース用に設計されています。

不定期使用のアプリケーション

1 日または週に数回それぞれ数分のみ使用されるアプリケーション (低ボリュームのブログサイトなど) が該当します。Aurora Serverless では、消費したデータベースリソース分のみの料金を秒単位で支払います。

新規アプリケーション

新しいアプリケーションをデプロイする場合、必要なインスタンスサイズが不明です。Aurora Serverless では、データベースのエンドポイントを作成し、アプリケーションのキャパシティー要件に応じてデータベースをオートスケーリングできます。

可変ワークロード

アプリケーションの使用頻度が低く、ピークは 1 日に数回または 1 年に数回、30 分~数時間ほどです。人事管理、予算作成、運営報告用のアプリケーションなどが該当します。Aurora Serverless では、ピークキャパシティーや平均キャパシティーに合わせてプロビジョニングする必要がありません。

予測不能なワークロード

ワークロードの実行でデータベースを終日使用するが、アクティビティのピークが予測しがたい場合があります。雨が降り出したときにアクティビティが急増 (サージ) するトラフィックサイトなどが該当します。Aurora Serverless では、アプリケーションのピーク時の負荷要件に合わせてデータベースのキャパシティーをオートスケーリングし、アクティビティのサージが過ぎたときにスケールバックします。

開発およびテスト用のデータベース

開発者は業務時間中にデータベースを使用しますが、夜間や週末には使用しません。Aurora Serverless では、不使用時のデータベースを自動的にシャットダウンします。

マルチテナントのアプリケーション

Aurora Serverless 、フリートのアプリケーションごとにデータベースキャパシティーを個別に管理する必要がありません。Aurora Serverless が個別のデータベースキャパシティーを自動的に管理します。

Aurora Serverless の制約事項

Aurora Serverless には以下の制限が適用されます。

  • 現在、Aurora Serverless は以下でのみ利用可能です。

    • MySQL バージョン 5.6 と互換性がある Aurora MySQL バージョン 1。

    • MySQL バージョン 5.7 と互換性がある Aurora MySQL バージョン 2。MySQL 5.7 と互換性がある Aurora Serverless を使用できるようにするには、Aurora MySQL バージョン 2.07.1 を選択します。

    • PostgreSQL バージョン 10.7 と互換性がある Aurora

  • 接続のポート番号は、以下のように設定します。

    • Aurora MySQL の場合は 3306

    • 5432 (Aurora PostgreSQL)

  • Aurora Serverless DB クラスターにパブリック IP アドレスを割り当てることはできません。Aurora Serverless DB クラスターには、Amazon VPC サービスに基づく Virtual Private Cloud(VPC)内からのみアクセスできます。

  • 各 Aurora Serverless DB クラスターには、2 つの AWS PrivateLink エンドポイントが必要です。VPC 内の AWS PrivateLink エンドポイントが制限に達した場合、その VPC にそれ以上 Aurora Serverless クラスターを作成することはできません。VPC 内のエンドポイントに関する制限の確認および変更については、「Amazon VPC の制限」を参照してください。

  • Aurora Serverless で使用される DB サブネットグループは、同じアベイラビリティーゾーン内に複数のサブネットを持つことはできません。

  • Aurora Serverless DB クラスターで使用されるサブネットグループの変更は、クラスターに適用されません。

  • Aurora Serverless DB クラスターへの接続は、1 日より長く開いたままになると、自動的に閉じられます。

  • Aurora Serverless DB クラスターでは、バイナリログベースのレプリケーションはサポートされていません。

  • Aurora Serverless では、以下の機能はサポートされていません。

    • Aurora バックトラック

    • Aurora マルチマスター

    • Aurora レプリカ

    • データベースのクローン化

    • IAM データベース認証

    • Aurora MySQL ネイティブ関数による AWS Lambda 関数の呼び出し

    • Amazon RDS Performance Insights

    • MySQL DB インスタンスからのスナップショットの復元

    • Amazon S3 バケットからのデータの読み込み

    • Amazon S3 への DB スナップショットデータのエクスポート

    • Amazon S3 バケットへのデータの保存

注記

Aurora Serverless DB クラスターに AWS Lambda からアクセスできます。Aurora Serverless DB クラスターと同じ VPC で実行するように、Lambda 関数を設定する必要があります。AWS Lambda の使用の詳細については、AWS Lambda デベロッパーガイドの「VPC 内のリソースにアクセスするための Lambda 関数の設定」を参照してください。

Aurora Serverless での TLS/SSL の使用

Aurora Serverless クラスターに接続するには、TLS/SSL(Transport Layer Security/Secure Sockets Layer)を使用できます。そのためには、「Amazon Aurora DB クラスターへの接続」に示されている手順と同じ一般的な手順を使用します。

注記

Aurora Serverless クラスターの場合、Amazon RDS SSL/TLS 証明書をダウンロードして使用する必要はありません。代わりに、AWS Certificate Manager (ACM) の証明書を使用します。詳細については、AWS Certificate Manager ユーザーガイドを参照してください。

クライアントと Aurora Serverless の VPC エンドポイントの間のセッションで TLS を使用するようにできます。これを行うには、--ssl-mode パラメータを使用してクライアント側の要件を指定します。SSL セッション変数は、Aurora Serverless DB クラスターへの SSL 接続には設定されません。

Aurora Serverless は、TLS プロトコルバージョン 1.0、1.1、および 1.2 をサポートしています。ただし、Aurora Serverless データベースを TLS 用に設定する必要はありません。特に、SSL 用にデータベースユーザー特権で REQUIRE 句を使用しないでください。この句を使用すると、ユーザーは接続できません。

デフォルトでは、クライアントプログラムは Aurora Serverless, との暗号化された接続を確立します。さらに制御する場合は、--ssl-mode オプションを使用できます。Aurora Serverless は、クライアント側のすべての SSL モードをサポートします。

注記

現在、Aurora Serverless クラスターの TLS サポートは、AWS リージョン 中国 (北京) では使用できません。

mysql および psql クライアントの SSL モードは以下のとおりです。

PREFERRED

SSL は最初の選択肢ですが、必須ではありません。

DISABLED

SSL は許可されていません。

REQUIRED

SSL を強制します。

VERIFY_CA

SSL を義務化し、認証機関 (CA) を検証します。

VERIFY_IDENTITY

SSL を義務化し、CA と CA ホスト名を検証します。

mysql または psql クライアントを --ssl-mode VERIFY_CA または VERIFY_IDENTITY で使用する場合は、CA を指す --ssl-ca オプションを .pem 形式で指定します。使用できる .pem ファイルとしては、Amazon Trust Services から「Amazon root CA 1 trust store」をダウンロードします。

Aurora Serverless では、ワイルドカード証明書を使用します。mysql クライアントを使用して SSL モード VERIFY_IDENTITY で接続する場合、現時点では、MySQL 8.0 互換の mysql コマンドを使用する必要があります。