Amazon Web Services ブログ

Category: Amazon RDS

Amazon RDS for PostgreSQL クロスリージョンリードレプリカのためのベストプラクティス

Amazon RDS for PostgreSQL のマネージドサービスのひとつにクロスリージョンリードレプリカがあります。クロスリージョンリードレプリカを使用することで、災害対策ソリューションの確保、データベースの読み込みワークロードのスケーリング、およびリージョン間での移行が可能になります。クロスリージョンリードレプリカは、Amazon RDS コンソール、AWS CLI、または create-db-instance-read-replica API を使用して作成できます。クロスリージョンリードレプリカには、追加のデータ転送料金がかかります。 Amazon RDS はクロスリージョンリードレプリカを容易にしますが、最良の経験を実現するために認識しておく必要がある注意点がいくつかあります。この記事では、以下のトピックに関する Amazon RDS for PostgreSQL クロスリージョンレプリケーションのベストプラクティスを説明します。 クロスリージョンリードレプリカの作成の流れ レプリケーション遅延を最小限化する方法 Amazon RDS for PostgreSQL クロスリージョンレプリカの使用中における一般的な問題 クロスリージョンリードレプリカの作成の流れ クロスリージョンリードレプリカは、Amazon RDS for PostgreSQL のバージョン 9.5.2 以降でサポートされます。クロスリージョンレプリカの作成中、システムは以下のステップを実行します。 ソースインスタンスのスナップショットを作成する。 スナップショットをレプリケーション先のリージョンにコピーする。 ソースとクロスリージョンレプリカ間におけるストリーミングレプリケーションスロットを設定する。 ソースからレプリカへのログ先行書き込み (WAL) のストリーミングを開始する。WAL ファイルは PostgreSQL のトランザクションログです。データ変更は、まず WAL ファイルに記録されてから、永続ストレージに書き込まれます。 Amazon RDS for PostgreSQL のクロスリージョンレプリカは、以下の手順に従うことで最も簡単に作成できます。 Amazon RDS コンソールで、Amazon RDS for […]

Read More

論理レプリケーションを使用してオンプレミスまたは Amazon EC2 から Amazon RDS に PostgreSQL を移行する

PostgreSQL は、オープンソースのリレーショナルデータベースの中でも最も人気のある先進的なシステムの 1 つです。30 年以上におよぶ開発作業を経ている PostgreSQL は、多数の複雑なデータワークロードを処理できる、信頼性が高く堅牢なデータベースであることが証明されています。PostgreSQL は、Oracle や Microsoft SQL Server などの商用データベースから移行する際に多くの人から選ばれるオープンソースデータベースです。クラウドの観点から、AWS は 2 つのマネージド PostgreSQL オプションを提供しています。それは、Amazon Relational Database Service (RDS) for PostgreSQL と Amazon Aurora for PostgreSQL です。 PostgreSQL データベースをオンプレミスから AWS マネージド PostgreSQL に移行またはアップグレードする場合、または AWS マネージドサービス内の PostgreSQL のメジャーバージョンにアップグレードする場合は、論理レプリケーションを使用して、ネイティブの PostgreSQL 機能を介して実行できます。pglogical 拡張機能は、バージョン 9.6.6 以降の Amazon RDS for PostgreSQL の一部で、コミュニティ PostgreSQL バージョン 9.4 以降で機能します。 pglogical 拡張機能は、バージョン […]

Read More

ドメイン参加済みの Amazon RDS for SQL Server インスタンスに対する分散トランザクションサポートの有効化

 Amazon Relational Database Service (RDS) for SQL Server が Microsoft 分散トランザクションコーディネータ (MSDTC) を使用した分散トランザクションをサポートするようになりました。MSDTC を使用することで、RDS for SQL Server DB インスタンスが関与する分散トランザクションを実行することができます。この記事では、Amazon RDS for SQL Server 使用時に、AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) を使って分散トランザクションを実行する最も一般的な方法について説明します。 ソリューションの概要 この記事では、3 つの主要用語が使用されています。 分散トランザクション – 2 台以上のネットワークコンピュータシステムにあるデータを更新するトランザクションです。分散トランザクションは、分散データを更新する必要があるアプリケーションにトランザクションのメリットを提供します。 トランザクションマネージャー – アトミックトランザクションの結果の管理と分散に対する責任を担います。トランザクションマネージャーは、ルートトランザクションマネージャー、または特定のトランザクションに対する下位トランザクションマネージャーのどちらかになります。 リソースマネージャー – アトミックトランザクションの結果とのリソース状態の調整に対する責任を担います。指定されたトランザクションについて、リソースマネージャーはひとつのトランザクションマネージャーのみと連携し、トランザクション結果の表明と最終結果の取得を行います。 このソリューションには、以下のステップが含まれます。 パラメータグループの設定。 オプショングループの設定。 Amazon RDS for […]

