Amazon Web Services ブログ

Category: Amazon Aurora

Amazon Aurora マルチマスタークラスターが東京リージョンに対応しました

みなさん、こんにちは。アマゾン ウェブ サービス ジャパン、シニアエバンジェリストの亀田です。 Amazon Auroraのマルチマスタークラスター機能が東京リージョンに対応しましたのでお知らせいたします。 Amazon Auroraは、MySQL および PostgreSQL と互換性のあるクラウド向けのリレーショナルデータベースであり、従来のエンタープライズデータベースのパフォーマンスと可用性に加え、オープンソースデータベースのシンプルさとコスト効率性も兼ね備えたAWSにより設計されたデータベースです。標準的な MySQL データベースと比べて最大で 5 倍、標準的な PostgreSQL データベースと比べて最大で 3 倍高速です。また、商用データベースと同等のセキュリティ、可用性、信頼性を、10 分の 1 のコストで実現します。 マルチマスター機能は、複数のアベイラビリティーゾーンにわたってAuroraデータベースの複数の読み書きインスタンスを作成できる単一のデータベースであり、稼働時間に敏感なアプリケーションがインスタンス障害を通じて継続的な書き込み可用性を実現できるようにします。この機能のご利用には、MySQL 5.6 と互換性のある Aurora MySQL バージョン 1 が必要です。 マルチマスタークラスターでは、すべての DB インスタンスで書き込みオペレーションを実行できます。単一の読み書きプライマリインスタンスと、複数の読み取り専用 Aurora レプリカの概念は適用されません。別の書き込み DB インスタンスを使用して、失敗したインスタンスの作業を引き継ぐことができるため、書き込み DB インスタンスが利用できなくなっても、フェイルオーバーが発生することのない、継続的な可用性を実現可能です。 その一方で従来のAuroraと動作が異なる点が多くあるため、利用には事前の検証を推奨しています。また他のAuroraやRDSでサポートしているインスタンスのStop(一時停止)には対応していません。 考慮すべき事項や制限事項などはこちらにまとまっていますのでご覧ください。 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html また以下のブログもマルチマスター機能の基本概要をご理解いただくうえで非常に役に立ちますので合わせてご参考ください。 https://aws.amazon.com/jp/blogs/news/building-highly-available-mysql-applications-using-amazon-aurora-mmsr/ – シニアエバンジェリスト 亀田    

Read More

GTID ベースのレプリケーションを使用したフォールバックオプションで Amazon Aurora MySQL へ移行する

本番アプリケーションを移行する場合、多くの場合、フォールバックオプションを備えていることが重要です。このブログ記事では、グローバルトランザクション識別子 (GTID) ベースのレプリケーションを使用して、Amazon RDS MySQL ワークロードを Amazon Aurora MySQL に移行する方法を説明します。また、問題が発生した場合にフォールバックメカニズムを使用する方法についても説明します。 GTID ベースのレプリケーションの詳細については、「Amazon Aurora for MySQL 互換エディションでグローバルトランザクション 識別子 (GTID) によるレプリケーションがサポートされるようになりました」をご覧ください。 この記事では、レプリケーショントポロジには、2 つのリードレプリカ (RDS MySQL リードレプリカと Aurora MySQL レプリカ) を持つマスター RDS MySQL インスタンスがあります。移行中に問題が発生した場合のフォールバックインスタンスとして RDS MySQL リードレプリカを使用し、元の RDS MySQL マスターが影響を受けないようにします。ただし、元の RDS MySQL マスターインスタンスをフォールバックオプションとして使用することもできます。移行が成功すると、Aurora MySQL レプリカが RDS MySQL レプリカインスタンスのマスターインスタンスになります。 GTID ベースのレプリケーションを使用する主な利点は、すべてのトランザクションに一意の識別子を割り当てられ、レプリケーショントポロジ内の各 MySQL サーバーがすでに実行したトランザクションを追跡できることにあります。GTID ベースのレプリケーションはトランザクションベースであるため、マスターとレプリカ間のデータの一貫性を簡単に判断できます。マスターでコミットされたすべてのトランザクションがレプリカにもコミットされている場合、2 つの間に一貫性があります。これにより、auto-positioning が可能になります。これは、binlog ファイルの名前または位置を指定することなく、レプリカがマスターインスタンスをポイントする機能です。 前提条件 このチュートリアルを実行するには、次の前提条件を満たしている必要があります。 […]

