Amazon Web Services ブログ

Category: Database

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

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

AWS DMS を使用した Amazon RDS for Oracle での災害復旧

AWS Database Migration Service (AWS DMS) は、オンプレミスのデータベースから Amazon Relational Database Service (RDS) にデータを移行するのに役立ちます。また、とりわけ、異種または同種のデータベースエンジン間でデータを移行するために使用できます。あらゆる規模の企業が、2 つ目の物理サイトをセットアップすることなく、AWS を使用して重要な IT システムの災害復旧 (DR) を高速化しています。DR ソリューションは RTO/RPO に依存します。ベストプラクティスの詳細については、「新しいホワイトペーパー: 災害復旧に AWS を使用する」を参照してください。 この記事では、AWS DMS を使用して、RDS プラットフォームで実行されている Oracle データベースの DR ソリューションをセットアップする方法について説明します。 災害復旧に AWS DMS を使用する理由 プライマリデータベースインスタンスが AWS で実行されている DR ソリューションには、クロスリージョンレプリケーションメカニズムが必要です。AWS DMS は、RDS から任意の場所 (別のリージョンを含む) へのデータのライブ移行をサポートしています。この機能を利用して、別のリージョンに個別の RDS インスタンスを設定して、DR データベースとして機能するようにできます。Oracle Golden Gate など、RDS 上の Oracle […]

Read More

モダンアプリケーション開発ホワイトペーパー(日本語改定版)が公開されました

皆さん、こんにちは! モダンアプリケーション開発スペシャリスト ソリューションアーキテクトの福井です。 私が執筆したモダンアプリケーション開発のホワイトペーパー(日本語版)がAWSホワイトペーパーサイトで公開されましたので、その内容を紹介させて頂きます。このホワイトペーパーは、以前こちらのブログで紹介させて頂いたModern Application Development on AWS(英語版)の日本語版になります。   ホワイトペーパーの内容 公開されたホワイトペーパードキュメントは、「AWS モダンアプリケーション開発 – AWS におけるクラウドネイティブ モダンアプリケーション開発と設計パターン」(日本語版)というタイトルの51ページのドキュメントで、 はじめに モダンアプリケーション開発 モダンアプリケーションの設計パターン AWSでのCI/CD まとめ の各章から構成されています。各章の簡単なご紹介は下記の通りです。

Read More

2019 年: Amazon Neptune の 1 年を振り返って

Amazon Neptune はローンチ後先月で 18 か月が経ちました。お客様によるグラフの革新的な使用法を学べたことは、貴重な経験でした。NBCUniversal は、Amazon Neptune を使用して、キュレーションおよびパーソナライズされたコンテンツを提供するためのグラフを管理しています。Thomson Reuters は、複雑な規制モデルを理解するためグラフを使用しています。Netflix は、データ系統にグラフベースのシステムを使用することにより、データインフラストラクチャの信頼性を向上させました。Zeta Global は、グラフベースの ID 解決を使用したカスタマーインテリジェンスプラットフォームを構築し、複数のデバイスとユーザーを関連付けています。本番環境で Amazon Neptune を使用しているお客様はさらに多くあります。 お客様の声に耳を傾けながら、Neptune を改善する方法も学びました。開発者のエクスペリエンス、パフォーマンス、エンタープライズ機能、コンプライアンスの強化、およびリージョンの拡張のために、12 か月の間に 12 回のエンジンリリースを行いました。次の 2019 リリースはカテゴリごとに整理してから、リリースされた日付順に整理してあります。最新のリリースは各カテゴリの最上位にあります。この記事を使って、製品で利用できる機能と修正を参照したり、今後のリリースで見たいものについてコメントしたりできます。いつものように、当社はお客様のご意見を歓迎いたします。質問やフィードバックがある場合は、コメントを残すか、@awscloud までご連絡ください。 開発者の経験 Amazon Neptune は、グラフアプリケーションの開発を簡単かつ高速にする機能を提供します。 10 月 16 日: Amazon Neptune は、グラフデータの変更をキャプチャする Streams のサポートを開始しました Amazon Neptune は、グラフの変更をキャプチャする簡単な方法である Streams をサポートしています。これを有効にすると、Neptune Streams は発生した変更をグラフ (変更ログデータ) に記録できます。Neptune Streams は、グラフで変更が発生したときにプロセスに通知する (つまり、Lambda をトリガーする) 場合に便利です。ストリームは、異なるリージョン、または Amazon Elasticsearch […]

Read More

新年の抱負 : Amazon DynamoDB のベストプラクティスを守る

