おーしまブログ

プログラミングやってます

AWSでのデプロイに成功した

こんにちは、おーしまです。

今回は、自動車レビューアプリをAWSを使って、デプロイできたので、それに関して書いていきます。

これまでは「Heroku」を使ってデプロイしていたのですが、あまりに動作が遅いので、AWSドメインを取得して、デプロイしようと思いました。

今回使ったのは、AWS

  • Route53
  • EC2
  • Certificate Manager

を使って、デプロイしました。

内容を全て書くのは大変なので、概念だけ書いていこうと思います。(間違っていたらすみません)
(やりたい人は、ネット記事を見てください)

まず、それぞれについて説明します。

Route53ドメインを取得することができます。ドメインとは、「exsample.com」のようにユーザーがウェブブラウザのアドレスバーに入力してウェブサイトやウェブアプリケーションにアクセスするための名前のことです。取得にはお金がかかります。(このブログは「お名前ドットコム」というところでドメインを取得しました、だからお名前ドットコムみたいな感じ)本来、インターネットでやり取りするときは、IPアドレスという数字達(192.0.2.44など)で通信をしているのですが、それだと分かりにくいので、ドメインIPアドレスを紐づけて、https://~~~~で検索できるようにしているんですね。

EC2:EC2は仮想マシンを用意してくれるシステムです。EC2インスタンスを生成することで、サーバー環境が構築でき、複数作成することもできるので汎用性に優れています。ちょっと難しいので、私も完全に理解できていませんが、サーバーを用意してくれるという認識で良いと思います。

Certificate ManagerAmazon Certificate Manager なので「ACM」と言われます。先ほどの「EC2」を使えば、デプロイはできるのですが、HTTP通信になってしまうので、通信のセキュリティが乏しくなってしまい、ブラウザでも、「この通信は安全ではありません」と表示されてしまいます。あのGoogleも、HTTP通信より、HTTPS通信を使えと言っています。その時にACMの出番です。ACMドメイン証明書を発行してくれるので、それを「Application Load Balancer」に適用すると、HTTPS通信で通信することができます。


f:id:tomo_bb_aki0118115:20201202005314p:plain

図でまとめると、こんな感じでしょうか。
ACMの証明書で、ユーザーとApplication Load BalancerまでがHTTPS通信となり、Application Load Balancerから、EC2までHTTP通信となっています。
Webサーバーは「Nginx」を使っています。Webサーバーのみでレスポンスを返せない動的コンテンツは、その後、アプリケーションサーバーからレスポンスを求めます。
「Rack」は翻訳プログラムのことを指します。Rackがあることで、アプリケーションサーバーとアプリ(自動車レビューアプリ)がやり取りできるようになります。



やってみると、インフラも結構面白いですね。本来は、アプリの仕様から「なぜ、これを使うのか」まで考えて、インフラを構築していかなければならないと思うのですが、私の実力では、そこまで及ばず、ネットに書いてある通りにしかできませんでした。もっと知識をつけていかないと、いけないと思うので、まだ頑張りたいと思います。



今回はここまでです。
それでは、また。

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}