1

AWSデータパイプラインを使用して、S3からRedshiftにいくつかのCSVデータをインポートしています。また、コピーアクティビティが完了した後、すべてのS3ファイルを削除するためにShellCommandActivityを追加しました。私は全体のプロセスで画像を添付しました。すべてのAWSデータパイプラインアクティビティで同じEC2インスタンスを使用

Move S3 CSV data to Redshift using AWS data pipeline

すべてが正常に動作しますが、それぞれの活動は、それが自分のEC2インスタンスの起動します。コピーコマンドが完了した後、ShellCommandActivityがRedshiftCopyActivityと同じEC2インスタンスを再利用する可能性はありますか?

ありがとうございました!

答えて

0

同じEC2インスタンスでShellCommandActivityを実行するには、Architectを使用してShellCommandActivityを編集し、Runs OnオプションでEc2Instanceを選択しました。 ShellCommandActivityは、RedshiftCopyActivityと同じEC2Instanceに自動的にマップされます。今、全体のプロセスは次のようになります。

enter image description here

ありがとうございました!

0

シェルまたはCLIですべてのアクティビティを実行できない限り、同じインスタンス内ですべてを行うことはできません。

私が与えることのできる1つの提案は、新しいテクノロジに移行することです。 AWSデータパイプラインは古くなっています(4歳)。あなたは、あなたが支払っているものの一部を費やすAWS Lambdaを使用する必要があります。ファイルがS3にアップロードされるとすぐにRedshiftにファイルを読み込むことができます。クリーンアップは自動的で、ラムダはAWS Data Pipelineよりもはるかに強力です。チュートリアルA Zero-Administration Amazon Redshift Database Loaderはあなたが望むものです。はい、学習曲線がありますが、タイトルに示されているように、管理負荷はゼロです。

+0

ありがとうございます。私はそのチュートリアルに従おうとしましたが、私が理解したことから、ラムダ関数はあなたのRedshiftクラスターを公にアクセスできるようにする必要があり、今のところこれを行う方法は他にありません。このブログ記事を参照してください:https://github.com/awslabs/aws-lambda-redshift-loader/issues/30。私にとっては、Redshiftクラスターには公然とアクセスできないようにする必要があります。私たちのインフラストラクチャはVPCに基づいています。 –

+0

@ Radu-StefanZugravuチェックアウト:https://aws.amazon.com/blogs/aws/new-access-resources-in-a-vpc-from-your-lambda-functions/ – helloV

+0

私もそれを試しました。 s3エンドポイントを追加しても、ラムダ関数がタイムアウトします。タスクは59.00秒後にタイムアウトします。私がラムダ関数をVPCの外に出すと、アップロードされたs3ファイルが正常に取得されます。何か案が?ありがとうございました! –