Amazon DynamoDB のベストプラクティスを守ることを新年の抱負としてみてはいかがでしょうか。これらのベストプラクティスに従うことで、DynamoDB を使用する際のパフォーマンスを最大限に発揮し、最小限に抑えることができます。以下のリンクをクリックして、DynamoDB ドキュメントで各ベストプラクティスの詳細をご覧ください。 パーティションキーを効率的に設計して使用する DynamoDB テーブルにある各アイテムを固有に識別するプライマリーキーは、シンプルなキー (パーティションキーのみ) または複合キー (ソートキーと組み合わされたパーティションキー) にすることができます。アプリケーションは、テーブルとそのセカンダリインデックスの論理パーティションキー全体で統一されたアクティビティのために設計してください。バーストキャパシティー、アダプティブキャパシティー、および書き込みシャーディングといった追加のメリットが得られます。 ソートキーを使用してデータを編成する 適切に設計されたソートキーは、関連する情報を一か所に集め、それを効率的にクエリすることができます。複合ソートキーは、データで階層 (1 対多) リレーションシップを定義することを可能にし、任意の階層レベルでクエリすることができます。バージョン管理の目的でソートキーを使用することもできます。 セカンダリインデックスを効率的に使用する 多くの場合、セカンダリインデックスはアプリケーションが必要とするクエリパターンをサポートするために必須です。その一方、非効率的なセカンダリインデックスの使用は不必要にコストを増加させ、パフォーマンスを低下させます。スパースインデックスの使用方法、マテリアライズされた集計クエリのグローバルセカンダリインデックスの使用方法、および結果整合性のあるレプリカの作成方法を学習します。 大型のアイテムと属性を保存する方法を理解する DynamoDB では現在、テーブルに保存する各アイテムのサイズが制限されています。アプリケーションが、サイズ制限を超過したデータをアイテムに保存する必要がある場合、大きな属性を 1 つ以上圧縮したり、アイテムを複数のアイテムに分割したり (ソートキーによる効率的なインデックス化) することができます。また、アイテムをオブジェクトとして Amazon S3 に保存して、Amazon S3 オブジェクト識別子を DynamoDB アイテムに保存したりすることもできます。 期間ごとに 1 アプリケーションあたり 1 つのテーブルを使って時系列データに対応する DynamoDB における一般的な設計原則では、使用するテーブルの数を最小限にとどめることが推奨されています。ほとんどのアプリケーションには、単一のテーブルしか必要ありません。しかし、時系列データについては、期間ごとに 1 アプリケーションあたり 1 つのテーブルを使うことができます。 多対多リレーションシップを管理する 隣接リストは、DynamoDB における多対多リレーションシップのモデル化に有用な設計パターンの一部です。より一般的には、DynamoDB でグラフデータ (ノードとエッジ) を表現する方法を提供します。 ハイブリッドデータベースシステムを実装する 状況によっては、1 つ以上のリレーショナルデータベース管理システムから DynamoDB への移行が適切ではない場合があります。この場合は、ハイブリッドシステムの作成が望ましいかもしれません。 […]

Read More

Amazon Redshift でデータの取り込みとレポートのパフォーマンスを最大化する

これは ZS のゲスト投稿です。ZS の言葉を借りると、「ZS は企業と緊密に連携して、製品とソリューションの開発および提供を支援し、顧客価値と企業成果を押し上げるプロフェッショナルサービス企業です。ZS は、テクノロジー、コンサルティング、分析、運用も併せて行い、クライアントの商業体験を改善することを目指しています」 ZS は、MicroStrategy ベースの BI アプリケーションのセットアップと運用に関わりました。これは、Amazon がホストするバックエンドアーキテクチャのデータウェアハウスとして Amazon Redshift から 700 GB のデータを供給するものです。ZS は、Amazon S3 バケットや FTP システムなどのさまざまなシステムのさまざまな製薬データベンダーから医療データをデータレイクに供給しました。一時的な Amazon EMR クラスターを使用してこのデータを処理し、消費をレポートするために Amazon S3 に保存しました。レポート固有のデータは、COPY コマンドを使用して Amazon Redshift に移動させ、MicroStrategy はそれを使用してフロントエンドダッシュボードを更新します。 ZS には、利用可能な Amazon Redshift インフラストラクチャに対応するための厳格なクライアント設定 SLA があります。利用可能な小さな Amazon Redshift クラスターを使用して、大量のデータを処理するアプローチを見出すための実験を行いました。 この記事では、S3 から Amazon Redshift に大量のデータを読み込み、効率的な分散技術を適用して、比較的小さな Amazon Redshift クラスターでクエリのレポートのパフォーマンスを向上させるためのアプローチを示します。 データ処理方法 ZS インフラストラクチャは […]

Read More

2019: Amazon DocumentDB (MongoDB 互換) の 1 年を振り返って

