Amazon Web Services ブログ

Amazon Redshift のクロスアカウントデータ共有

変化の速い今日の世界で成功するためには、企業はデータを迅速に分析し、有意義なアクションを実行する必要があります。この概念は、データ駆動型組織を目指す多くの企業で採用されています。

データ駆動型組織はデータをアセットとして扱い、データを使用してインサイトの改善、そして優れた意思決定を行います。このような組織では、安全なシステムを使用してデータを収集、保存、処理し、組織内の人々と共有することで、データのパワーを最大限に活用しています。データや分析をサービスとして、顧客、パートナー、外部関係者に提供して、新しい収益源を創出している企業もあります。

すべてのステークホルダーは、正確な同一のデータを単一の情報源として共有および使用したいと考えています。また、パフォーマンスを低下させることなく、データのライブビューを同時にクエリし、必要なときに適切な情報にアクセスできるようにしたいと考えています。

titletitleクラウド用に構築された最初のデータウェアハウスである Amazon Redshift は、多くのお客様のデータアーキテクチャのデータウェアハウスコンポーネントとして広く採用されています。

Amazon Redshift ユーザーは、AWS アカウント内のユーザーとデータを共有できますが、他の AWS アカウントとデータを共有して共同作業するには、あるシステムからデータを抽出して別のシステムにロードする必要がありました。

この作業に必要なさまざまな抽出、変換、およびロードのジョブの構築と維持には、多くの手動作業が必要です。データ共有が拡大し、より多くのステークホルダーがデータを必要とするにつれ、複雑さが増します。その結果、データを安全に保つために必要な監視、コンプライアンス、セキュリティのベストプラクティスを維持することが難しくなります。

手動プロセスでは、古いデータ、低品質のビジネス結果、顧客への応答が遅くなる遅延やデータの不整合が発生するので、この共有方法ではデータの完全かつ最新のビューは提供されません。

この問題を解決するために、Amazon Redshift のクロスアカウントデータ共有が作成されました。

Amazon Redshift のクロスアカウントデータ共有
この新しい機能により、Amazon Redshift データウェアハウス内の完全で一貫性のある最新のデータを複数の AWS アカウントで任意の数のステークホルダーと共有するためのシンプルで安全な方法が提供されます。これにより、コンプライアンスおよびセキュリティ要件を満たしながら複数の組織間でデータを共有し、外部関係者とのコラボレーションが可能になります。

Amazon Redshift は、IAM 統合、システムテーブル、AWS CloudTrail を使用して、包括的なセキュリティコントロールと監査機能を提供します。お客様は、コンシューマー間でデータ共有のアクセス許可と使用を制御および監視し、必要に応じて即座にアクセスを取り消すことができます。

データベース、スキーマ、テーブル、ビュー、列、ユーザー定義関数など、さまざまなレベルでデータを共有し、Amazon Redshift データへのアクセスを必要とするユーザーやビジネスに合わせたきめ細かなアクセスコントロールを提供できます。

次に、クロスアカウントデータ共有の仕組みを見てみましょう。

2 つのアカウント間でデータを共有する

クロスアカウントのデータ共有は 2 段階のプロセスです。まず、プロデューサークラスタ管理者がデータ共有を作成し、オブジェクトを追加してコンシューマーアカウントにアクセスを付与します。次に、プロデューサーアカウント管理者は、指定されたコンシューマーのデータ共有を承認します。これは Amazon Redshift コンソールから行うことができます。

Amazon Redshift コンソールで Amazon Redshift クラスターを作成し、いくつかのサンプルデータをインポートします。クラスターが使用可能になったら、クラスターの詳細ページに移動し、[データ共有] タブを選択し、[Create datashare] (データ共有を作成) を選択します。

 

[Create datashare] (データ共有を作成) ページで、データ共有名を入力し、データベースを選択します。データ共有をパブリックにアクセス可能なクラスターと共有するので、[パブリックアクセス可能] を有効にします。

次に、データ共有に含めるオブジェクトをデータベースから選択します。他のユーザーと共有するオブジェクトをきめ細かくコントロールできます。ここでは、すべてのテーブルを共有します。ただし、実際には、1 つ以上のテーブル、ビュー、またはユーザー定義関数を選択できます。

最後のステップは、AWS アカウントをデータ共有に追加することです。2 番目の AWS アカウント ID を追加し、[Create datashare] (データ共有を作成) を選択します。

作成したデータコンシューマーを認証するには、コンソールの [Datashares] (データ共有) セクションで [Authorize] (認可) を選択します。コンシューマのステータスが [Pending authorization] (承認を保留中) から [Authorized] (承認済み) に変更されます。データ共有がセットアップされたので、セカンダリアカウントに切り替えて、コンシューマー AWS アカウントでデータ共有を使用する方法を説明します。クロスアカウントのデータ共有はリージョン間で機能しないため、セカンダリアカウントで同じリージョンを使用する必要があることに注意してください。

プロデューサーと同様に、データを使用するプロセスがあります。まず、データ共有をコンシューマーアカウントの 1 つ以上のクラスターに関連付ける必要があります。また、データ共有をコンシューマーアカウント全体に関連付けて、コンシューマーアカウントの現在および将来のクラスターが共有にアクセスできるようにすることもできます。

セカンダリアカウントにサインインし、コンソールの [データ共有] セクションに移動します。 [他のアカウントから] タブを選択し、プロデューサーの AWS アカウントから共有した news_blog_datashare を選択します。次に、[Associate] (関連付け) を選択して、アカウント内のクラスターにデータ共有を関連付けます。

クラスターの詳細ページで、[Create database from datashare] (データ共有からデータベースを作成) を選択し、新しいデータベースの名前を入力します。

クエリエディタでデータベースを選択し、データ共有の一部として利用可能になったすべてのオブジェクトに対してクエリを実行します。

[Run] (実行) を選択すると、クエリからデータが返されます。覚えておくべき重要なことは、これがデータのライブビューであるということです。プロデューサーデータベースの変更は、クエリに反映されます。コピーや手動での転送は必要ありません。

知っておくべきこと

クロスアカウントデータ共有に関する興味深い事実をいくつか紹介します。

セキュリティ – 承認および関連付けに必要なすべてのアクセス許可は、AWS Identity and Access Management (IAM) で管理されるため、IAM ポリシーを作成して、各ユーザーが完了できるオペレーションを制御できます。セキュリティ上の考慮事項については、「共有データアクセスの制御」を参照してください。

暗号化 – プロデューサークラスターとコンシューマークラスターの両方は、暗号化して同じ AWS リージョンに配置する必要があります。

リージョン – クロスアカウントデータ共有は、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アジアパシフィック (ムンバイ)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (パリ)、欧州 (ストックホルム)、南米 (サンパウロ) の各リージョンのすべての Amazon Redshift RA3 ノードタイプでご利用いただけます。

料金 – クロスアカウントデータ共有は、同じリージョンにあるクラスター間で利用できます。データの共有にはコストがかかりません。共有に参加する Redshift クラスターの料金のみが発生します。

Amazon Redshift のクロスアカウントデータ共有をお試しください。

この新機能はすぐに利用できます。クラスターを作成してクロスアカウントのデータ共有を開始してください。 開始方法の詳細については、「AWS アカウント間でのデータ共有」を参照してください。フィードバックをお待ちしています。

データ共有をご活用ください。

— Martin