Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon Data Firehose を使用したテーブルへのデータのストリーミング

フォーカスモード
Amazon Data Firehose を使用したテーブルへのデータのストリーミング - Amazon Simple Storage Service

Amazon Data Firehose は、Amazon S3、Amazon Redshift、Amazon OpenSearch Service、Splunk、Apache Iceberg テーブル、カスタム HTTP エンドポイント、またはサポートされているサードパーティーのサービスプロバイダーが所有する HTTP エンドポイントなどのターゲットにリアルタイムのストリーミングデータを配信するためのフルマネージドサービスです。Amazon Data Firehose を使用すると、アプリケーションを記述したり、リソースを管理したりする必要はありません。Firehose にデータを送信するデータプロデューサーを作成すると、それにより、指定した送信先にデータが自動配信されます。データを配信前に変換するように、Firehose を設定することもできます。Amazon Data Firehose の詳細については、「Amazon Data Firehose とは」を参照してください。

テーブルバケットを AWS 分析サービスと統合した後、以下を行います。

  1. S3 テーブルにデータを配信するように Firehose を設定します。そのためには、Firehose がテーブルにアクセスできるようにする AWS Identity and Access Management (IAM) サービスロールを作成します。

  2. テーブルまたはテーブルの名前空間へのリソースリンクを作成します。

  3. リソースリンクに対するアクセス許可を付与することで、Firehose サービスロールにテーブルまたはテーブルの名前空間に対する明示的なアクセス許可を付与します。

  4. テーブルにデータをルーティングする Firehose ストリームを作成します。

Firehose が S3 テーブルを送信先として使用するロールの作成

Firehose には、AWS Glue テーブルにアクセスし、S3 テーブルにデータを書き込むための特定のアクセス許可を持つ IAM サービスロールが必要です。Firehose ストリームを作成する際に、この IAM ロールが必要です。

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左のナビゲーションペインの [ポリシー] を選択します。

  3. [ポリシーを作成] を選択し、ポリシーエディタで [JSON] を選択します。

  4. データカタログ内のすべてのデータベースとテーブルにアクセス許可を付与する次のインラインポリシーを追加します。必要に応じて、特定のテーブルとデータベースにのみ許可を付与できます。このポリシーを使用するには、user input placeholders をユーザー自身の情報に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "S3TableAccessViaGlueFederation", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:region:account-id:catalog/s3tablescatalog/*", "arn:aws:glue:region:account-id:catalog/s3tablescatalog", "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:table/*/*" ] }, { "Sid": "S3DeliveryErrorBucketPermission", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::error delivery bucket", "arn:aws:s3:::error delivery bucket/*" ] }, { "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/KMS-key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::error delivery bucket/prefix*" } } }, { "Sid": "LoggingInCloudWatch", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Sid": "RequiredWhenAttachingLambdaToFirehose", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

    このポリシーには、Kinesis Data Streams へのアクセス、Lambda 関数の呼び出し、AWS KMS キーへのアクセスを許可するステートメントが含まれています。これらのリソースを使用しない場合は、それぞれのステートメントを削除できます。

    エラーログ記録が有効になっている場合、Firehose はデータ配信エラーを CloudWatch ロググループとストリームにも送信します。このためには、ロググループとログストリーム名を設定する必要があります。ロググループとログストリーム名については、「Monitor Amazon Data Firehose Using CloudWatch Logs」を参照してください。

  5. ポリシーを作成したら、[信頼されたエンティティタイプ] として [AWS サービス] を使用して IAM ロールを作成します。

  6. [サービスまたはユースケース] で、[Kinesis] を選択します。[ユースケース]で、[Kinesis Firehose] を選択します。

  7. [次へ] を選択して、以前に作成したポリシーを選択します。

  8. ロールに名前を付けます。ロールの詳細を確認し、[ロールの作成] を選択します。ロールには、以下の信頼ポリシーがあります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "firehose.amazonaws.com" ] } } ] }

テーブルにアクセスするには、Amazon Data Firehose でテーブルの名前空間をターゲットとするリソースリンクが必要です。リソースリンクは、データベースやテーブルなどの別のデータカタログリソースのエイリアスまたはポインタとして機能するデータカタログオブジェクトです。リンクは、作成されたアカウントまたはリージョンのデータカタログに保存されます。詳細については、「AWS Lake Formation デベロッパーガイド」の「リソースリンクの仕組み」を参照してください。

テーブルバケットを AWS 分析サービスと統合した後、Firehose でテーブルを操作するためのリソースリンクを作成できます。

テーブル名前空間へのリソースリンクを作成し、そのリンク名を Firehose に渡して、Firehose がリンクされたテーブルを操作できるようにします。

次の AWS CLI コマンドは、S3 テーブルを Firehose に接続するために使用できるリソースリンクを作成します。このコマンドの例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

aws glue create-database --region us-east-1 \ --catalog-id "111122223333" \ --database-input \ '{ "Name": "resource-link-name", "TargetDatabase": { "CatalogId": "111122223333:s3tablescatalog/amzn-s3-demo-table-bucket", "DatabaseName": "my_namespace" }, "CreateTableDefaultPermissions": [] }'
注記

