Amazon Web Services ブログ

Category: RDS for PostgreSQL

Amazon RDS for PostgreSQL のバージョン 9.4 から移行する

歴史的にPostgreSQL コニュニティーでは、年に一度メジャーバージョンをリリースし、それをもって古いメジャーバージョンのエンドオブライフ (EOL) とするポリシーです。これにより、バージョンとアップデートがいつ行われたのか、将来的にも日付で良く分かるようになっています。コミュニティーのこの EOL ポリシーは、メジャーバージョンをその初期リリースから 5 年間サポートするのが目的です。5 年後には、メジャーバージョンは不具合修正を含むマイナーバージョンを 1 つリリースしてから EOL と扱われ、その後はサポートされなくなります。PostgreSQL のすべてのバージョンの最終リリース日は、コミュニティーの Web サイトで見ることができます。直近では、メジャーバージョン 9.4 が 2020 年 2 月 13 日に EOL に達しました。 何が起こるのか PostgreSQL コミュニティーからの追加不具合修正、特にセキュリティに関連する修正が行われなくなります。すべての PostgreSQL 9.4 インスタンスをアップグレードするには、今がちょうど良い機会です。2020 年 2 月 15 日に Amazon Relational Database Service (RDS) はコンソールからの PostgreSQL 9.4 インスタンスの新規作成サポートを 停止したため、PostgreSQL の新しいバージョンを使った方が良いでしょう。既存の PostgreSQL 9.4 スナップショットからのリストアと、9.4 インスタンスのリードレプリカ作成は、2020 年 4 月 […]

Read More

Bucardo を使用して従来の PostgreSQL データベースを Amazon RDS または Aurora PostgreSQL に移行する

 9.4 より前の PostgreSQL を使用している場合、サポートされていない PostgreSQL バージョンを使用していることになります。Amazon RDS または Amazon Aurora PostgreSQL でデータベースを移行または複製するためのオプションが制限されている場合があります。これは主に、9.4 よりも古いバージョンの PostgreSQL では論理複製を実行できないのが原因です。 Bucardo は、データの変更を非同期で複数のセカンダリまたは複数のマスターに複製できるオープンソースユーティリティです。これはトリガーベースのレプリケーションであり、より広範囲の移行や継続的なレプリケーションに対して一貫性と安定性が実証されています。Bucardo は、プライマリキーなしでテーブルの全ロードを実行できます。ただし、デルタデータの変更をプライマリから複製するには、セットアップを開始する前にプライマリキーを作成します。 この記事では、Bucardo をセットアップし、PostgreSQL 8.4 から PostgreSQL 9.6 にデータ変更を複製する方法を示しています。 前提条件 開始する前に、次のものが必要です。 Bucardo 用 Ubuntu 16.04 を使用する 1 つの EC2 インスタンス (Bucardo サーバー: 172.31.88.4) PostgreSQL 8.4.2 で RHEL 6 を使用する 1 つの EC2 インスタンス (PostgreSQL 8.4.2: 172.31.16.177) us-east-1 に […]

Read More

IAM 認証を使用して、pgAdmin Amazon Aurora PostgreSQL または Amazon RDS for PostgreSQL に接続する

