Open8

RailsアプリケーションをAWSにデプロイしてみる

INOUE Amane/井上周INOUE Amane/井上周

AWSはいぜんに学んだけどすっかり忘れており、そこまで構成にこだわらないのでマネージできるところはマネージしてほしい。
ということで最初に挑戦したのがAWS Elastic Beanstalk。
しかし、ローカルではDockerコンテナを使用している関係でなかなか難しかった。
https://aws.amazon.com/jp/elasticbeanstalk/
https://qiita.com/kota-shidara/items/665fa02f360d42ff8435

INOUE Amane/井上周INOUE Amane/井上周

ところが、Cognitoのidpに接続しようとしたときに

 Failed to open TCP connection to cognito-idp.ap-northeast-1.amazonaws.com:443 (execution expired)

というエラーが発生。
色々調べてみたけどこのとき原因がわからなかった。

443ということでSSLで通信しようとしてるけど、VCPコネクタを使用している関係で開けてないもよう。。

ただ、最初と比べて

  • ECRにイメージがpushされている
  • RDSは構築済
  • それぞれのセキュリティグループも設定されている

ということで、もはや自分で構築できるのでは?という気持ちになってきた。

INOUE Amane/井上周INOUE Amane/井上周

ということでAWS ECS(Fargate), ALB, RDSのうちALBまわりを重点的に設定できるかと思い実施。
https://qiita.com/hiiragiya/items/7df1af73b6f3e34b63ab

ところがECSのデプロイで毎回失敗しており、アプリケーションのログを確認すると

HTTP parse error, malformed request: #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?>

こんな感じ。
SSLまわりのロードバランスがうまくいっていないのと、Rails側でもProduction環境ではSSLを矯正しているのでエラーになっている模様?

此処から先に進むにはSSL証明を取得する必要がある。