Read More

Amazon Aurora Global Database を使った Aurora PostgreSQL 災害復旧ソリューション

 Amazon Aurora (PostgreSQL 互換) は、高性能商用データベースのパフォーマンスと可用性、そしてオープンソースデータベースのシンプルさとコスト効率性を兼ね備えています。Aurora は、同じリージョン内の 3 つのアベイラビリティーゾーンにストレージをスケールすることでこれを実現し、単一リージョン内で読み込みワークロードと高可用性をスケールアウトするために最大 15 個のリードレプリカをサポートします。Amazon Aurora Global Database では、リージョン全体で障害が発生した場合におけるリモート読み込みアクセスと災害復旧のために、最大 5 つのリージョンに PostgreSQL データベースをレプリケートできるようになりました。 Aurora は、保護グループと呼ばれる 10 GB の論理ブロックにストレージボリュームを構築しています。Aurora は、同じリージョン内の 3 つのアベイラビリティーゾーン (AZ) にまたがって割り当てられている 6 個のストレージノード (AZ ごとに 2 個) 全体に各保護グループをレプリケートします。データのボリュームが現在割り当てられているストレージを超えると、Aurora は必要に応じて新しい保護グループを追加することによってボリュームを拡大し、需要を満たします。 Aurora Global Database とは? 複数のリージョンにまたがる Aurora Global Database は、リージョン全体の障害からの災害復旧を実現し、最も近い位置にある Aurora クラスターからの読み込みを許可することによって、低レイテンシーのグローバル読み込みを可能にします。 Aurora の機能として、Global Database は Aurora のストレージレイヤーにある専用のインフラストラクチャを使用して、リージョン間のレプリケーションを処理します。レプリケーションはストレージレイヤー内の専用レプリケーションサーバーが処理するため、データベースのパフォーマンスを損なうことなく高度な復旧および可用性目標を達成できます。 PostgreSQL […]

Read More

最終のご案内: 3月5日までに Amazon RDS / Aurora / DocumentDB のSSL/TLS証明書を更新してください

Amazon Relational Database Service (RDS)、Amazon Aurora、または Amazon DocumentDB をご使用中のお客様で、データベースインスタンスにSSL/TLS接続している方は、2020年3月5日までにSSL/TLS証明書を更新してください。実行しなかった場合、SSL/TLSでのデータベース接続ができなくなります。

Read More

Autodesk のミッションクリティカルなデータベースを Microsoft SQL Server から Amazon Aurora MySQL に移行する

 この記事は、Autodesk のソフトウェアアーキテクトである Tulika Shrivastava 氏が、AWS の Rama Thamman の協力の下で執筆したゲスト投稿です。Autodesk は自社を評して次のように述べています。「Autodesk は 3D 設計、エンジニアリング、エンターテイメントソフトウェアの分野で牽引する企業です。車を運転したり、超高層ビルを見上げたり、スマートフォンを使用したり、偉大な映画を見たりしたことがある人は、何百万もの Autodesk ユーザーがソフトウェアで行っていることを身をもって体験されているものと思われます」 Autodesk は、AWS のサービスの中でも特に、プライベートデータセンターから Amazon EC2 へワークロードを移行することで、数年前にクラウドのモダナイゼーションを開始しました。Autodesk は、柔軟性とスケーラビリティを得て予想される成長を後押しするために近代化する必要がありました。2019 年、当社はミッションクリティカルなシングルサインオン (SSO) アプリケーションを EC2 上のセルフマネージド SQL Server から完全マネージド型の Amazon Aurora MySQL に移行しました。このサービスでは、1 億 4200 万人を超えるユーザーからの認証リクエストを集め、1 分あたり 145,000 件を超える API リクエストに応答しています。認証と承認のために 300 を超える製品とサービスと統合されています。 この移行により、Autodesk SSO サービスの管理と復元力が合理化され、コストが最適化され、インフラストラクチャメンテナンスのオーバーヘッドが削減されました。初期コスト分析によると、当社は Amazon Aurora MySQL を使用することで、データベース全体のコストの約 40〜50% を毎月節約できるだろうことがわかりました。 この記事では、Autodesk […]