リソースリンクとターゲット (リンク先) 名前空間の両方にアクセス許可を個別に付与する必要があります。詳細については、「リソースリンクに対するアクセス許可の付与」を参照してください。

リソースリンクを使用してテーブルにアクセスする場合、リソースリンクとターゲット (リンク先) 名前空間またはテーブルの両方にアクセス許可を個別に付与する必要があります。Lake Formation コンソールまたは AWS CLI を通じて、テーブル名前空間にリンクされたリソースリンクに対する Lake Formation 許可を IAM プリンシパルに付与できます。

Console
  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開き、データレイク管理者としてサインインします。データレイク管理者の作成方法の詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. ナビゲーションペインで、[データアクセス許可][付与] の順に選択します。

  3. [アクセス許可の付与] ページの [プリンシパル] で、[IAM ユーザーとロール] を選択し、テーブルへのストリーミング用に作成したサービスロールを選択します。

  4. [LF タグまたはカタログリソース] で、[名前付きのデータカタログリソース] を選択します。

  5. [カタログ] で、[デフォルトカタログ] であるアカウント ID を選択します。

  6. [データベース] で、テーブル名前空間用に作成したリソースリンクを選択します。

  7. [リソースリンクの許可] で、[記述] を選択します。

  8. [Grant] (付与) を選択します。

CLI
  1. データレイク管理者として AWS CLI コマンドを実行していることを確認します。詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. 次のコマンドを実行して、S3 テーブルバケットのテーブルに対する Lake Formation 許可を IAM プリンシパルに付与することで、プリンシパルがテーブルにアクセスできるようにします。この例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。DataLakePrincipalIdentifier の値は IAM ユーザーまたはロールの ARN になります。

    aws lakeformation grant-permissions \ --principal DataLakePrincipalIdentifier=arn:aws:iam::account-id:role/role-name \ --resource Database='{CatalogId=account-id, Name=database-name}' \ --permissions DESCRIBE
  1. https://console.aws.amazon.com/lakeformation/ で AWS Lake Formation コンソールを開き、データレイク管理者としてサインインします。データレイク管理者の作成方法の詳細については、「AWS Lake Formation デベロッパーガイド」の「データレイク管理者を作成する」を参照してください。

  2. ナビゲーションペインで、[データアクセス許可][付与] の順に選択します。

  3. [アクセス許可の付与] ページの [プリンシパル] で、[IAM ユーザーとロール] を選択し、テーブルへのストリーミング用に作成したサービスロールを選択します。

  4. [LF タグまたはカタログリソース] で、[名前付きのデータカタログリソース] を選択します。

  5. [カタログ] で、[デフォルトカタログ] であるアカウント ID を選択します。

  6. [データベース] で、テーブル名前空間用に作成したリソースリンクを選択します。

  7. [リソースリンクの許可] で、[記述] を選択します。

  8. [Grant] (付与) を選択します。

S3 テーブルへの Firehose ストリームの設定

次の手順は、コンソールを使用して S3 テーブルにデータを配信するように Firehose ストリームを設定する方法を示しています。S3 テーブルへの Firehose ストリームを設定するには、次の前提条件が必要です。

前提条件

ストリームを設定するときに Firehose にルーティング情報を提供するには、名前空間用に作成したリソースリンクの名前をデータベース名として、その名前空間内のテーブルの名前として使用します。これらの値は、Firehose ストリーム設定の一意のキーセクションで使用して、データを 1 つのテーブルにルーティングできます。この値を使用して、JSON クエリ式を使用してテーブルにルーティングすることもできます。詳細については、「Route incoming records to a single Iceberg table」を参照してください。

S3 テーブルへの Firehose ストリームを設定するには (コンソール)
  1. Firehose コンソール (https://console.aws.amazon.com/firehose/) を開きます。

  2. [Firehose ストリームを作成] を選択します。

  3. [ソース] で、以下のいずれかのオプションを選択します。

    • Amazon Kinesis Data Streams

    • Amazon MSK

    • ダイレクト PUT

  4. [送信先] で、[Apache Iceberg テーブル] を選択します。

  5. Firehose ストリーム名を入力します。

  6. [ソース設定] を構成します。

  7. [送信先設定] で、[現在のアカウント] とストリーミング先のテーブルの [AWS リージョン] を選択します。

  8. [一意のキー設定]、JSONQuery 式、または Lambda 関数を使用して、データベース名とテーブル名を設定します。詳細については、「Firehose デベロッパーガイド」の「着信レコードを単一の Iceberg テーブルにルーティングする」および「着信レコードを異なる Iceberg テーブルにルーティングする」を参照してください。

  9. [バックアップ設定] で、[S3 バックアップバケット] を指定します。

  10. [詳細設定][既存の IAM ロール] で、Firehose 用に作成した IAM ロールを選択します。

  11. [Firehose ストリームを作成] を選択します。

ストリームに対して設定できるその他の設定の詳細については、「Amazon Firehose デベロッパーガイド」の「Firehose ストリームを設定する」を参照してください。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.