AWSって便利だよね。
特にElasticBeanstalkさいこ〜。
というのもちょっとしたWebAPIを作ろうと思って、
Railsをパタパタしてました。
よし完成!
もうすぐリリースじゃい!!とは思ったものの、
デプロイ作業、nginx設定,loadbalancer,セキュリティグループ.etc...
フザケルナ∠( ゚д゚)/!!
そこまで本格的なものでもないのに、
そんなことまで楽しくやってる暇はありません。
そうなると「ElasticBeanstalk」だよね。
使い方とかは今度解説するね。
そうそう!!
今回はエラーにはまった話ですよ!!
生じたエラー
eb create ができなくなった!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ eb create Enter Environment Name (default is my-rails-api-dev): Enter DNS CNAME prefix (default is my-rails-api-dev): Select a load balancer type 1) classic 2) application 3) network (default is 1): Starting environment deployment via CodeCommit --- Waiting for Application Versions to be pre-processed --- ERROR: Pre-processing of application version app-c8a4-171003_024002 has failed. ERROR: Some application versions failed to process. Unable to continue deployment. |
え?
さっきまで出来てたのに!?!?
二分前は元気よくeb createしてくれたのになんで??
原因と対応
もうやだよね。
ググったのに全然役立つ回答はなく、
絶望にかられました。笑
一応いくつか候補は有りました。
自分には当てはまらなかったので参考のみ。
https://serverfault.com/questions/829776/aws-elb-all-application-versions-have-not-reached-a-processed-state-unable
.elasticbeanstalk内は一切いじってなかったし、
コンソール側から特殊な操作をしたわけではない。
やったことといえば、
Beanstalkの環境を
作ったり削除したりを10数回繰り返してたぐらいです<-
そこで、ふと思い出したことがありました。
AWSのリソースってコンソール上からは削除されていても
その実質的なリソースは削除されていないじゃね??
というのもOpsWorksを使って
60ほどEC2インスタンスを作って消して作って消して
ってやってたら、EC2コンソール上ではTerminatedになってるし
むしろ画面から消えているのに、EC2の作成上限に達した過去があります。
翌日は問題なく作ることが出来たので、
AWS内部の実質リソースはまだ残っていた可能性が大です。
ということで、AWSの内部で実はBeanstalkの同名のアプリケーションが作られすぎて
対応できないエラーが起きちゃってるのかなぁ。と勝手に判断しました。
違ったら教えてください....
ちゃんと紹介ページにも書いてありますしね。
https://aws.amazon.com/jp/elasticbeanstalk/details/
実行する環境の数が10を超える、アップロードするアプリケーションバージョンの数が500を超える、あるいは起動する Amazon EC2 インスタンスの数が20を超えるという場合は、AWS Elastic Beanstalk 上限リクエストフォームをお送りください。
これであることを信じ
また後日実行してみることにします。
後日実行とまさかのちょんぼ
はい。2日経ってeb createを実行してみました。
残念なことに、エラーが起き続けていました。
制限ではなかったことが、わかりましたね(血涙)
ということでコンソール上から
S3バケットを直接指定してやる作戦をとりました。
失敗しても残るzipデータがS3に残っているので、これで何か分かるかもと試してみたところ.........
でた!!でたでた!!!
これかぁぁぁぁっぁぁぁっぁぁぁl!!!!!!
理由は、yml設定ファイル内に’や があったからでした。
いや完全にちょんぼ...(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)
特にいじった記憶はなかったのになぁ....
でも新しい発見が有りましたよね!!
eb createからElasticBeansTalkを叩く時
.ebextension内に文字コードや表現のエラーがある場合
ログに残りません。
ログに残らないし、
「Waiting for Application Versions to be pre-processed」
で先に進まないエラーにあった方は、設定ファイルにダメな文字入ってないか確認してみてくださいね。
またね〜。