https://github.com/kayac/ecspresso#tfstate
- ecspresso.yml
|
1 2 3 4 5 6 7 8 9 10 |
region: ap-northeast-1 cluster: default service: test service_definition: ecs-service-def.json task_definition: ecs-task-def.json plugins: - name: tfstate config: url: remote://app.terraform.io/hoge/hoge-${ENVIRONMENT}-network func_prefix: "network_" |
- ecs-task-def.json
|
1 2 3 4 5 6 7 8 9 10 11 12 |
~省略~ "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "{{ network_tfstate `output.subnet_private_1a_id` }}", "{{ network_tfstate `output.subnet_private_1c_id` }}", "{{ network_tfstate `output.subnet_private_1d_id` }}" ], "securityGroups": [ "{{ network_tfstate `module.network.aws_security_group.container["hoge"].id` }}" ], |
- .github/workflow/deploy.yml
|
1 2 3 4 |
~省略~ - name: Deploy API with using ecspresso env: TFE_TOKEN: ${{ secrets.TFE_TOKEN }} |
みんな知ってると思うが、Terraformでリソースを管理している場合、ecspressoはタスク定義で環境ごとのサブネットやセキュリティ/ターゲットグループをハードコーディング/envsubstする必要がない。tfstate pluginを使えば簡単に参照することができ、S3はもちろんのことHCP Terraformでも利用ができるので、今回はその例を書いてみた。とても便利なのと、汎用的にテンプレートも作れる。
Was this helpful?
0 / 0
1989年生まれのFindy/SRE サブマネージャー。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。 現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、 緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用、チームマネジメントを担当している。
個人事業主では数社サーバー保守とベンチャー企業のインフラコンサルティングを行うほか、TechBullを創業し、ジュニアエンジニアのコミュニティを運営している。さらに、エンジニア向けYouTubeメディア「TECH WORLD」ではSRE関連の動画に出演し、過去には脆弱性スキャナ「Vuls」のOSS活動にも貢献。 ガジェット系エンジニアYouTuberとしても発信。