Read More

Amazon RDS for SQL Server で Microsoft SQL Server Analysis Services を設定する

Amazon RDS for SQL Server の表形式モデルで Microsoft SQL Server Analysis Services (SSAS) を設定できるようになりました。SSAS は、2016 年または 2017 年の SQL Server メジャーバージョンを使用して、Standard エディションと Enterprise エディションのどちらのシングル AZ 設定でも動作します。 SSAS を Amazon EC2 で実行する場合、SSAS を Amazon RDS for SQL Server で直接サポートし、それらのワークロードを統合して SQL Server データベースと同じ RDS DB インスタンスで実行することで、コストを節約できます。ただし、統合する場合は、パフォーマンスへの影響を考慮する必要があります。 オンライン分析処理 (OLAP) ソリューションは、オンザフライ処理の量を最小限に抑えることで、データウェアハウスやその他のリレーショナルデータベースを強化し、高速で効果的な分析とレポートを行えます。これは主に、分析を実行する前に、ディメンションと階層の幅広い組み合わせを前処理して保存することで実現しています。 SSAS は、エンタープライズレベルの OLAP ソリューションを開発するための Microsoft のビジネスインテリジェンスツールです。SSAS は、最適化された分析クエリと計算に加えて、Excel、Power BI、SQL Server […]

Read More

SYSDATE 関数を Oracle から PostgreSQL に変換する

AWS クラウドで Oracle から PostgreSQL に移行するプロセスは何段階もあって複雑になりがちです。評価ステージから切り替えステージまで、さまざまなテクノロジーとスキルが必要になります。移行プロセスの詳細については、「データベースの移行 — 開始する前に知っておくべきこと」、「移行プロセスとインフラストラクチャの考慮事項」、「ソースデータベースの考慮事項」と「PostgreSQL 環境でのターゲットデータベースの考慮事項」を参照してください。 Oracle から Amazon RDS または Amazon Aurora PostgreSQL に移行する際に最もよくある問題の 1 つが、SYSDATE 関数にまつわる問題です。SYSDATE は、アプリケーションまたはストアドプロシージャとトリガーで最も一般的に使用される日付/時刻関数です。creation_date、last_updated_date、approved_date のような列を持つテーブルは、列のデフォルト値を SYSDATE にすることにより、または、列の値を挿入または更新するトリガーを SYSDATE として定義することにより、SYSDATE 値として更新されます。 この記事は、PostgreSQL データベースの Oracle SYSDATE 関数の代替案を示します。 Oracle および PostgreSQL の日付/時刻関数を評価する際に考慮すべき 3 つの異なる側面があります。それは、次の側面です。 ステートメントレベルまたはトランザクションレベルの時刻 時刻関数におけるクライアント側設定の影響 夏時間 (DST) に関する考慮事項 PostgreSQL 日付/時刻関数の概要 PostgreSQL には、現在の日時に関連する値を返す関数がいくつか用意されています。これらの関数の一部は SQL 標準であり、その他は非 SQL 標準関数です。 サポートされる SQL 標準関数 […]

Read More

Amazon CloudWatch メトリクスを使用して Amazon RDS についてより適切な意思決定を行う

Amazon Relational Database Service (RDS) を使用している場合、インスタンス設定を変更するのに最適なタイミングを判断する方法について悩んでいるかもしれません。これには、インスタンスクラス、ストレージサイズ、ストレージタイプなどの設定の決定が含まれる場合があります。Amazon RDS は、MySQL、PostgreSQL、SQL Server、Oracle、Amazon Aurora などのさまざまなデータベースエンジンをサポートしています。Amazon CloudWatch は、これらすべてのエンジンをモニタリングできます。CloudWatch メトリクスは、最適なインスタンスクラスを選択するためのガイドとなるだけでなく、適切なストレージサイズとタイプを選択するのにも役立ちます。この記事では、CloudWatch メトリクスを使用して、データベースのパフォーマンスを最適化するために Amazon RDS の変更をどう判断したらよいかを説明します。 CPU とメモリの消費 Amazon RDS では、CPUUtilization、CPUCreditUsage と CPUCreditBalance の CloudWatch メトリクスを使用して CPU をモニタリングできます。すべての Amazon RDS インスタンスタイプは、CPUUtilization をサポートしています。CPUCreditUsage と CPUCreditBalance は、バースト可能な汎用パフォーマンスインスタンスにのみ適用できます。 CPUCreditUsage は、インスタンスが CPU の使用に費やした CPU クレジットの数として定義されます。CPU クレジットは、バースト可能なパフォーマンスインスタンスのベースラインレベルを超えてバーストする機能を管理します。CPU クレジットは、100% の使用率で 1 分間実行されるフル CPU コアのパフォーマンスを提供します。CPUUtilization は、インスタンスでの CPU の使用率を示します。CPU 消費量の不規則な急上昇でデータベースのパフォーマンスが低下することはないかもしれませんが、CPU が高い状態が継続すると、その後のデータベースリクエストを妨げることがあります。データベース全体のワークロードに応じて、Amazon […]

Read More

2019 年にリリースされた Amazon RDS および Aurora 機能のまとめ

Amazon Relational Database Service (Amazon RDS) で、クラウド内でのリレーショナルデータベースのセットアップ、運用、およびスケーリングが簡単になります。費用効果が高く、容量のサイズ変更も可能です。同時に、ハードウェアのプロビジョニング、データベースのセットアップ、パッチの適用、バックアップといった時間を費やす管理作業を自動化します。そのため、お客様はアプリケーションの開発に集中でき、アプリケーションが必要とする高速な性能、高可用性、セキュリティ、さらに互換性の実現に取り組むことができます。 セルフマネージドデータベースをマネージドデータベースサービスに移行することは新しいスタンダードで、当社は Amazon RDS に矢継ぎ早に機能を追加し続けています。2019 年は忙しい年でした。そこで、さまざまなデータベースエンジンにかけて導入された機能をまとめてみましょう。 Amazon RDS は、10 年以上前の 2009 年 10 月に初めてリリースされました。 Amazon RDS for MySQL からすべてが始まりました。それ以来、合計 7 つのデータベースエンジンオプションに対応するまでになりました。その 7 つとは、Amazon Aurora MySQL、Amazon Aurora PostgreSQL、PostgreSQL、MySQL、MariaDB、Oracle Database、および Microsoft SQL Server です。 2019 年に、Amazon RDS と Aurora データベースエンジン全体で 100 を超える機能をリリースしました。過去の記事をおさらいしたい方は、2018 年のまとめと 2017 年のまとめをご覧ください。まず、データベースの戦略と運用に最大の影響を与えると考えられる、各データベースエンジンと主要なリリースについて説明します。次に、2019 年にリリースしたすべての機能を便宜上分類して以下に列記します。 新しいインスタンスタイプ、リージョン、バージョン – さまざまなデータベースデプロイオプションを提供 管理性 – […]

Read More

オンプレミスの VMware 環境での Amazon RDS マネージド型データベースの使用開始

Amazon RDS on VMware は、数十万の顧客が利用している Amazon RDS テクノロジーを使用して、AWS Relational Database Service (RDS) のマネージド型データベース体験をオンプレミスの VMware 環境に拡張します。 この記事では、VMware 管理者とデータベース管理者が RDS on VMware 環境にデプロイする方法を説明します。オンプレミスの vSphere クラスターを RDS on VMware デプロイ用に準備する方法と、RDS on VMware をクラスターにオンボードする方法について説明します。 RDS on VMware アーキテクチャ RDS on VMware は、VMware vSphere 環境のソフトウェアアプライアンスで RDS コネクタを使用します。RDS コネクタを使用すると、AWS リージョンからの専用仮想プライベートネットワーク (VPN) トンネルを介してオンプレミスのリレーショナル DB インスタンスを管理できます。これにより、Amazon RDS のコントロールプレーンがリージョンの AWS クラウドに留まることができます。 Amazon RDS は、セットアップ中に […]

Read More

Amazon RDS for SQL Server でリージョン内リードレプリカを使用する