Amazon Relational Database Service (RDS) では、AWS Identity and Access Management (IAM) を使用して、Amazon RDS for PostgreSQL データベースインスタンスと Amazon Aurora PostgreSQL クラスターのデータベースアクセスを管理できます。データベース管理者は、データベースユーザーを IAM のユーザーとロールに関連付けることができます。IAM データベース認証を使用すると、データベースクラスターに接続するときにパスワードを入力する必要がありません。代わりに、認証トークンを用います。 認証トークンは、Aurora がリクエスト時に生成する一意の文字列で、AWS 署名バージョン 4 を使用します。各トークンの有効期間は 15 分です。認証は IAM を使用して外部で管理されるため、ユーザーの認証情報をデータベースに保存する必要はありません。パスワード認証を引き続き利用することもできます。詳細については、PostgreSQL ドキュメントのウェブサイトの「クライアント認証」を参照してください。 この記事では、Aurora PostgreSQL クラスターに接続するためにすでに使用しているツールで IAM 認証を行う方法について説明します。ここで説明する手順は Amazon RDS for PostgreSQL インスタンスでも同じ様に使えます。リソースをプロビジョニングし、IAM 認証の環境を設定するために提供されたコマンドを使って一緒に実行することができます。 この記事では、psql コマンドラインツールまたは IAM 認証情報による pgAdmin のいずれかを使用してクラスターに接続する方法についても説明します。 前提条件 RDS は、PostgreSQL データベースインスタンスの Secure […]

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

Oracle や SQL Server のコードを PostgreSQL に変換する開発者向けの移行のヒント

PostgreSQL は、オープンソースのリレーショナルデータベースの中でも最も人気のあるシステムの 1 つです。Oracle や Microsoft SQL Server などの商用データベースから移行する場合、最高のデータベースの選択肢の 1 つと言ってもいいでしょう。AWS には 2 つのマネージド PostgreSQL オプションである Amazon RDS と Amazon Aurora があります。 マネージド PostgreSQL サービスに加えて、AWS は移行を支援するツールやリソースも提供しています。AWS Schema Conversion Tool (SCT) は既存のスキーマの変換や、複数のソースデータベースとターゲットデータベースをサポートする無料の AWS ツールです。AWS には AWS Database Migration Service (DMS) もあります。これは異種データベース間および同種データベース間でデータを転送し、継続的にレプリケートを行うのに役立ちます。同様に、商用データベースと PostgreSQL などのオープンソースデータベースとの間の多数の機能マッピングを文書化した移行プレイブックを提供しています。 この投稿では、コードを PL/SQL から PL/pgSQL に変換するためのヒントとベストプラクティスをご紹介します。これにより、パフォーマンスの向上や PostgreSQL へのコード変換を実行できます。この投稿は、データベースの移行に取り組む開発者を対象としており、読者はデータベースと PL/SQL の基本的な知識があることを前提としています。 パフォーマンスに関する考慮事項 このセクションでは、SQL Server や […]

Read More

IAM 認証を使用した Amazon RDS および Aurora PostgreSQL データベースアクセスの保護

AWS は 2 つのマネージド型 PostgreSQL オプションを提供しています。Amazon RDS for PostgreSQL と Amazon Aurora PostgreSQL です。どちらも、データベースへのアクセスを管理するための IAM 認証をサポートしています。データベースユーザーを IAM ユーザーとロールに関連付けて、1 つの場所からすべてのデータベースへのユーザーアクセスを管理できます。これにより、異なる RDS/Aurora インスタンスで権限が同期されないことによる問題を回避できます。 この記事では、IAM 認証を使用できる 2 つの一般的なシナリオについてご説明します。同じ AWS アカウントの Amazon EC2 でホストされているアプリケーションから RDS/Aurora データベースにアクセスする方法と、別のアカウントからアクセスする方法があります。また、これらのシナリオに関連するベストプラクティスについてもご説明します。 この記事では Aurora PostgreSQL 環境を使用していますが、このソリューションは RDS PostgreSQL でも機能します。クラスタープロビジョニングの一部として IAM 認証を有効にしたり、クラスター作成後に CLI またはコンソールを使用してクラスターを変更したりできます。IAM データベース認証は、PostgreSQL バージョン 9.6.9 および 10.4 以降で使用できます。 前提条件 開始する前に、以下の前提条件を満たしてください。 2 つの AWS アカウント […]

Read More

Amazon RDS を PostgreSQLのメジャーバージョンとマイナーバージョンにアップグレードするためのベストプラクティス

 オープンソースの PostgreSQL は、頻繁に発生するバグ、セキュリティの問題、データ破損の問題の修正を含む新しいマイナーバージョンとメジャーバージョンをリリースすることがあります。一般的に、Amazon RDS は、新しいエンジンバージョンが利用できるようになってから 5 か月以内にサポートすることを目指しています。また、特定のバージョンがサポートされなくなった場合、RDS PostgreSQL インスタンスをアップグレードする必要があります。この場合、RDS は、データベースインスタンスのアップグレードを提案するメールを送信します。RDS コンソールまたは AWS CLI コマンド modify-db-instance を使用して、インスタンスをアップグレードできます。Auto Minor Version Upgrades を有効にすることで、インスタンスを適切なマイナーバージョンにアップグレードすることもできます。 RDS はアップグレードを管理しますが、一般的な問題、関連する手順、それにビジネスへの影響を最小限に抑えてアップグレードするためのベストプラクティスを把握しておく必要があります。この記事では、次のトピックを含む RDS PostgreSQL データベースエンジンのアップグレードについて説明します。 メジャーバージョンとマイナーバージョンのアップグレード中に起こること アップグレード中の一般的な問題 Auto Minor Version Upgrades 機能の理解 アップグレードの準備 メジャーバージョンとマイナーバージョンのアップグレード PostgreSQL 10 以降、たとえば 10 から 11 など、バージョン番号の最初の数字が増加することで、新しいメジャーバージョンにアップグレードしたことを示しています。2 番目の数字が、たとえば 10.4 から 10.9 に変わった場合、マイナーバージョンのアップグレードがあったことを示します。PostgreSQL 10 以前では、9.5 から 9.6 など 2 桁目の数字がメジャーバージョンを示し、9.6.5 から […]

Read More

RDS PostgreSQL トランスポータブルデータベースを使用したデータベースの移行

Amazon RDS for PostgreSQL が、バージョン 11.5 以降および 10.10 以降で、高速データのインポートおよびエクスポート方法であるトランスポータブルデータベース機能をサポートするようになりました。RDS PostgreSQL インスタンスから別の PostgreSQL インスタンスに PostgreSQL データベースをインポートする必要がある場合は、pg_dump や pg_restore などのネイティブツールを使用するか、\copy コマンドを使用してデータをターゲットテーブルにロードできます。トランスポータブルデータベースを使用すると、こうした従来のツールよりもはるかに高速にデータを移動することができます。この機能は、データベースごとの物理的な転送メカニズムを提供する pg_transport と呼ばれる新しい拡張機能を使用します。物理的な転送では、最小限の処理でデータベースファイルをストリーミングすることにより、最小限のダウンタイムでデータをより高速に移動できます。 この記事では、pg_transport の一般的なユースケースと、AWS CLI と psql ユーティリティを使用して RDS PostgreSQL 環境でこれを設定および使用する方法について説明します。 pg_transport のユースケース 多くのお客様は、RDS PostgreSQL で独自の SaaS またはマルチテナントおよびエンタープライズアプリケーションを実行しています。これは、Amazon RDS により、AWS での PostgreSQL デプロイの設定、操作、スケーリングが簡単になるためです。単一の RDS PostgreSQL インスタンスに複数のデータベースを配置して、さまざまな顧客やアプリケーションにサービスを提供するのは一般的なことです。このような環境では、トランスポータブルデータベースが役立ちます。 以下のようなユースケースに最小限のダウンタイムで対処できます。 リソースの管理や分離を改善するために、RDS インスタンス間でデータベースを移動する。たとえば、SaaS プロバイダーであれば、特定の容量に達した場合、顧客データを異なる構成 (より大きなインスタンスタイプ、プロビジョンド IOPS、または異なるインスタンスファミリー) に移動する必要があります。 セキュリティおよびコンプライアンスの理由でデータを再編成する。たとえば、ある AWS アカウントの […]

Read More

RDS および Aurora PostgreSQL ログの操作: パート 2

