- AWS ソリューションライブラリ›
- Amazon EKS での Apache Spark による SQL ベースの ETL に関するガイダンス
Amazon EKS での Apache Spark による SQL ベースの ETL に関するガイダンス
スケーラブルなエンタープライズグレードの抽出、変換、ロード (ETL) ソリューションで、効率的なデータワークフローとより迅速なインサイトを引き出しましょう
概要
このガイダンスは、データ消費要件と、一般的な ETL プラクティスによって実行される低レベルのデータ処理アクティビティとの間のギャップを解消するのに役立ちます。SQL ベースのデータ管理システムを運用している組織では、最新のデータエンジニアリング手法に適応すると、データから得られる強力なインサイトの活用が遅くなる可能性があります。このガイダンスでは品質を意識した設計を示し、ユーザー中心の ETL アプローチのためのオープンソースデータフレームワーク Arc を通じて、データプロセスの生産性を向上させます。このガイダンスは、ETL プラクティスとの相互作用を促進し、簡素化を促進し、バッチとストリーミングの両方で ETL アクティビティを統合するための抽象化レベルを高めます。
当社はまた、効率的なコンピューティングインスタンス (AWS Graviton Processors など) を使用して最適な設計を行うオプションも提供しています。これにより、Amazon EKS で大規模な ETL ジョブを実行する場合のパフォーマンスとコストを最適化できます。
仕組み
このアーキテクチャ図は、Amazon EKS 上の Apache Spark を使用してデータ処理を高速化します。
Well-Architected の柱
上記のアーキテクチャ図は、Well-Architected のベストプラクティスを念頭に置いて作成されたソリューションの例です。完全に Well-Architected であるためには、可能な限り多くの Well-Architected ベストプラクティスに従う必要があります。
Amazon EKS クラスター内では、 Amazon Elastic Compute Cloud (Amazon EC2) インスタンス (X86_64 CPU、Graviton ARM64) がコンピューティングノードとして機能し、ガイダンスワークロードを実行します。Spark ジョブは、ワークロードの需要に基づいて弾力的にプロビジョニングされた Amazon EC2 スポットインスタンスで実行されます。CodeBuild と CodePipeline は GitOps プロセスを自動化し、Git コードの更新からコンテナイメージを構築し、それらを Amazon ECR プライベートレジストリにプッシュします。Argo Workflows は Amazon EKS で ETL ジョブをスケジュールし、自動的に Amazon ECR から Arc Docker イメージを取得し、アーティファクト S3 バケットから ETL アセットをダウンロードし、アプリケーションログを CloudWatch に送信します。データ ETL ジョブの自動デプロイと実行により、運用上のオーバーヘッドが最小限に抑えられ、生産性が向上します。さらに、 CodeBuild と CodePipeline を使用する CI/CD パイプラインは、ガイダンスの Arc Docker イメージを Amazon ECR に安全に保存しながら、継続的な改善と開発を確実にするのに役立ちます。
Amazon EKS クラスターリソースは Amazon VPC 内にデプロイされ、パブリックインターネットから論理的にネットワークを分離します。Amazon VPC は、 VPC エンドポイント (トラフィックを AWS ネットワーク内に保持)、セキュリティグループ、ネットワークアクセスコントロールリスト (ACL)、インバウンドとアウトバウンドのトラフィックと承認を制御するための AWS Identity and Access Management (IAM) ロールとポリシーなどのセキュリティ機能をサポートしています。Amazon ECR イメージレジストリは、脆弱性スキャンなどのコンテナレベルのセキュリティ機能を提供します。Amazon ECR と Amazon EKS はオープンコンテナイニシアチブ (OCI) レジストリと Kubernetes API 標準に従い、厳格なセキュリティプロトコルを組み込んでいます。IAM は Amazon S3 アプリケーションデータへのアクセスコントロールを提供し、 AWS キー管理サービス (AWS KMS) は Amazon S3 に保存されているデータを暗号化します。Amazon EKS クラスターのサービスアカウント用 IAM ロール (IRSA) により、ポッドのきめ細かなアクセス制御が可能になり、ロールベースのアクセス制御を実施し、不正な Amazon S3 データアクセスを制限できます。シークレットマネージャーは、認証情報を安全に保存および管理します。CloudFront は、Jupyter および Argo ワークフローのウェブツール用に SSL でエンコードされた安全なエントリーポイントを提供します。
Amazon EKS は、Kubernetes コントロールプレーンとコンピューティングプレーンを複数のアベイラビリティーゾーン (AZ) にデプロイすることで、可用性の高いトポロジを実現します。これにより、AZ が中断した場合でも、データアプリケーションの継続的な可用性が確保され、Amazon EKS に信頼性の高いマルチ AZ EC2 インスタンスをデプロイできます。 データストレージに関しては、 Amazon S3 は高い耐久性と可用性を提供し、リージョン内の複数の AZ 間でデータオブジェクトを自動的に複製します。さらに、Amazon ECR は可用性が高くスケーラブルなアーキテクチャで Docker イメージをホストし、コンテナベースのアプリケーションのデプロイと増分を確実にサポートします。Amazon S3、Amazon EKS、Amazon ECR は、運用コストを削減しながら高いサービスレベル契約 (SLA) を履行できるように設計されたフルマネージド型サービスです。これにより、ビジネスクリティカルなアプリケーションをデプロイして高可用性の要件を満たすことができます。
Amazon EKS クラスターの Amazon EC2 コンピューティングノードは、アプリケーションのワークロードに基づいて動的にスケールアップおよびスケールダウンできます。Graviton ベースの EC2 インスタンスは、カスタム設計の ARM ベースのプロセッサ、最適化されたハードウェア、およびアーキテクチャの強化により、パフォーマンス効率を向上させます。分離されたコンピューティングストレージパターン (入力データと出力データを Amazon S3 に保存する) により、動的なコンピューティングスケーリング効率が向上します。Data Catalog はメタデータ管理を効率化し、 Athena とシームレスに統合してメタデータ管理を簡素化し、クエリパフォーマンスを向上させます。Data Catalog はテクニカルメタデータのクローリングとメンテナンスを自動化し、効率的なデータ処理とクエリを実現します。Athena では、Amazon S3 データを移動せずに高速にクエリを実行できるため、分析ワークフローの効率がさらに向上します。
Amazon ECR は、コンテナイメージの保存と提供に月額固定料金を支払うコンテナアプリケーションを保護およびサポートするためのマネージドサービスです。Amazon EKS クラスターコンピューティングノードは、Spark ワークロードに基づいてスケールアップとスケールダウンが可能で、コスト効率の高い Graviton および Spot インスタンスタイプを提供します。Data Catalog は、サーバーレスで完全に管理されたメタデータリポジトリを提供するため、長時間稼働するメタデータデータベースをセットアップして維持する必要がなくなり、運用のオーバーヘッドとコストを削減できます。CodeBuild と CodePipeline は、サーバーレス環境での Arc ETL Framework の Docker イメージのビルドとデプロイを自動化し、インフラストラクチャのメンテナンスコストを削減するだけでなく、ビルドサーバーのプロビジョニングと管理の必要性をなくします。
このガイダンスでは、 Graviton プロセッサをベースにした効率的なコンピューティングタイプで Amazon EKS クラスターを実行します。Amazon ECR では、ハードウェアや物理サーバーをカスタム管理する必要がなくなります。Data Catalog と Athena はサーバーレスサービスであり、エネルギーと環境への影響をさらに軽減します。Amazon EKS コンピューティングレイヤーを大規模な Apache Spark ワークロード用に最適化することで、分析ワークロードの環境への影響を最小限に抑えることができます。パフォーマンスのニーズと持続可能性の優先事項に基づいて、ARM ベースのプロセッサを柔軟に選択できます。
実装のリソース
免責事項
今日お探しの情報は見つかりましたか?
ぜひご意見をお寄せください。ページのコンテンツ品質の向上のために役立てさせていただきます