0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS MWAA設定ガイド】エンジニア向け:主要パラメータの解説とベストプラクティス

Posted at

はじめに:MWAAの設定に悩むエンジニアへ

AWS Managed Workflows for Apache Airflow(MWAA)は、Apache Airflowをマネージドで提供するサービスです。
しかし、「どのパラメータをどのように設定すればよいのか分からない」という課題に直面するエンジニアも多いのではないでしょうか。
本記事では、MWAAの主要な設定パラメータについて、公式ドキュメントや実務経験に基づいた解説を行い、ベストプラクティスや注意点も併せて紹介します。

MWAAとは?その概要と背景

MWAAは、Apache Airflowのワークフロー管理をAWS上で簡単に実現できるマネージドサービスです。
Airflowの設定ファイルであるairflow.cfgの内容を、MWAAでは環境変数として設定することで、柔軟な構成が可能となっています。
これにより、スケーラビリティや可用性の高いワークフロー管理が実現できます。

よくある課題とエラー

MWAAの設定において、以下のような課題やエラーが報告されています:

  • タスクの同時実行数が制限されるcore.parallelismcore.dag_concurrencyの設定不足。
  • カスタムプラグインが読み込まれないcore.lazy_load_pluginsの設定がTrueのまま。
  • Secrets Managerとの連携エラーsecrets.backendsecrets.backend_kwargsの設定ミス。
  • メール通知が送信されない:SMTP設定の不足や誤り。
これらの課題は、適切なパラメータ設定ベストプラクティスの遵守によって解決可能です。

主要パラメータの解説と設定例

以下に、MWAAで設定可能な主要なパラメータとその設定例を示します。

1. タスク関連の設定


core.parallelism = 40
core.dag_concurrency = 16
core.default_task_retries = 3

これらの設定により、タスクの同時実行数やリトライ回数を制御できます。

2. スケジューラー関連の設定


scheduler.catchup_by_default = False
scheduler.scheduler_zombie_task_threshold = 300

スケジューラーの挙動や、ゾンビタスクの検出時間を設定できます。

3. ワーカーのオートスケーリング設定


celery.worker_autoscale = 16,12

ワーカーの最大・最小同時実行数を設定し、負荷に応じたスケーリングを実現します。

4. Secrets Managerとの連携設定


secrets.backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
secrets.backend_kwargs = {"connections_prefix": "airflow/connections", "variables_prefix": "airflow/variables"}

AWS Secrets Managerを利用して、接続情報や変数の安全な管理が可能です。

5. メール通知設定


email.email_backend = airflow.utils.email.send_email_smtp
smtp.smtp_host = smtp.gmail.com
smtp.smtp_starttls = True
smtp.smtp_ssl = False
smtp.smtp_port = 587
smtp.smtp_user = your_email@gmail.com
smtp.smtp_password = your_app_password

メール通知を有効にするためのSMTP設定です。Gmailのアプリパスワードを使用することを推奨します。

ベストプラクティスと運用上の注意点

MWAAの運用において、以下のベストプラクティスを遵守することが重要です:

  • 最小権限の原則:IAMロールやポリシーは、必要最小限の権限に留める。
  • Secrets Managerの活用:接続情報や変数はSecrets Managerで管理し、コード内にハードコーディングしない。
  • CI/CDの導入:DAGのデプロイはCI/CDパイプラインを通じて行い、手動での変更を避ける。
  • ログの監視:CloudWatch Logsを活用し、エラーや異常の早期検出を行う。
  • バージョン管理requirements.txtplugins.zipはS3でバージョン管理し、変更履歴を追跡可能にする。

まとめと今後の展望

MWAAの設定は多岐にわたりますが、各パラメータの意味と役割を正しく理解し、適切に設定することが、安定したワークフロー運用の鍵となります。
今後は、より高度な設定やトラブルシューティングについても取り上げていく予定です。
本記事が、MWAAの設定に悩むエンジニアの一助となれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?