このシリーズの最初の投稿である RDS および Aurora PostgreSQL ログの操作: パート 1 では、PostgreSQL のログの重要性と、より多くのデータベースアクティビティの詳細情報をキャプチャするためのさまざまなパラメータを調整する方法を記載しています。PostgreSQL ログは、データベースの問題を解決するのに役立つ情報を提供します。この投稿は、PostgreSQL ログにアクセスするためのさまざまな方法に焦点を当てています。 PostgreSQL ログはクラスターの各インスタンスに生成および保存されます。これらのログファイルにアクセスする方法は複数あります。以下のセクションでは、これらの方法をいくつか説明します。 AWS マネジメントコンソールにアクセスする PostgreSQL ログファイルにアクセスするための最も直接的な方法は、AWS Management Console を介して行います。以下の手順を実行します。 Amazon RDSを開きます。 RDS/Aurora インスタンスを選択します。 [ログとイベント] を選択します。 [Logs] で必要なログファイルを選択します。 [View]、[Watch]、または[Download]のいずれかを選択します。 以下のスクリーンショットは、[Logs] セクションのプレビューです。 これは、ログファイルを表示またはダウンロードするための最も基本的な方法です。 CloudWatch Logs にログファイルを発行する RDS および Aurora PostgreSQL は、Amazon CloudWatch Logs へのログの発行をサポートしています。詳細については、RDS ユーザーガイドの「PostgreSQL ログの Amazon CloudWatch Logs への発行」を参照してください。 ログが CloudWatch Logs の場合、アラームを作成し、リアルタイム分析を行うことができます。たとえば、log_statements を […]

Read More

RDS および Aurora PostgreSQL ログの操作: パート 1

PostgreSQL は最も人気のあるオープンソースのリレーショナルデータベースシステムの 1 つです。30 年以上におよぶ開発作業を経ている PostgreSQL は、多数の複雑なデータワークロードを処理できる、信頼性が高く堅牢なデータベースであることが証明されています。AWS は 2 つのマネージド型 PostgreSQL オプションを提供しています。Amazon RDS for PostgreSQL と Amazon Aurora PostgreSQL です。デバッグやモニタリングのためのデータベースアクティビティログをどのようにキャプチャするのかという質問が、新規の PostgreSQL ユーザーから多く寄せられます。この記事では、RDS および Aurora PostgreSQL を設定して追加のエンジンログを生成する方法について説明します。記事の第 2 部である RDS および Aurora PostgreSQL ログの操作: パート 2 では、これらのログファイルにアクセスする方法をご紹介します。 PostgreSQL は、データベース管理者 (DBA) に役立つ情報を含むイベントログを生成します。デフォルトでは、SQL クエリエラー、ログイン試行の失敗、デッドロックがデータベースログにキャプチャされます。これらのエラーメッセージはアプリケーションのさまざまな問題の特定に役立ちます。たとえば、レガシーアプリケーションを Oracle から PostgreSQL に変換すると、一部のクエリが PostgreSQL 構文に正しく変換されないことがあります。こうした誤った形式のクエリによってログにエラーメッセージが生成されるため、問題のあるアプリケーションコードを特定するのに役立ちます。 デフォルトのログ記録を使用するだけでなく、PostgreSQL ログ記録パラメータに変更を加えれば、パフォーマンスの低下やセキュリティ監査などの問題を特定、解決するのに役立つ情報を取得できます。このログ記録パラメータを設定すると、接続と切断、スキーマ変更クエリ、すべてのスロークエリとその時間、ロックのため待機中で時間がかかるクエリ、一時的なディスクストレージを消費するクエリ、リソースを消費するバックエンド自動バキュームプロセスなどの情報をキャプチャできます。 このログ情報は、データベース使用中の潜在的なパフォーマンスと監査の問題をトラブルシューティングするのに有用です。この記事では、このログ記録の有効化とその利点について詳しく説明します。 DB パラメータグループ RDS および Aurora […]

Read More