Read More

Aurora PostgreSQL のキャッシュ管理機能の紹介

Amazon Aurora は、ハイエンドな商用データベースが持つ速さや可用性を、オープンソースデータベースのシンプルさやコスト効率の高さと組み合わせた、リレーショナルデータベースエンジンです。PostgreSQL 互換エディションの Aurora では、同じハードウェアで動作させたとき、標準 PostgreSQL の最大 3 倍のスループットが実現できます。既存の PostgreSQL アプリケーションおよびツールは、修正をせずにそのまま使用可能です。この、PostgreSQL の互換性と Aurora のエンタープライズデータベース機能の組合せは、商用データベースを移行する際の理想的なターゲットとなっています。 リレーショナルデータベースでのキャッシング キャッシングは、すべてのリレーショナルデータベースがディスク I/O を削減するために備えている、主要な機能の一つです。これは、最も使用頻度の高いデータを、バッファーキャッシュと呼ばれるメモリの中に一時保存します。バッファーキャッシュにあるデータへのアクセスは、ディスクに保存されたものより高速です。つまり、スケーラビリティやアプリケーションのパフォーマンスを高めることができます。 PostgreSQL では、(テーブルやインデックスブロックなどの) アクセス頻度の高いデータブロックをキャッシュします。この設定は、データベースサーバーが使用する共有メモリバッファーの容量を規定する設定パラメータ (shared_buffers) により定義されます。詳細については、PostgreSQL ドキュメントウェブサイトの「Memory」をご参照ください。 キャッシングとフェイルオーバー Aurora PostgreSQL では、フェイルオーバー優先順位が最も高いリードレプリカを自動的に新しいマスターに昇格することで、高速のフェイルオーバー (約 35 秒) を実現しています。 リードレプリカは、プライマリと同じワークロードで実行するものではありません。従って、リードレプリカにおけるバッファーキャッシュの内容は、アプリケーションでの読み出し/書き込みワークロードを反映しきっていない、あるいは、障害が発生したプライマリの内容と完全に異なっている、ということがあり得ます。 フェイルオーバー発生時のバッファーキャッシュの内容によっては、新たに昇格された書き込みインスタンスにおいてキャッシュをウォームアップ (障害を起こす前のプライマリと同様な状態にキャッシュが遷移) するための時間が必要となります。バッファーキャッシュのウォームアップに必要な時間は、障害以前と同じ応答速度をアプリケーションが得られるようになるまでの時間です。 障害が起きた時点でのバッファーキャッシュの内容によっては、新たに昇格する書き込みインスタンスがキャッシュを (障害前のプライマリを反映した状態までに) ウォームアップするのに、顕著な時間を要することもあります。バッファーキャッシュのウォームアップに要する時間は、障害前と同じく信頼できる応答速度を得られるまで、アプリケーションが待機しなければならない時間となります。 クラスターキャッシュ管理 クラスターキャッシュ管理 (CCM) 機能は、フェイルオーバーが発生した後の、新しいプライマリ/書き込みインスタンスのパフォーマンスを向上させます。レプリカでは、アクセス頻度の高いバッファーをプライマリおよび書き込みのインスタンスからキャッシュして、予防的な読み込みを行っています。CCM により、特定の Aurora PostgreSQL レプリカをフェイルオーバーのターゲットとして指定することが可能です。CCM は、指定されたレプリカのキャッシュにあるデータが、プライマリ DB インスタンスのキャッシュにあるデータと正確に同期するようにします。 CCM の機能説明図を次に示します。読み出し専用 (RO) ノードは、読み出し/書き込み […]

