Amazon Web Services ブログ

Category: Database

Amazon Redshift を使用したレイクハウスアーキテクチャの ETL および ELT 設計パターン: パート 2

 このマルチポストシリーズのパート 1、Amazon Redshift を使用したレイクハウスアーキテクチャの ETL および ELT 設計パターン: パート 1 では、Amazon Redshift Spectrum、同時実行スケーリング、および最近サポートされるようになったデータレイクエクスポートを使用して、データレイクアーキテクチャ用の ELT および ETL データ処理パイプラインを構築するための一般的なお客様のユースケースと設計のベストプラクティスについて説明しました。 この記事では、AWS サンプルデータセットを使用して、Amazon Redshift のいくつかの ETL および ELT デザインパターンのステップバイステップのチュートリアルで、使用を開始する方法を説明します。 前提条件 開始する前に、次の前提条件を満たしていることを確認してください。 この記事では、US-West-2 (オレゴン) リージョンから公開されている 2 つの AWS サンプルデータセットを使用します。テスト実行には US-West-2 (オレゴン) リージョンを使用して、クロスリージョンのネットワークレイテンシーとデータ移転によるコストを削減します。 同じリージョンに AWS アカウントがあること。 AWS アカウントに AdministratorAccess ポリシーが付与されていること (本番環境の場合、これをさらに制限する必要があります)。 データレイクに、Amazon Redshift からアンロードしたデータを保存するための eltblogpost という名前の既存の Amazon S3 バケットがあること。バケット名は AWS […]

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

2019 年に最も閲覧された Amazon DynamoDB ドキュメントページのトップ 20

以下の 20 のページは、2019 年に最も閲覧された Amazon DynamoDB のドキュメントページです。このリストには、各ページの内容を説明するために、簡単な記述とそれぞれのリンクが含まれています。このリストを使用して、AWS の他のお客様が何を読んでいるかをご覧ください。前から知りたいと思っていたトピックに対する興味が湧くかもしれません。 クエリの操作 DynamoDB のクエリオペレーションは、プライマリキー値に基づいて項目を検索します。複合プライマリキー (パーティションキーおよびソートキー) がある任意のテーブルまたはセカンダリインデックスを照会することができます。 Amazon DynamoDB とは この DynamoDB についての簡単な紹介は、DynamoDB 開発者ガイドのウェルカムページとしても役立ちます。 DynamoDB ローカル (ダウンロード可能バージョン) のセットアップ ダウンロード可能なバージョンの DynamoDB によって、DynamoDB ウェブサービスにアクセスすることなくアプリケーションを記述してテストすることができます。本番用にアプリケーションをデプロイする準備が整うと、コードを若干変更するだけで DynamoDB ウェブサービスを使用できるようになります。 DynamoDB のベストプラクティス DynamoDB を使用する際に、パフォーマンスを最大化し、スループットコストを最小化するための推奨事項をすばやく見つけることができます。 DynamoDB での制限 特に指定のない限り、これらの現在の DynamoDB の制限 (または、場合によっては欠如) は、リージョンごとに適用されます。 クエリ KeyConditionExpression パラメータを使用して、パーティションキーに特定の値を指定します。クエリオペレーションは、そのパーティションキーの値を持つテーブルまたはインデックスからすべての項目を返します。 読み取り/書き込みキャパシティーモード DynamoDB には、テーブルの読み取りと書き込みを処理するために、オンデマンドとプロビジョンドの 2 つの読み取り/書き込みキャパシティーモードがあります。 DynamoDB コアコンポーネント DynamoDB で用いる主要なコンポーネントは、テーブル、項目、属性です。テーブルは項目の集合であり、それぞれの項目は属性の集合です。 DynamoDB の使用開始 […]

Read More

Amazon RDS for Oracle の Oracle GoldenGate を使用したリージョン間災害復旧機能の実装

多くの AWS ユーザーは、日々のアクティビティの骨の折れる作業に AWS ポートフォリオで利用できるマネージドサービスを活用しています。Amazon RDS はこれらのサービスの 1 つであり、リレーショナルデータベースのデプロイに最適です。RDS を使って、リレーショナルデータベースの管理と保守の管理費用を大幅に削減できます。 この記事では、あるリージョンから別のリージョンに実行されているデータベースインスタンスの Amazon RDS for Oracle でリージョン間の災害復旧 (DR) をセットアップする方法を示します。ソリューションは、Amazon EC2 インスタンスハブにインストールされた、Oracle GoldenGate を使用することです。そのインスタンスハブは、DDL レプリケーションを実行するために統合キャプチャモードで設定されたものです。 概要 次の要因に応じて、DR を実装する方法は複数あります。 目標復旧時間 (RTO) および目標復旧ポイント (RPO) DR サイトのセットアップと保守のコストと管理タスク 地理的多様性のための DR サイトの場所 Amazon RDS for Oracle は、マルチ AZ 配置オプションを提供し、データベース (DB) インスタンスの可用性と耐久性を強化しています。これは、多くの場合、一部の顧客ユースケースに効果的な DR ソリューションです。DR サイトを 2 つの異なるリージョンに分散する必要がある場合、DR にマルチ AZ を使用することはできません。ただし、前述の要因に応じて、このようなソリューションを実装する方法はいくつかあります。 ソリューションのアーキテクチャ ソリューションは、次のコンポーネントで構成されています。 GoldenGate […]

Read More

Amazon DynamoDB の使用開始

