AWS が re:Invent 2022 で Amazon RDS を強化 • The Register

アドバトリアル 毎年、AWS は re:Invent カンファレンスで AWS データベースの顧客にとって魅力的なものを用意しています。 今年も例外ではありません。 同社は、マネージド データベースの顧客の生活を楽にするために設計された Amazon Relational Database Service (Amazon RDS) の 4 つの新機能を展開しました。

2009 年、AWS は Amazon RDS を使用して、オープンソースのデータベース管理システム (DBMS) 向けのフルマネージド クラウド データベース サービスを開拓しました。 同社の目標は、MySQL や PostgreSQL などのオープンソース データベースの採用を促進することでした。 これは、開発者がアプリケーションの構築に専念できるようにする一方で、AWS がデータベースのサポートの「差別化につながらない重労働」と定義しているものを排除するためのものでした。 これらは、定期的なパッチ適用サイクル、パフォーマンスの最適化、バックアップ、災害復旧など、通常、データベース管理者 (DBA) を行き詰まらせるタスクです。

ユーザー エクスペリエンスをさらに向上させるために、AWS は複数のオープンソース コミュニティとの関係を促進し、オープンソース ユーザーが望む拡張機能を提供しています。 2022 年に、AWS は PostgreSQL、Redis などを含むオープンソース コミュニティ全体で 435 件の承認された貢献を追加しました。

Amazon RDS は過去 10 年間で成長し、7 つのマネージド データベース サービスのコレクションをサポートしています。 これらのうち、Amazon RDS は、Amazon RDS for Oracle と Amazon RDS for SQL Server の 2 つの商用データベース エンジンと、いくつかのオープンソースまたはオープンソース互換のバージョン (Amazon Aurora PostgreSQL-Compatible Edition、Amazon Aurora MySQL-Compatible Edition、Amazon RDS) をサポートしています。 PostgreSQL、Amazon RDS for MySQL、および Amazon RDS for MariaDB 用。

AWS は、セキュリティ、耐久性、可用性、および信頼性に関する優れた機能を提供することにより、開発者がオープンソース データベースを使用してアプリケーションを本番環境にデプロイするのを支援します。 開発者は、使い慣れたオープンソースのツールやお気に入りの機能にアクセスできます。 その好例は、AWS が MariaDB 10.6 の Amazon RDS サポートを発表したときです。 このリリースには、MyRocks ストレージ エンジンのサポート、Oracle PL/SQL の互換性、Atomic DDL のサポートなど、MariaDB ユーザーが利用できる新機能が含まれています。 同時に、MariaDB を愛する開発者は、高度な DevOps 運用技術を自動化する最近リリースされた機能の 1 つである Amazon RDS Blue/Green Deployments などの AWS 主導のイノベーションを享受できます。

AWS は革新を続けているため、オープンソース コミュニティと直接協力して革新を加速し、すべてのユーザーのためにこれらのテクノロジを改善すると述べています。

re:Invent での 4 つのリリースで、AWS は、PostgreSQL、MySQL、および MariaDB のパフォーマンス、安全性、および使いやすさを向上させる新機能を使用して、サポートするオープンソース コミュニティと自社の顧客の両方に改善を提供することにより、このコミットメントを継続します。データベース。 Trusted Language Extensions for PostgreSQL は、開発者が PostgreSQL データベースで拡張機能をすばやく安全に実行できるようにします。 また、Aurora と Amazon RDS で利用できる拡張機能の数も大幅に拡大しています。 Amazon RDS Blue-Green デプロイにより、データベースの更新が簡単になります。 最後に、Amazon RDS for MySQL データベースのパフォーマンスを向上させたい開発者向けに、2 つの新しい機能があります。 Amazon RDS Optimized Writes は書き込みトランザクションのスループットを加速し、Amazon RDS Optimized Reads は最も複雑なクエリの処理を高速化します。

PostgreSQL の信頼できる言語拡張機能

re:Invent 2022 で、AWS は PostgreSQL の Trusted Language Extensions (TLE) を発表しました。 これは、開発者が高パフォーマンスの PostgreSQL 拡張機能を構築し、Aurora や Amazon RDS などのマネージド サービスで安全に実行するための PostgreSQL 拡張機能の新しい開発キットおよびオープンソース プロジェクトです。

プロジェクトのバージョン 9.1 以降、開発者は PostgreSQL の拡張機能を作成できるようになり、開発者は PostgreSQL データベースの機能を拡張できるようになりました。 ただし、PostgreSQL 拡張機能は、データベース自体と同じプロセス空間で実行されます。 これによりデータベースのパフォーマンスが向上しますが、拡張機能の作成と実行には C 言語と PostgreSQL 内部の知識が必要になるため、データベースが潜在的なバグに対して脆弱になります。 バグが解決されない場合、操作が中断されたり、データベースが完全にクラッシュしたりする可能性があります。

