翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 の拡張機能がプロバイダーの制限を克服する方法を示しています。このソリューションは、動的なリソース検出と管理が必要な同様のシナリオのテンプレートとして使用できます。