Amazon DynamoDB は、任意の規模で 1 桁のミリ秒のパフォーマンスを実現するために構築されたキーと値およびドキュメントデータベースです。これは、マルチリージョンでマルチマスターのフルマネージドデータベースで、組み込みのセキュリティ、バックアップとリストア、およびインターネット規模のアプリケーション用のメモリ内キャッシュを備えています。 この記事では、開始するために知っておく必要がある基本的な事項を確認します。テーブルを作成し、DynamoDB テーブルを設計するときの主な考慮事項について学習します。次に、いくつかのサンプル項目を挿入し、最後にそれらをクエリします。サンプル項目は実際の例で、AWS のオープンデータのレジストリからの Amazon Customer Reviews Dataset です。このガイドでは、データセットのビジネス要件および技術要件が DynamoDB 設計にどのように通知されるかについて説明します。この記事は読者に前提知識がないことを想定しています。 まず、ユースケースを分析しましょう。この記事のこのデータセットは、1 日数百万人のユーザーにサービスを提供している e コマースウェブサイトの本番レビューを表しています。特定の製品のレビューにすばやくアクセスし、投稿したすべてのレビューをユーザーが見られるようにしたい場合があるでしょう。 これらの条件は両方とも、大規模なデータセットへの高速アクセスを必要とします。DynamoDB は、それに対する完璧なソリューションです。 テーブルの作成 最初のステップは、テーブルを作成することです。 以下のスクリーンショットのプレビューに示すように、AWS マネジメントコンソール のサービスの検索で、DynamoDB を入力して選択します。 以下の画像に示すように、[テーブルの作成] を選択します。 テーブル名 には、product_reviews などの名前を入力します。ここで、重要な決定を行います。DynamoDB は、キーを使用して、複数のインスタンスにデータを整理および配布します。キータイプには、次の 2 つの基本的なタイプがあります。 – パーティションキー – これは、DynamoDB が内部ハッシュ関数に使用して、保存するアイテムの物理的な保存場所を決定する値です。 – ソートキー – これは、一致するパーティションキーを持つアイテムをソートするために使用します。複数の値を連結して、複合ソートキーを作成できます。 ホットキーを回避するために、データが可能な限り均等に分散されるパーティションキーを選択します。パーティションキーの設計とホットキーの回避の詳細については、ドキュメントの「ワークロードを均等に分散するためのパーティションキーの設計」を参照してください。DynamoDB でさらに読み取りを行い、hash と ranges キーを参照する場合、これらはパーティションキーおよびソートキーの以前の用語です。 DynamoDB テーブルには、テーブル内の各アイテムを一意に識別するプライマリキーが必要です。プライマリキー には以下の 2 つのタイプがあります。 – […]

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

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

運用上の認識を高めるための Amazon DynamoDB のモニタリング

Amazon DynamoDB はサーバーレスデータベースです。このサービスは、この分散システムの背後にあるインフラストラクチャの運用と保守に関連する、未分化の困難な作業を扱います。お客様は、API を使用して、テーブルのモニタリングと操作に使用できる操作データをキャプチャします。この記事では、DynamoDB を運用するためにダッシュボードとアラームを構築する際に考慮する一連のメトリクスについて説明します。 DynamoDB によって公開された Amazon CloudWatch メトリクスを使用すると、データモデルのコンテキストで進化するワークロードと DynamoDB の相互作用を理解するのに役立ちます。メトリクスは、適用されるリソースレベルに基づいて、次の 3 つのカテゴリーに分類されます。 DynamoDB で箱から出してすぐに使用できるメトリクス (「箱から出してすぐに」と注記)。 メトリクス計算 によるコンピューティングを必要とするメトリクス (「メトリクス計算が必要」と注記)。 カスタム AWS Lambda 関数を使用して Amazon CloudWatch に自己公開する必要があるメトリクス。 本番環境に移行すると、DynamoDB で運用の卓越性を実現するための推奨事項も取得できます。 この例で必要なカスタムメトリクスを公開するコードをダウンロードするには、「GitHub リポジトリ」を参照してください。カスタム CloudWatch メトリクスを公開するための Lambda 関数は、デフォルト設定をオーバーライドするための多くの環境変数を受け入れます。詳細については、README を確認してください。この記事の公開時点で、環境変数は次のとおりです。 CLOUDWATCH_CUSTOM_NAMESPACE – デフォルトでは、AWS Lambda 関数は「Custom_DynamoDB」名前空間にメトリクスを公開します。変更する場合は、CLOUDWATCH_CUSTOM_NAMESPACE 環境変数を設定します DYNAMODB_ACCOUNT_TABLE_LIMIT – デフォルトでは、AWS Lambda 関数は DynamoDB アカウントテーブルの制限が 256 であると想定します。アカウントテーブルの制限を決定する API 呼び出しはないため、AWS にアカウントのこの制限を増やすように依頼した場合は、DYNAMODB_ACCOUNT_TABLE_LIMIT を […]

Read More

Kinesis と DynamoDB をイベントソースにする際の AWS Lambda の新しいスケーリング管理

AWS Lambda は、Amazon Kinesis Data Streams と Amazon DynamoDB ストリームのイベントソースで利用可能な、新しいスケーリングパラメータを導入しました。Parallelization Factor は、各シャードにおける Lambda 関数呼び出しの同時実行数を増やす設定を可能にします。このパラメータは、デフォルトでは 1 です。これによって、処理されるレコードの順序を保証しながら、シャード数を過大にスケールすることなく、より高速なストリーム処理が可能になります。

Read More