AWS Batch ジョブ定義のリビジョンの管理 - AWS 規範ガイダンス

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

AWS Batch ジョブ定義のリビジョンの管理

この例では、 AWS Batch サービスを使用し、IaC ツールとして Terraform を使用してバッチジョブをデプロイすることを前提としています。

Challenge

AWS Batch は更新ごとにジョブ定義の新しいリビジョンを作成し、時間の経過とともにリビジョンが蓄積されます。これにより、リソース管理が複雑になり、特にジョブ定義が頻繁に更新され、ダウンストリームリソースが最新バージョンへの正確な参照を必要とするエンタープライズ環境では、どのリビジョンが最新であるかが混乱する可能性があります。

ソリューション

次の Terraform コードは、いくつかの主要なコンポーネントを使用して AWS Batch リビジョン管理に対処します。

resource "terraform_data" "batch_job_definition_cleanup" { triggers_replace = { always_run = timestamp() } provisioner "local-exec" { command = "..." # AWS CLI commands to list and de-register older revisions } }

このコードでは:

  • terraform_data は、Terraform オペレーション中にプロlocal-execビジョナーと組み合わせてコマンドを実行します AWS Command Line Interface (AWS CLI)。

  • タイムスタンプトリガーは、すべてのterraform applyコマンドがクリーンアップスクリプトを実行するようにします。

  • AWS CLI 統合は、すべてのアクティブなジョブ定義リビジョン AWS Batch をクエリし、古いリビジョンの登録を解除します。

  • コマンドセクションにカスタム保持設定を追加して、保存する最近のリビジョンの数を指定できます。

利点

  • 管理の簡素化: ジョブ定義に古いリビジョンが蓄積されるのを防ぎます。

  • 明確な参照: ジョブ定義の最新バージョンへの正確なポインタを維持します。

  • リソースの最適化: AWS Batch 環境内の乱雑さを軽減します。

  • 自動化: 既存の Terraform ワークフローとクリーンに統合します。

このアプローチは、IaC のベストプラクティスを維持しながら、Terraform の拡張機能がプロバイダーの制限を克服する方法を示しています。このソリューションは、動的なリソース検出と管理が必要な同様のシナリオのテンプレートとして使用できます。