Amazon Managed Workflows for Apache Airflow とは何ですか? - Amazon Managed Workflows for Apache Airflow

Amazon Managed Workflows for Apache Airflow とは何ですか?

Amazon Managed Workflows for Apache Airflow は、Apache Airflow 用のマネージドオーケストレーションサービスで、クラウド上でデータパイプラインを大規模に設定・運用するために使用できます。Apache Airflow は、ワークフローと呼ばれる一連のプロセスとタスクをプログラムで作成、スケジュール、監視するために使用されるオープンソースのツールです。Amazon MWAA を使用すると、スケーラビリティ、可用性、セキュリティのための基盤を管理する必要なく、Apache Airflow と Python を使用してワークフローを作成できます。Amazon MWAA は自動的にワークフローの実行キャパシティを拡張してニーズに対応し、Amazon MWAA は AWS セキュリティサービスと統合して、データへの迅速で安全なアクセスを提供します。

機能

  • 自動エアフローセットアップ — Amazon MWAA 環境を作成するときに Apache Airflow バージョンを選択することで、Apache Airflow をすばやくセットアップできます。Amazon MWAA は、インターネット上でダウンロードできる同じ Apache Airflow ユーザーインターフェイスとオープンソースコードを使用して、Apache Airflow を自動的にセットアップします。

  • 自動スケーリング — 環境内で稼働するワーカーの最小数と最大数を設定して、Apache Airflow ワーカーを自動的にスケーリングします。Amazon MWAA は環境内のワーカーを監視し、自動スケーリングコンポーネントを使用して需要を満たすワーカーを、定義したワーカーの最大数に達するまで追加します。

  • ビルトイン認証 — AWS Identity and Access Management (IAM) で アクセスコントロールポリシー を定義することで、Apache Airflow ウェブサーバー のロールベースの認証と認可を有効にします。Apache Airflow ワーカーは、AWS サービスへの安全なアクセスのためにこれらのポリシーを引き継ぎます。

  • ビルトインセキュリティ — Apache Airflow ワーカーとスケジューラーは Amazon MWAA の Amazon VPC で実行されます。データも AWS Key Management Service を使用して自動的に暗号化されるため、環境はデフォルトで安全です。

  • パブリックアクセスモードまたはプライベートアクセスモード — プライベートまたはパブリックアクセスモードを使用して Apache Airflow ウェブサーバーにアクセスします。[パブリックネットワーク] アクセスモードは、インターネット経由でアクセス可能な Apache Airflow ウェブサーバーの VPC エンドポイントを使用します。プライベートネットワークアクセスモードは、VPC からアクセス可能な Apache Airflow ウェブサーバーの VPC エンドポイントを使用します。いずれの場合も、Apache Airflow ユーザーのアクセスは、AWS Identity and Access Management (IAM) で定義したアクセスコントロールポリシーと AWS SSO によって制御されます。

  • アップグレードとパッチの効率化 — Amazon MWAA は Apache Airflow の新しいバージョンを定期的に提供しています。Amazon MWAA チームはこれらのバージョンに合わせてイメージを更新し、パッチを適用します。

  • ワークフローモニタリング — Amazon CloudWatch で Apache Airflow ログと Apache Airflow メトリクスを表示して、Apache Airflow タスクの遅延やワークフローエラーを特定できます。追加のサードパーティツールは必要ありません。Amazon MWAA は、環境メトリクスを自動的にCloudWatch に送信します。有効になっている場合は、Apache Airflow ログも送信します。

  • AWS 統合 — Amazon MWAA は、Amazon Athena、AWS Batch、Amazon CloudWatch、Amazon DynamoDB、AWS DataSync、Amazon EMR、AWS Fargate、Amazon EKS、Amazon Data Firehose、AWS Glue、AWS Lambda、Amazon Redshift、Amazon SQS、Amazon SNS、Amazon SageMaker、および Amazon S3 といったオープンソースの統合をサポートしており、さらに数百の組み込みおよびコミュニティ作成のオペレータとセンサーが利用可能です。

  • ワーカーフリート — Amazon MWAA は、コンテナを使用してワーカーフリートをオンデマンドでスケーリングし、AWS Fargate の Amazon ECS を使用してスケジューラーの停止を減らすことをサポートしています。Amazon ECS コンテナでタスクを呼び出すオペレーターと、Kubernetes クラスターでポッドを作成して実行する Kubernetes オペレーターがサポートされています。

アーキテクチャ

外側のボックス (下の画像) に含まれるすべてのコンポーネントは、アカウント内では単一の Amazon MWAA 環境として表示されます。Apache Airflow スケジューラーとワーカーは、AWS Fargate コンテナであり、環境の Amazon VPC のプライベートサブネットに接続されています。各環境には、AWS によって管理される独自の Apache Airflow メタデータベースがあり、このメタデータベースはスケジューラとワーカーの Fargate コンテナがプライベートでセキュアな VPC エンドポイントを介してアクセスできます。

Amazon CloudWatch、Amazon S3、Amazon SQS、および AWS KMS は Amazon MWAA とは別であり、Fargate コンテナ内の Apache Airflow スケジュラー および ワーカー からアクセスできる必要があります。

Apache Airflow ウェブサーバーには、[パブリックネットワーク] の Apache Airflow アクセスモードを選択してインターネット経由でアクセスすることも、[プライベートネットワーク] の Apache Airflow アクセスモードを選択して VPC 内からアクセスすることもできます。いずれの場合も、Apache Airflow ユーザーのアクセスは、AWS Identity and Access Management (IAM) で定義したアクセス制御ポリシーによって制御されます。

注記

複数の Apache Airflow スケジューラーは Apache Airflow v2 以上でのみ使用できます。Apache Airflow タスクライフサイクルの詳細については、Apache Airflow リファレンスガイドの 「概念」 を参照してください。

次の画像は、Amazon MWAA 環境のアーキテクチャを示します。

Integration

活発で成長を続けている Apache Airflow オープンソースコミュニティでは、Apache Airflow を AWS サービスと統合するためのオペレーター (サービスへの接続を簡素化するプラグイン) が提供されています。これには、Amazon S3、Amazon Redshift、Amazon EMR、AWS Batch、および Amazon SageMaker などのサービスのほか、他のクラウドプラットフォーム上のサービスも含まれます。

Amazon MWAA で Apache Airflow を使用すると、AWS サービスや Apache Hadoop、Presto、Hive、Spark などの一般的なサードパーティツールとの統合が完全にサポートされ、データ処理タスクを実行できます。Amazon MWAA は Amazon MWAA API との互換性を維持することに尽力しており、Amazon MWAA は AWS サービスに信頼性の高い統合を提供してコミュニティが利用できるようにし、コミュニティの機能開発にも関与することを目指しています。

サンプルコードについては、「Amazon Managed Workflows for Apache Airflow」を参照してください。

サポートバージョン

Amazon MWAA は複数のバージョンの Apache Airflow をサポートしています。サポートされている Apache Airflow のバージョンと、各バージョンに含まれている Apache Airflow コンポーネントの詳細については、Amazon Managed Workflows for Apache Airflow 上の Apache Airflow のバージョン を参照してください。

次のステップ