その結果、これまで、Aurora や Amazon RDS などのマネージド サービスは、データベースで実行する拡張機能の選択のみを提供していました。 これにより、これらの拡張機能を検証する負担が軽減されましたが、開発者は利用可能な PostgreSQL 拡張機能の完全なライブラリを使用できなくなりました。

TLE はこの問題を修正し、信頼できるプログラミング言語を使用して AWS がコードを認定する必要なく、開発者が高性能の PostgreSQL 拡張機能を迅速に構築して安全に実行できるようにします。 サポートされている言語には、JavaScript、PL/pgSQL、Perl、および SQL が含まれます。 これらの言語を使用すると、PostgreSQL ファイル システムの内部動作を理解する必要がないため、コーダーは拡張機能を簡単に作成できます。

TLE は、バグを 1 つのデータベース接続に制限しながら、安全でないリソースへのアクセスを制限することでデータベースを保護するプロジェクトであるため、DBA に安心感を与えるのに役立ちます。 Aurora および Amazon RDS のお客様の場合、TLE は拡張自体として実行され、rds_superuser ロールによって管理されます。 DBA は、このロールを使用して、拡張機能をインストールおよび実行できるユーザーを制御するきめ細かい権限を割り当てることができます。

AWS は TLE をオープンソース プロジェクトとして立ち上げ、PostgreSQL コア チームと協力して、Apache-2.0 ライセンスの下でアップストリームで利用できるようにしました。 これは、すべての PostgreSQL ユーザーが TLE を使用できることを意味します。 さらに、結果として、独立系ソフトウェアベンダー (ISV) は TLE を使用して、Aurora および Amazon RDS の顧客に拡張機能を提供できます。

プロジェクトの詳細やプロジェクトへの貢献に関心のある PostgreSQL のお客様は、公式の Trusted Language Extensions GitHub リポジトリで実行できるようになりました。 ローカル PostgreSQL データベースで TLE を使用してビルドおよびテストしようとしている開発者は、リポジトリのクローンを作成した後にソース コードを利用できます。 新機能、拡張機能の例、追加のドキュメントからバグ レポートまで、すべての貢献を歓迎します。

Amazon RDS ブルー/グリーン デプロイ

AWS がリリースした 2 番目の大きな機能は、完全マネージド型の Amazon RDS Blue/Green デプロイ機能です。 この機能は、データ損失ゼロを保証しながら、より安全、簡単、迅速にデータベースを更新したいと考えているお客様を対象としています。 Aurora MySQL-Compatible Edition 5.6 以降、バージョン 5.7 以降の RDS for MySQL、RDS for MariaDB 10.2 以降で利用可能な Blue/Green デプロイメントは、開発者がアプリケーションを変更することなく、データベースをわずか 1 分で切り替えられるように設計されています。 .

これまで、Aurora と Amazon RDS のお客様は、データベースを更新するときに 2 つの方法から選択できました。 第 1 に、インプレース更新では、変更を含む新しいバージョンで古いデータベースを上書きします。 この方法は、本番ワークロードの安全性を危険にさらす可能性があり、予測できないダウンタイムが発生することがよくありました。

より高度なアプローチでは、Amazon RDS の顧客が Amazon RDS データベースのクローン作成とレプリカの読み取りを使用してステージング環境を手動で作成し、本番環境との同期を維持する必要がありました。 ただし、その環境の作成、同期、更新には手間がかかりました。 また、お客様は、ステージング環境で変更の検証を処理し、完了したらそれを本番環境に昇格させる必要があります。

Amazon RDS Blue/Green Deployments は、「グリーン環境」と呼ばれるステージング環境の作成を自動的に処理します。 次に、論理レプリケーションを使用してステージング環境と本番環境、つまり「ブルー」環境を同期し、顧客の負担を軽減して、スイッチオーバーの準備が整ったときにプロセスをわずか 1 分で実行できるようにします。

Blue/Green デプロイメントは、切り替えプロセスも容易にします。 「スイッチオーバー ガードレール」を使用して、更新プロセス中に両方の環境への書き込みを一時停止します。これにより、グリーン環境がブルー環境に追いつき、顧客にデータ損失ゼロを提供できます。 これらのガードレールは、レプリケーション エラー、データベース インスタンスの正常性、実行時間の長いトランザクションなどの問題もチェックします。 これらのガードレールは、お客様が最大許容ダウンタイム (30 秒) を設定できるようにすることで、RTO (復旧時間の目標) を達成するのに役立ちます。 切り替えがこの指定された時間を超えると、Blue/Green デプロイメントは Blue 環境への書き込みを再開します。

