今日起きたこと
ある時点を境にelastic beanstalkがインスタンス追加に失敗するようになりました。
/var/log/eb-activity.logを見たところ、
[2016-09-01T04:49:21.207Z] INFO [2904] - [Application deployment/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Activity execution failed, because: 'ascii' codec can't encode characters in position 1011-1027: ordinal not in range(128) (ElasticBeanstalk::ExternalInvocationError)
というエラーが出ていました。
対応
- Activityの名前からして.ebextentionsが関係している
- エラーメッセージはどうやらpythonで非ascii文字が含まれたデータをasciiでデコードしたときに出るものらしい
という点から、.ebextensions以下のファイルに含まれていた日本語コメントを全て削除し、デプロイしなおしたところ復旧しました。
amazonに問い合わせ
amazonに問い合わせたところ、以下のような内容でした(逐語的な転記は避けます)
- マルチバイト文字が.ebextensions以下のファイルに含まれている場合デプロイに失敗するように挙動が変わった
- 開発にフィードバックはするが対応は難しい
releasenoteを確認
こちらを確認したところ、該当するような記述は見当たりませんでした。
仕様なのか現象なのか微妙なところですが、こういった情報は是非もっと詳細に共有してほしいものです。
今回は不幸中の幸いで日中の営業時間内だったのですぐに対応できましたが、デプロイに関わるところなので、挙動がしれっと変更されて情報共有は問い合わせベースというのは不親切ではないかと思います。
まとめ
- .ebextensions以下のファイルに日本語コメントがあったら削除しましょう
- コメントをどうしても描きたかったら英語かro-maji de kakimashou
- こういうことがあるとバグ推測力が上がるという圧倒的感謝