Amazon Web Services ブログ

Category: Amazon RDS

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

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