「コンテナオーケストレーション」という言葉で色々調べてみるといいと思います
一つのイメージにアプリ以外にDB等々色々詰め込むと単体で動きはしますが、EC2インスタンスに色々詰め込んでしまったときと同じでスケールしにくくなるのでオススメしません。
イメージ自体もとても重くなります。
また、DBまでコンテナ化するとどうやってデータ保持すればいいのか、という問題も出てきます。
また、普通のサーバにDockerをインストールして自分で諸々管理しながら運用することもできなくはないのですが、それは大変なので現実問題としてコンテナ運用には何らかのサービスやツールを使うのがデファクトスタンダードになっています。
たとえDockerを使わなかったとしても、EC2インスタンスを手動管理するのは大変になっていきますが、せっかくコンテナを使って下のレイヤを仮想化したのに、その下のレイヤを自前で管理するのでは管理が複雑化してしまいます。
コンテナオーケストレーションツールでも現在の主流となりつつあるのはKubernetesでしょう。
AWSは元々ECSを提供していましたが、マネージドのKubernetesであるEKSもここ数年で提供し始めました。
細かくは色々あるでしょうが、いずれにしても単体のサーバ上でコンテナを稼働するのではなく、複数のサーバでクラスタを作ってその上で稼働させるというのが通常で、サーバ1台に1つ以上のコンテナ、みたいな運用はあまりしません(コンテナ化されたツールをサーバ上で使いたい、などという時は話が違います。)
その他のメリットは、Dockerさえ動けばいちいちサーバ上で環境構築をしなくても、コンテナに乗っているものはコンテナ内の環境だけで動く、ということですね。
なので、Dockerイメージさえデプロイすれば動くので開発環境と本番環境の環境差分が生まれにくくなります。
また、何かしらcliのようなツールを使いたいときも、ツールを使うためだけに何かをインストールしたりする必要がなくなりDockerだけ動く環境があればよい、ということになります。
従来のサーバ運用の考え方とは異なり、モダンな考え方を多く反映した運用が前提になるので、運用には様々な考え方の理解が重要かと思います。
諸々とてもここには書ききれない(のと、自分自身勉強中な)ので参考になりそうなサイトを色々貼っておきます。
事例から考えるDockerの本番利用に必要なこと
「コンテナジャーニー」〜明日から速攻始めるAWSでのコンテナ導入運用〜 #cmdevio2018
「それコンテナにする意味あんの?」迷える子羊に捧げるコンテナ環境徹底比較 #cmdevio2019
実際の使用例もかなり参考になるでしょう。
Docker on AWS: AWSのコンテナ関連サービスの選定例の紹介
※こちらは3年も前の資料なので今とは前提が異なるのですが、書いてある事自体は参考になります。
AWSでDockerを扱うためのベストプラクティス
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/02 03:52 編集
2020/06/02 05:24
2020/06/02 07:30 編集
2020/06/02 08:21
2020/06/02 08:49