Read More

PostgreSQL 11 の新機能を詳しくご紹介

初期のPostgreSQL プロジェクトは 1986 年に大学のプロジェクトとしてスタートしました。1996 年に PostgreSQL プロジェクトはオープンソースコミュニティが引き継ぎ、毎年メジャーバージョンを定期的にリリースしています。ソフトウェアの複雑さを考えると、このような早急なリリーススケジュールには、主要な機能を小さく基本的な要素に分割する必要があります。こうした小規模で基本的な機能を組み合わせることで、最新リリースの PostgreSQL 11 を含む PostgreSQL のすべてのメジャーリリースが行われています。PostgreSQL 11 は、Amazon RDS for PostgreSQL および PostgreSQL と互換性のある Amazon Aurora の両方に対応しています。 この記事では、パーティション分割、並列処理、ジャストインタイム (JIT) コンパイルという、PostgreSQL 11 の 3 つの素晴らしい機能について詳しく説明します。複数の PostgreSQL バージョンにおけるこれらの機能の進化について調べます。また、PostgreSQL 11 が提供する利点についても説明し、これらの機能をアプリケーションに適合させる方法を説明する実用的な例を示します。 パーティション分割 データベースが成長するにつれ、少数のテーブルが通常は成長の主な原因となっています。成長は、すべてのアクティビティの履歴ログを保持するテーブルや、ユーザーテーブルに集中する場合があります。 テーブルのパーティション分割により、データベースの大幅な成長に対処できます。つまり、単一の大きなテーブルをより小さく管理しやすいチャンク (パーティション) に分割することで、大きなテーブルでのクエリを高速化します。クエリの実行中にデータベースがパーティション全体を除外できると、処理するデータが大幅に減るため、パフォーマンスが向上します。テーブルを分割するという概念は PostgreSQL 11 の新機能ではありません。PostgreSQL では、2005 年リリースのバージョン 8.1 において最初にテーブルのパーティション分割という形式を導入しました。 以下の orders テーブルを例に考えてみましょう。アプリケーションは、販売注文がある度に新しい行をこのテーブルに追加します。注文が多くなるにつれ、このテーブルは日ごとに大きくなります。このように時間の流れと共に成長するテーブルには、時間に基づくパーティション分割が基本的に使われます。 CREATE TABLE orders ( o_orderkey INTEGER, […]

Read More

SSL/TLS を経由して RDS MySQL, RDS MariaDB, and Amazon Aurora MySQL に sysbench を実行する

sysbench は MySQL 互換のデータベースでベンチマークを実行するために有用なツールです。もし、sysbench を使って Amazon Aurora MySQL のパフォーマンスの評価をしたい場合、Amazon Aurora Performance Assessment Technical Guide が役に立つでしょう。しかし、もし SSL/TLS を経由して sysbench を実行したい場合、このツールや AWS のサービスにあるいくつかの制限について考える必要があります。 この投稿では、RDS MySQL, RDS MariaDB, and Aurora MySQL で sysbench を実行するにあたっての考慮点と、どのように準備するべきかについて、お話いたします。 考慮点 sysbench の最新のパッケージリリースは 1.0.17 になります。もし、yum や RPM のようなパッケージマネージャから sysbench をインストールした場合、このバージョンがインストールされます。このバージョンでは、sysbench は SSL/TLS を使用するにあたって、以下のような制限を持っています: –mysql-ssl オプションは ON または OFF のみが指定可能で SSL_MODE は REQUIRED 固定 クライアント秘密鍵、クライアント公開鍵、CA […]

Read More

Amazon Aurora PostgreSQL から通知を送信する

企業のお客様は、Amazon Aurora PostgreSQL データベースで多くの日々のバッチジョブを実行し、そのようなジョブを完了した後にアクティビティを追跡するためにメールやテキストなどの通知方法が必要です。Aurora PostgreSQL はマネージドサービスであるため、セキュリティ上の理由から pgsmtp や pgplpythonu などのデータベース拡張機能へのアクセスを制限しています。これにより、他の自動メッセージングの手段で通知を送信するデータベースの必要性が高まります。 この記事では、組織が定期的にビジネス検証のために従業員の情報をプルし、ジョブの完了後に通知を必要とするシナリオを使用します。この記事では、Python を使用してサンプルジョブを作成し、AWS Lambda と Amazon SNS を使用して、E メールまたはテキストメッセージで通知する方法を示します。 前提条件 このソリューションには以下が必要です。 適切な AWS のサービスにアクセスできる有効な AWS アカウント。 Aurora PostgreSQL データベース。詳細については、「Amazon Aurora DB クラスターの作成」を参照してください。 VPC の外部に通知を送信するための、SNS の VPC エンドポイント。詳細については、「Amazon SNS の Amazon VPC エンドポイントの作成」を参照してください。 データベースに接続するための pgadmin または PSQL Client ツールなどのクライアントツール。 AWS Secret Manager にすでに設定および保存されているデータベースパスワード。詳細については、「AWS Secrets Manager とは」を参照してください ソリューションアーキテクチャ […]

Read More

AWS SCT および AWS DMS を使用した移行後のデータベースオブジェクトの検証

データベースの移行は複雑なタスクになりかねません。移行には、ソフトウェアプラットフォームの変更、ソースデータの複雑性の把握、データ損失チェック、既存機能の詳細なテスト、アプリケーションパフォーマンスの比較、およびデータの検証といったあらゆる課題が伴います。 AWS では、移行前チェックリストと移行評価を提供するツールとサービスをいくつかご用意しています。AWS Schema Conversion Tool (AWS SCT) は、既存のデータベーススキーマをひとつのデータベースエンジンから別のデータベースエンジンに変換するために使用できます。AWS Database Migration Service (AWS DMS) は、リレーショナルデータベース、データウェアハウス、NoSQL データベース、およびその他のタイプのデータストアの移行を容易にしてくれます。AWS DMS は、AWS クラウドへのデータの移行、またはオンプレミスインスタンス間 (AWS クラウドセットアップ経由)、クラウドとオンプレミスセットアップとの組み合わせの間でのデータの移行に使用できます。 さらに、AWS はデータベース移行の全体を通じてユーザーをガイドする幅広いドキュメントも提供しています。詳細については、「Oracle データベースの PostgreSQL への移行」を参照してください。 AWS SCT は、スキーマオブジェクトを変換するために役立ち、AWS SCT が PostgreSQL に変換した Oracle コードの割合と、手動で変換する必要があるコードの量を示すレポートを構築します。データベースオブジェクトの移行中は常に、ターゲットデータベースでオブジェクトが欠落している、新しいオブジェクトを作成する、またはソースオブジェクト全体を意図的に無視する可能性のリスクがあります。検証は、移行対象のすべてが正常に移行されたことを顧客に証明するプロセスです。 この記事は、データベースオブジェクトの移行とコードの変換の完了後に、ソース Oracle データベースと PostgreSQL ターゲット間でオブジェクトを検証する方法の概要を説明します。 オブジェクトの検証 問題になるのは、何を検証するかということです。 これを理解するためには、Oracle データベースオブジェクトの異なるタイプと、それらに相当する PostgreSQL データベースオブジェクトのタイプを知っておく必要があります。 以下の表は、Oracle (ソース) データベースのオブジェクトと、対応する PostgreSQL (ターゲット) のオブジェクトのタイプを示しています。DB 変換が正常に行われたことを確認するには、これらのオブジェクトを詳細に検証しなければなりません。 Oracle オブジェクト […]

Read More