2019 年 1 月 9 日 の Amazon DocumentDB (MongoDB 互換) のリリースと共に、当社の 2019 年が幕を開けました。リリース当初から、当社では皆様からいただいたフィードバックを謙虚に受け止めています。2019 年は、サービスの可用性、規模、およびパフォーマンスの向上を継続すると共に、サービスに追加してほしい機能を元に、要望から逆向きに開発する時間を取りました。 以下は、2019 年のリリースをカテゴリ単位でアルファベット順に分類してから、リリースされた日付け順 (最新リリースが各カテゴリの最上部) に並べたものです。2019 年に起こった Amazon DocumentDB に関する出来事などを把握したり思い出したりする際に、こちらの記事をお役立てください。Amazon DocumentDB でローンチされた機能の中に、皆様がご存知ない機能が見つかるかもしれません。質問がございましたら @josephidziorek までお知らせください。 コンプライアンス Amazon DocumentDB は、最高のセキュリティ基準を満たし、当社のセキュリティ検証を簡単にして、独自の規制およびコンプライアンス義務を満たせるように設計されています。Amazon DocumentDB は、HIPAA 対応に加えて、PCI DSS、ISO 9001、27001、27017、27018、および SOC 1、2、3 に準拠しているという評価をいただいています。 5 月 22 日: Amazon DocumentDB (MongoDB 互換) が SOC 1、2、3 に準拠 この発表により、Amazon DocumentDB は SOC 1、2、3 に準拠したことになります。 12 […]

Read More

Amazon Redshift Spectrum を使用してネストされたデータ型を扱う

Redshift Spectrum は Amazon Redshift の機能で、Amazon S3 に保存されたデータを直接クエリでき、ネストされたデータ型をサポートします。この記事では、ネストされたデータ型からメリットが得られるユースケース、ネストされたデータ型で Amazon Redshift Spectrum を使用して優れたパフォーマンスとストレージ効率を達成する方法、およびネストされたデータ型のいくつかの制約について説明します。 この記事では、ダミーデータで生成されたデータセットを使用します。テーブルスキーマを表示できます。データセットを試したい場合、Redshift クラスターをデプロイし、そこで DDL を実行して、この記事のクエリ例を使用するか、独自のクエリを作成します。 データモデリング 多くのシナリオでは、データは階層で生成されます。たとえば、顧客がいくつかのアイテムを購入したとします。分析のために、ストレージを節約したりデータ処理を高速化したりするためのさまざまなデータモデリングアプローチがあります。ストレージ効率を達成するための一般的なアプローチの 1 つは、次元モデルです。 次のテーブルに、ダミーの顧客データを示します。 username name sex address mail birthdate 1 erin15 Sarah Newman F 795 Nancy Shoal Apt.684 Phillipschester, MI 01979 josephlyons@yahoo.com 2010/4/24 2 shepherdlisa Mark Lee M 754 Michelle Gateway Port Johnstad, ME 35695 guerrerotodd@hotmail.com 1932/11/10 […]

Read More

2019 年: Amazon DynamoDB の 1 年を振り返って

 Amazon DynamoDB にとって、2019 年も多忙な年でした。AWS では、信頼性、暗号化、速度、スケーリング、および柔軟性の観点から、当サービスでの皆さんのエクスペリエンスをこれまで以上に向上させることに焦点を当てた新しい更新機能をリリースしてきました。 以下は、2019 年のリリースをカテゴリ単位でアルファベット順に分類してから、リリースされた日付け順 (最新リリースが各カテゴリの最上部) に並べたものです。1 年間に及ぶサービスの変更を把握しておくのは困難だと思います。この便利な 1 ページの記事で、2019 年に DynamoDB で起こった事柄を確認、または思い出してください。ご質問等がございましたら、@DynamoDB までお問い合わせください。(注意: この記事は年末前に掲載されるので、2019 年の終わりまでに行われるローンチが他にもあれば、それらで記事を更新していく予定です。) アダプティブキャパシティー 11 月 15 日: 頻繁にアクセスされる項目を自動的に隔離することにより、Amazon DynamoDB アダプティブキャパシティーが不均衡なワークロードをより良く処理できるようになりました DynamoDB アダプティブキャパシティーは、頻繁にアクセスされる項目を自動的に隔離することによって不均衡なワークロードをより良く処理します。お使いのアプリケーションが、1 つ、または複数の項目に対して過度に高いトラフィックを実行する場合、DynamoDB はパーティション間のバランスを取り直し、頻繁にアクセスされる項目が同じパーティションに格納されないようにします。この最新の拡張機能は、ワークロードに対して中断のないパフォーマンスを維持するために役立ちます。 5 月 23 日: Amazon DynamoDB アダプティブキャパシティーが即時利用可能に DynamoDB は、変化し続けるアプリケーションのトラフィックパターンに対応して、アダプティブキャパシティーをリアルタイムで適用します。これにより、不均衡なワークロードにさえも中断のないパフォーマンスを無期限に維持できます。即時に利用できるアダプティブキャパシティーは、すべての DynamoDB テーブルおよびにグローバルセカンダリインデックスに対してデフォルトで有効になっており、追加の料金はかかりません。 バックアップと復元 11 月 13 日: Amazon DynamoDB のバックアップからのテーブルの復元時におけるテーブル設定の実行が可能に DynamoDB のバックアップからテーブルを復元するときに、テーブルの設定を行うことができます。具体的には、復元されたテーブルと共に作成されないように、ローカルおよびグローバルセカンダリインデックスの一部またはすべてを除外できます。請求モード、およびプロビジョニングされたキャパシティーの設定を変更することも可能です。 4 月 4 […]

Read More