EC2 dockerとアプリケーションの関係について、認識が合っているか確認してほしいです。
解決したいこと
EC2 docker とアプリケーションの関係について、認識が合っているか確認してほしいです。
私は現在、Laravelでポートフォリオを作成中の初学者です。
そこそこアプリケーションができてきたので、インフラ(?)周りのことを現在学習中です。
全体像を掴むために、AWSのEC2でwebサーバーを構築すること、dockerで環境構築して環境差異を無くすこと、などを調べました。
そこで、実際にアプリケーションを運用していく中で、どのように、それぞれが関わり合うのか、考えました。
その結果が、以下の記述になります。
認識が合っているかどうか、確認していただけると幸いです。
1.アプリとEC2の関係。どのように、それぞれが動くのか。
<Twitterを例に考えます。>
①ユーザーがツイートする。
②すると、EC2に設置したwebサーバー(public subnet)がレスポンスを返す。
このとき、アプリケーションサーバーにあるlaravel内のコントローラー等によって処理が実行される。
必要に応じてEC2内のDBサーバー(private subnet)に接続して、情報を保存したり、引き出したりする。
そして、レスポンスをユーザーに返す。
この認識であってますでしょうか。
2.dockerに関して。
dockerは大雑把に言うと仮想のOSのようなイメージで、ミドルウェアのコンテナやアプリのコンテナ、DBのコンテナなど様々なコンテナを個別に作成することができる。プロジェクトごとに必要なコンテナをひとまとめにすることで、いわゆる環境構築ができる。
この認識であってますでしょうか。
3.dockerを使用することによって、ローカルの開発環境とwebサーバーの環境を同じにし、環境差異を無くすことができる。
むしろ、環境差異があったら困るので、一緒にするべき(?)
その手順として、
①ローカルの開発環境をdockerで作る。(nginxなどのミドルウェアなどインストールする)
②作成した環境をdocker hubにpushする。
③webサーバーにdocker hubからpullして、同様の環境にする。
この認識であってますでしょうか。
以上、3件になります。
間違いがあれば、ご指摘いただけると幸いです。