#コンテナってなに?
コンテナってよく聞くし、業務でも最近触れ出して知らなかったので勉強しました。
AWSの公式がyoutubeに講演の動画をあげてくれてたのでそれをみてのまとめになります。
指摘などは大歓迎です。
##・コンテナとは
アプリケーションに必要な下記をまとめたもの。設定ファイルは入らないため().
- ランタイム
- ソースコード
- ライブラリ/パッケージ
- (・設定ファイル(環境ごとに変えたいもの。ex.何かを取得するエンドポイントを変えたり) これは実行時にお渡しする。)
##・コンテナ発祥の経緯
今までは、ランタイム(jvmなど)のバージョンが違うなどが発生していた。
なので、ランタイムも一つのデプロイ対象として含めることで環境ごとに差異が生まれないようにしよう、というのが経緯。
-> dockerエンジンがインストールされてる環境でありさえすれば、同じように動作させる。
##・コンテナオーケストレーション
コンテナオーケストレーションとは、複数のサーバー(dockerエンジンの入った)に対して、想定した動きをさせることを容易にしてくれる概念。
では、なぜコンテナオーケストレーションが必要か。
コンテナはdockerエンジンのある単一の環境で動作することを保証している。
ただし、サービスの運用環境というのは複数のサーバーで動いていることがほとんど。
そこで複数のサーバーに対して、こちらが想定している設定で管理/デプロイするためにコンテナオーケストレーションが必要になる。
コンテナAはこのLBに繋いで〜、コンテナBはこのリージョンでお願い〜とか。
##・ECS
AWSのサービスでECSがコンテナオーケストレーションに該当する。
特徴は、
・AWSの他サービスとの連携(LBなど)
・スケラービリティが簡単
・ECSを利用するのに理解するべきなのは「タスク」「サービス」という二つの設定的なもの。
(他にもEKSという、オープンソースでありコンテナオーケストレーションツールのkubernetesと連携したサービスがあるが、ここでは触れません。動画みてもらえると)
(kubernetesは「くばねてぃす」と読むらいし、恥ずかしながらこの動画見るまでは頭の中でいつも「くーばーねっつ」と読んでました。幸い口に出したことはない)
##・ECR
コンテナをデプロイするのにコンテナのイメージが必要になる。
イメージの置き場所として使うのがAWSだとECR。
AWSが提供するプライベートばイメージのリポジトリ。
コンテナを乗せるEC2などではOSなどの管理があるが、AWS Fargateを使えばコンテナ以下のOSなどの管理はAWSが実行してくれる。
##・最後に
関連動画でECSについての動画もあがっているので次はこちらみてまとめてみようと思います。
https://youtu.be/tmMLLjQrrRA