AWS CI/CD パイプラインを使用して AWS Glue ジョブをデプロイする CodePipeline - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CI/CD パイプラインを使用して AWS Glue ジョブをデプロイする CodePipeline

作成者: Bruno Klein (AWS) および Luis Henrique Massao Yamada (AWS)

環境:本稼働

テクノロジー: DevOps、ビッグデータ

AWS サービス: AWS Glue 、AWS CodeCommit、AWS CodePipeline、AWS Lambda

[概要]

このパターンは、Amazon Web Services (AWS) CodeCommit と AWS を AWS Glue CodePipeline と統合し、開発者がリモート AWS リポジトリに変更をプッシュするとすぐに AWS Lambda を使用してジョブを起動する方法を示しています。 CodeCommit  

開発者が抽出、変換、ロード (ETL) リポジトリに変更を送信し、その変更を AWS にプッシュすると CodeCommit、新しいパイプラインが呼び出されます。パイプラインは、これらの変更を含む AWS Glue ジョブを起動する Lambda 関数を開始します。AWS Glue ジョブは ETL タスクを実行します。

このソリューションは、企業、開発者、データエンジニアが変更をコミットしてターゲットリポジトリにプッシュしたらすぐにジョブを開始する場合に役立ちます。より高いレベルの自動化と再現性を実現できるため、ジョブの起動時とライフサイクル中のエラーを回避できます。

前提条件と制限

前提条件

  • アクティブなAWS アカウント

  • Git がローカルマシンにインストールされている

  • Amazon Cloud 開発キット (Amazon CDK) がローカルマシンにインストールされている

  • Python がローカルマシンにインストールされている

  • 添付ファイルセクションのコード

制限

  • パイプラインは、AWS Glue ジョブが正常に起動されるとすぐに終了します。ジョブの完了を待たずに行われます。

  • 添付のコードはデモ専用です。

アーキテクチャ

ターゲットテクノロジースタック

  • AWS Glue

  • 「AWS Lambda」

  • AWS CodePipeline

  • AWS CodeCommit

ターゲットアーキテクチャ

このプロセスは次の 4 つの手順で構成されます。

  1. 開発者またはデータエンジニアは ETL コードを変更し、その変更をコミットして AWS にプッシュします CodeCommit。

  2. プッシュによってパイプラインが開始されます。

  3. パイプラインは Lambda 関数を開始します。Lambda 関数はリポジトリで codecommit:GetFile を呼び出し、ファイルを Amazon Simple Storage Service (Amazon S3) にアップロードします。

  4. Lambda 関数は ETL コードで新しい AWS Glue ジョブを起動します。

  5. Lambda 関数はパイプラインを終了します。

自動化とスケール

サンプル添付ファイルは、AWS Glue を AWS と統合する方法を示しています CodePipeline。ユーザー自身で使用するためにカスタマイズまたは拡張できるベースラインサンプルを提供します。詳細については、エピックセクションを参照ください。

ツール

  • AWS CodePipeline – AWS CodePipeline はフルマネージド型の継続的デリバリーサービスで、リリースパイプラインを自動化して、アプリケーションとインフラストラクチャを迅速かつ確実に更新できます。

  • AWS CodeCommit – AWS CodeCommit は、安全な Git ベースのリポジトリをホストするフルマネージド型のソース管理サービスです。

  • AWS Lambda – AWS Lambda はサーバーをプロビジョニングまたは管理しなくてもコードを実行できるサーバーレスコンピュートサービスです。

  • AWS Glue – AWS Glue は、分析、機械学習、アプリケーション開発用のデータの検出、準備、結合を容易にするサーバーレスデータ統合サービスです。

  • Git クライアント – Git には GUI ツールが用意されています。または、コマンドラインまたはデスクトップツールを使用して、 から必要なアーティファクトをチェックアウトできます GitHub。 

  • AWS CDK — AWS CDK は、使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースの定義に役立つオープンソースのソフトウェア開発フレームワークです。

エピック

タスク説明必要なスキル
AWS CLI を設定します。

AWS コマンドラインインターフェイス (AWS CLI) を設定し、現在の AWS アカウントをターゲットにして認証します。手順については、AWS CLI ドキュメントを参照してください。

開発者、 DevOps エンジニア
サンプルプロジェクトファイルを抽出します。

添付ファイルからファイルを抽出し、サンプルプロジェクトファイルを含めるフォルダを作成します。

開発者、 DevOps エンジニア
サンプルコードをデプロイします。

ファイルを抽出したら、抽出場所から以下のコマンドを実行してベースラインサンプルを作成します。

cdk bootstrap cdk deploy git init git remote add origin <code-commit-repository-url> git stage . git commit -m "adds sample code" git push --set-upstream origin main

最後のコマンドの後、パイプラインと AWS Glue ジョブのステータスを監視できます。

開発者、 DevOps エンジニア
コードをカスタマイズします。

etl.py ファイルのコードをビジネス要件に合わせてカスタマイズします。ETL コードを改訂、パイプラインステージを変更、またはソリューションを拡張できます。

データエンジニア

関連リソース

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip