Amazon Web Services ブログ
Amazon Aurora DSQL の紹介
このブログは “Introducing Amazon Aurora DSQL” を翻訳したものです。
リレーショナルデータベースは、マイクロサービス、ウェブサイト、モバイルバックエンド、SaaS アプリケーションなど、さまざまなアプリケーションやサービスの強力で柔軟な構成要素です。10 年前、私たちは Amazon Aurora を立ち上げ、商用データベースの 1/10 のコストで、MySQL および PostgreSQL との完全な互換性を持つ、並外れた高パフォーマンスと可用性を提供しました。お客様から、管理が容易で、ワークロードに合わせてスケールアップ・ダウンでき、マルチリージョンやマルチ AZ の高可用性アーキテクチャの構築が簡単なリレーショナルデータベースを求める声が寄せられています。
本日、私たちは常時利用可能なアプリケーションに最適な、最速のサーバーレス分散 SQL データベース「Amazon Aurora DSQL」をご紹介します。Aurora DSQL は、事実上無限のスケーラビリティ、最高の可用性、そしてインフラストラクチャ管理ゼロを提供します。ワークロードの需要に合わせて、データベースのシャーディングやインスタンスのアップグレードなしにスケーリングできます。革新的なアクティブ・アクティブの分散アーキテクチャにより、シングルリージョン構成で 99.99%、マルチリージョン構成で 99.999% の可用性を実現し、高可用性アプリケーションの構築に最適です。サーバーレスの設計により、パッチ適用、アップグレード、メンテナンスダウンタイムなどの運用負荷が不要になります。Aurora DSQL は PostgreSQL 互換であり、開発者は既知のリレーショナルデータベースの概念、ドライバー、ツール、フレームワークを使ってアプリケーションを迅速に構築・デプロイできます。
この記事では、Aurora DSQL の利点と始め方について説明します。
Aurora DSQL アーキテクチャと利点
Aurora DSQL は、コンポーネントの障害やアベイラビリティゾーン (AZ) の中断に対応できるシングルリージョン構成と、データの処理と保存の場所を完全に制御できるマルチリージョン構成の 2 つの構成で実行するように設計されています。独自の分離されたアクティブ・アクティブ・アーキテクチャにより、フェイルオーバーやスイッチオーバーによるダウンタイムがなくなるため、高可用性とビジネス継続性を簡単に設計できます。
Aurora DSQL は、3 つの AZ にわたるアクティブ・アクティブ構成のシングルリージョンクラスターを提供します。これにより、レプリケーションラグや従来のデータベースフェイルオーバー操作を最小限に抑えることができます。ハードウェアやインフラストラクチャの障害が発生した場合、手動操作なしで健全なインフラストラクチャにリクエストを自動的にルーティングします。Aurora DSQL のトランザクションは、マルチリージョンでも遅延の影響を最小限に抑えつつ、ACID (Atomicity、Consistency、Isolation、Durability) プロパティ全てを提供します。強力なスナップショット分離を実装し、クラスターエンドポイントへの読み書きに対して強力なデータ整合性を提供します。
次の図は、単一リージョンにおける Aurora DSQL の高可用性クラスタートポロジーを示しています。
シングルリージョン構成では、Aurora DSQL はすべての書き込みトランザクションを分散トランザクションログにコミットし、コミットされたログデータを 3 つの AZ にある ユーザーストレージレプリカに同期的に複製します。クラスターストレージレプリカは、最適なデータベースパフォーマンスのためにストレージフリートに分散されています。Aurora DSQL は、自動でのフェイルオーバーリカバリが設計されています。コンポーネントや AZ に障害が発生した場合、健全なコンポーネントにアクセスを自動的に切り替え、非同期でレプリカを修復します。障害が発生したレプリカが復元されると、Aurora DSQL は自動的にそれらをストレージクォーラムに追加し、クラスターで利用可能にします。
Aurora DSQL は、アプリケーションに最高の耐障害性が必要な場合に、99.999% のマルチリージョン可用性を提供します。
マルチリージョンクラスターは、シングルリージョンクラスターと同じ耐障害性と接続性を提供しつつ、2 つのリージョン エンドポイントを通じて可用性を向上させます。リンクされたクラスターの両方のエンドポイントは、単一の論理データベースを表し、強力なデータ整合性を持つ同時読み書き操作をサポートします。これにより、地理的な場所、パフォーマンス、または耐障害性の目的に応じて、アプリケーションと接続のバランスを取ることができ、読み取り側が常に同じデータを確実に見ることができます。
次の図は、Aurora DSQL マルチリージョンクラスターを使用したアプリケーションのアーキテクチャを示しています。
マルチリージョンクラスターを作成すると、Aurora DSQL は別のリージョンにもう 1 つクラスターを作成し、それらをリンクします。リンクされたリージョンを追加することで、コミットされたトランザクションからの変更がすべて他のリンクされたリージョンに確実に複製されます。各リンクされたクラスターにはリージョンエンドポイントがあり、Aurora DSQL はリージョン間で同期的に書き込みを複製するため、リンクされたクラスターのどこからでも強い整合性のある読み書きが可能です。
第 3 のリージョンがウィットネスリージョンとして機能します。ウィットネスリージョンは、リンクされたクラスターに書き込まれたデータを受け取りますが、クラスターや関連エンドポイントは持ちません。暗号化されたトランザクションログの限定的なウィンドウを保存し、Aurora DSQL がマルチリージョンの耐久性と可用性を提供するために使用されます。
その他の Aurora DSQL 機能
Aurora DSQL は、あらゆる負荷に対応できる事実上無制限のスケールを提供します。クエリ処理層、コミット層、ストレージ層がそれぞれ独立してスケーリングし、読み取り/書き込み比、データサイズ、クエリの複雑さなど、さまざまな特性のワークロードに適応します。つまり、ビジネスの成長に伴いデータベースの性能を維持する必要がなくなるため、開発者は次の重要な機能の開発に集中できます。
開発者は単一の API コールで新しいクラスターを素早く作成し、数分で PostgreSQL と互換性のあるデータベースの使用を開始できます。多くの一般的な PostgreSQL ドライバーやツール、ACID トランザクション、SQL クエリ、セカンダリインデックス、結合、挿入、更新などの基本的なリレーショナル機能をサポートしています。
Aurora DSQL は、シンプルな宣言型のプライバシーとセキュリティ制御、および AWS Identity and Access Management (IAM) と AWS CloudTrail との完全な統合により、セキュリティ体制を強化します。ユーザーのパスワードベースの認証をブロックしつつ、PostgreSQL ワイヤープロトコルの互換性は維持しています。IAM を使用したトークンベースの認証をサポートし、AWS Command Line Interface (AWS CLI) と AWS SDK でトークン生成のヘルパー関数を提供しています。
従来のデータベースとは異なり、Aurora DSQL は、従来のロック方式ではなく、楽観的同時性制御 (OCC) を使用しています。スケールアウトするにつれ、OCC により、長時間のトランザクションが他の実行中のトランザクションを遅らせることはありません。Aurora DSQL における OCC の詳細については、Amazon Aurora DSQL の同時性制御を参照してください。
結論
Aurora DSQL を使えば、強力な一貫性を持つレジリエントなアプリケーションを簡単に構築できます。これにより、規制上の課題に対応でき、アプリケーションのダウンタイムやデータ損失を気にする必要がありません。革新的な機能を活用すれば、データ管理とアプリケーションのスケーラビリティに新しいアプローチを取ることができます。
プレビューで利用可能になった Aurora DSQL を、ぜひ体験してみてください。Aurora DSQL コンソールにアクセスするか、プログラムからアクセスする ための AWS CLI や AWS SDK を使用してください。
詳しくは、Aurora DSQL の概要ページをご覧いただくか、詳細情報については包括的なユーザーガイドをご参照ください。
著者について
Raluca Constantin は、AWS 分散 SQL データベースチームのシニアデータベースエンジニアです。
Arun Sankaranarayanan は、ロンドン拠点のデータベース専門ソリューションアーキテクトです。