ビルダーは、ブルー/グリーン デプロイの使用を開始して、メジャー/マイナー バージョンのアップグレード、スキーマの変更、インスタンスのスケーリング、エンジン パラメータの変更、Amazon RDS コンソールを使用したメンテナンスの更新などの更新を行うことができます。

Amazon RDS 最適化書き込み

AWS によると、Amazon RDS Optimized Writes を使用すると、RDS for MySQL のお客様は、書き込みトランザクションのスループットを 2 倍にすることで、データベースをより効率的にすることができます。

MySQL は、メモリ内の 16 キビバイト (KiB) ページを 4 KiB チャンクのストレージに増分的に書き込みます。 危険なのは、システム障害が発生した場合にデータが破損する可能性があり、これらがストレージに保存されないことです。 これを防ぐために、MySQL は「doublewrite バッファ」を使用するため、データは最初にバッファに書き込まれ、次にストレージに書き込まれます。 つまり、障害が発生した場合でも、ユーザーはデータの完全なコピーにアクセスできます。

この追加の保護にはコストがかかります。 2 回書き込むことで、データの書き込みにかかる時間が 2 倍になり、2 倍の IOP 帯域幅も占有します。 ユーザーの同時トランザクション数が多い場合、パフォーマンス要件を維持するために追加のストレージ IOP をプロビジョニングする必要があり、コストが増加する可能性があります。

最適化された書き込みは、RDS for MySQL のお客様のこの問題を解決します。 データを 2 回書き込む代わりに、1 回のアトミック操作で 16 KiB のデータ ページを書き込みます。 これを行うために、AWS Nitro System 内の新機能である Torn Write Prevention を利用して、データがオール オア ナッシングの書き込みトランザクションで確実にストレージに書き込まれるようにし、二重書き込みバッファーの必要性を排除します。

最適化された書き込みは追加料金なしで利用でき、現時点では、サポートされているバージョンとインスタンス タイプを使用して RDS for MySQL で新しいデータベースを作成しているお客様が利用できます。 お客様は、サポートされている新しいデータベースを作成し、AWS Database Migration Service を使用して古いインスタンスから新しいインスタンスへのデータ転送を実行することにより、最適化された書き込みを使用するように既存のデータベースを変換できます。

Amazon RDS 最適化読み取り

最後に、ワークロードが複雑なクエリ処理を必要とする RDS for MySQL および RDS for MariaDB ビルダーは、Amazon RDS Optimized Reads を使用してクエリの速度を 2 倍向上させることができます。

通常、クエリを処理するとき、RDS for MySQL と RDS for MariaDB は Amazon Elastic Block Store から読み取ります。 このプロセスはほとんどのワークロードで効率的ですが、グループ化や並べ替えが必要なような複雑なクエリを扱うものでは、RDS for MySQL と RDS for MariaDB が一時オブジェクトを生成することになります。 これらのオブジェクトがメモリに収まらない場合、それらはディスク ストレージに移動されます。つまり、Amazon EBS に対して書き込みおよび読み取りが行われます。

最適化された読み取りは、複雑なクエリの一時テーブルをデータベース インスタンスのローカル NVMe (不揮発性メモリ エクスプレス) SSD ストレージに直接配置することで、RDS for MySQL および RDS for MariaDB での複雑なクエリ処理を高速化します。 最適化された読み取りは、並べ替え、ハッシュ集計、高負荷結合、共通テーブル式 (CTE) を含む複雑なクエリを必要とするユース ケースのクエリの速度を向上させます。

Optimized Reads は、バージョン 8.0.28 以降を使用する RDS for MySQL のお客様と、バージョン 10.4.25、10.5.16、10.6.7 以降を使用する RDS for MariaDB のお客様が利用できます。

過去数年間、Amazon Aurora と Amazon RDS は、オープンソースおよびオープンソースと互換性のあるデータベースの革新を続けており、速度が低下する兆候は見られません。 これらのイノベーションにより、AWS とオープンソース ユーザーのデータベース実装プロセスが簡素化され続けています。 マネージド サービスに自動化を組み込み続けることで、Amazon Aurora と Amazon RDS のお客様は、内部管理コストを削減し、それらのメリットをお客様に還元できます。

AWS が後援しています。

Leave a Comment

Your email address will not be published. Required fields are marked *