Amazon RDS for SQL Server は、リージョン内のリードレプリカをサポートするようになりました。これにより、読み取りワークロードをプライマリデータベースインスタンスからレプリカにオフロードできます。リードレプリカは内蔵の分散型可用性グループ機能を使用しており、Enterprise Edition でご利用いただけます。分散型可用性グループは、2 つの別個の可用性グループにまたがる可用性グループです。分散型可用性グループのメンバーは、それ自体が可用性グループです。Amazon RDS は、このアーキテクチャに、ドメインに依存しない Windows Server Failover Cluster (WSFC) を使用します。この記事では、リードレプリカのアーキテクチャ、リードレプリカの作成方法、およびそれをモニタリングする方法について説明します。 リードレプリカは、SQL Server 2016 Service Pack 2 Cumulative Update 3 (13.00.5216.0.v1) 以降のマルチ AZ 設定の Enterprise Edition でサポートされています。 リードレプリカのマルチ AZ 設定 リードレプリカのマルチ AZ 設定では、プライマリ DB インスタンスでコミットされたトランザクションは、高可用性を目的として同期的にセカンダリレプリカにレプリケートされ、読み取りのスケールアウトのためにリードレプリカに非同期的に送信されます。リードレプリカには、プライマリ DB インスタンスからのほぼリアルタイムのデータが含まれており、それらを使用して、読み取り専用ワークロードをプライマリ DB インスタンスからオフロードできます。そのワークロードには、たとえば、データ更新のレイテンシーをある程度許容できる分析タイプまたはレポートタイプのクエリがあります。さらに、リードレプリカをプライマリまたはセカンダリ DB インスタンスとは異なるアベイラビリティーゾーンでウォームスタンバイソリューションとして使用でき、ビジネスニーズに基づいてレプリカをシングル AZ インスタンスに昇格できます。Transparent Data Encryption (TDE) または AWS KMS […]

Read More

PostgreSQL 12 – いくつかの新機能のご紹介

 PostgreSQL コミュニティは毎年、PostgreSQL 12 のメジャーリリースを一貫して続けています。PostgreSQL 12 は、JSON データをクエリする新しい方法、インデックスの拡張、パーティション化されたテーブルでのパフォーマンスの向上などの機能を導入し、すでに堅牢な機能の管理を簡素化しながら、新たに開発する機会を設けています。 この記事では、PostgreSQL 12 の素晴らしい新機能のいくつかを詳しく見ていきます。それらを既存の開発および運用プラクティスに組み込む方法を探っていきます。これらの機能の一部は透過的で、PostgreSQL 12 にアップグレードするだけでご利用いただけます。他の部分については、ご利用いただくには既存のアプリケーションまたはプロセスへの変更を加えていただく必要があります。これらの新機能の利点を取り上げ、さらにこのような機能を既存のアプリケーションに適応させる方法の例をご紹介します。 インデックスの改善 PostgreSQL のデフォルトのインデックスタイプは B ツリーです。B ツリーインデックスは、ほとんどのタイプのデータをプライマリキーである整数から E メールアドレスである文字列へインデックスを付けるために使用します。テーブルが大きくなると、対応するインデックスも大きくなります。B ツリーインデックスが大きくなると、データ構造のバランスを保つ必要があります。そうすることで、特定のリーフページがいっぱいになったときにページが必ず分割されるようにします。ほとんどの場合、PostgreSQL はこれらのページを中央で分割することで、新しく分割された各ページに同じ量のデータと空き領域ができるようにします。テーブルに追加されるデータがややランダムである場合は、中央で分割するのが理想的です。ただし、データに重複するインデックスエントリが多数ある場合は、途中で分割すると大量の空き領域が未使用になる可能性があります。PostgreSQL 12 は、B ツリーインデックスページを分割するロジックを変更して、重複するインデックスエントリのコンテキストを使用し、いくつかの圧縮技術を用いています。これらを改善することで、インデックスのデータに応じて、一部の B ツリーインデックスが PostgreSQL 12 で 40% も小さくなる可能性があります。 古いバージョンの PostgreSQL からアップグレードされたデータベースは、古い B ツリー形式のままです。新しい B ツリー形式を利用するには、PostgreSQL 12 でインデックスを作成する必要があります。PostgreSQL には、指定されたテーブルのすべてのインデックスを再構築する REINDEX コマンドがありますが、REINDEX コマンドは、多くの本番環境で禁止ロックを取得します。 postgres=# REINDEX TABLE events; postgres=# SELECT locktype, transactionid, mode, […]

Read More