ENECHANGE Developer Blog

ENECHANGE開発者ブログ

ElasticBeanstalkのUI変更の際にTerraformで生じた問題

こんにちは。関東の梅雨入りする日が誕生日という雨要素の多いCTO室のkazです。 terraformでElasticBeanstalkの環境作成時にエラーが発生し、オーケストレーションが失敗したので、ちょっと調べてみたら、しょうもないことが原因だったので、泣きながら記事を書いてます。

経緯

  • UIが新しくなったコンソールを見ていると、ElasticBeanstalkのConfigurationの表示名が変更になってたので、terraformでもそれを指定しました。 f:id:dev-enechange:20180627010448p:plain

  • こんな感じに。

/**********************/
/* worker environment */
/**********************/
resource "aws_elastic_beanstalk_environment" "xxxxxxxxx" {
  name                 = "xxxxxxxxx"
  application          = "xxxxxxxxx"
  solution_stack_name  = "Puma with Ruby 2.3 running on 64bit Amazon Linux/2.7.2"
  tier                 = "Worker"
  tags {
    Service     = "xxxxxxxxx"
    Environment = "xxxxxxxxx"
    Description = "Managed by Terraform"
  }
  • 以前のConfigurationはこんな感じ。
/**********************/
/* worker environment */
/**********************/
resource "aws_elastic_beanstalk_environment" "xxxxxxxxx" {
  name                 = "xxxxxxxxx"
  application          = "xxxxxxxxx"
  solution_stack_name  = "64bit Amazon Linux 2016.09 v2.3.2 running Ruby 2.3 (Puma)"
  tier                 = "Worker"
  tags {
    Service     = "xxxxxxxxx"
    Environment = "xxxxxxxxx"
    Description = "Managed by Terraform"
  }

結果

  • planは通ったけど、applyしたら失敗しましたよ...
* aws_elastic_beanstalk_environment.xxxxxxxxx: InvalidParameterValue: No Solution Stack named 'Puma with Ruby 2.3 running on 64bit Amazon Linux/2.7.2' found.

原因

  • ドキュメント見たら、Solution Stack Nameの箇所は変更されてないので、以前の書き方でapplyすると成功しました。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.rubydocs.aws.amazon.com

  • コードに書く値はちゃんとドキュメントを参照しましょう...!