Cloud Composer 1 | Cloud Composer 2
このページでは、Cloud Composer が Cloud Storage の環境に保存するデータについて説明します。
環境を作成するときに、Cloud Composer によって Cloud Storage バケットが作成され、環境に関連付けられます。バケットの名前は、環境のリージョン、名前、およびランダムな ID(us-central1-b1-6efannnn-bucket
など)に基づきます。
Cloud Composer は、ワークフロー(DAG)のソースコードとそれらの依存関係を Cloud Storage 内の特定のフォルダに保存し、Cloud Storage FUSE を使用して Cloud Composer 環境の Airflow インスタンスにフォルダをマッピングします。
Cloud Storage バケット内のフォルダ
フォルダ | Storage パス | マッピングされたディレクトリ | 説明 |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
環境の DAG を保存します。このフォルダ内の DAG のみが環境にスケジュールされます。 |
プラグイン | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
カスタム プラグインを保存します。カスタムのインハウス Airflow 演算子、フック、センサー、インターフェースなどです。 |
データ | gs://bucket-name/data |
/home/airflow/gcs/data |
タスクが生成して使用するデータを保存します。このフォルダは、すべてのワーカーノードにマウントされます。 |
ログ | gs://bucket-name/logs |
タスクの Airflow ログを保存します。ログは Airflow ウェブ インターフェースでも利用できます。 |
容量に関する考慮事項
DAG とプラグイン: Cloud Composer はデフォルトで、環境、dags/
フォルダ、plugins/
フォルダ用に 100 GB の容量をプロビジョニングします。
ワークフローの失敗を回避するために、Python モジュールに DAG またはプラグインが含まれていなくても、DAG、プラグイン、Python モジュールを dags/
フォルダまたは plugins/
フォルダに保存します。たとえば、DataFlowPythonOperator
が参照する py_file
を dags/
または plugins/
に保存する必要があります。
データとログ: data/
フォルダと logs/
フォルダは容量制限の対象外です。
ウェブサーバーのエラーを回避するには、ウェブサーバーが DAG(未実行)を解析するために必要なデータが dags/
フォルダに存在することを確認してください。存在しない場合は、ウェブサーバーがデータにアクセスできないか、Airflow ウェブ インターフェースを読み込めなくなります。
データの同期
Cloud Storage バケットの DAG やプラグインを変更すると、Cloud Composer によってクラスタ内のすべてのノードのデータが同期されます。
Cloud Composer による dags/
フォルダと plugins/
フォルダの同期は、ローカルにコピーすることによって一方向に行われます。一方向に同期されるため、これらのフォルダのローカルの変更は上書きされます。
data/
フォルダと logs/
フォルダの同期は、Cloud Storage FUSE を使用して双方向に行われます。
Cloud Composer 環境では、データはウェブサーバーと同期されません。容量が限られており、ウェブサーバーが DAG を解析するが実行はしないためです。 DAG はワーカーによって実行されます。