Lightsail Cotnainers をちょっと使ってみたのメッモ
(いまの)結論としては、これだったら ECS を簡単に使う方法に詳しくなる方がいいな、というものでした。
前提
EKS はいい感じにマネジメントしていける気がしていないので ECS をもっぱら利用している組織において、GCP の cloud run などの選択肢を考えずに AWS 上でコンテナをとにかくさくっと動かしたいという時に、ECS のタスク定義や ALB を立ち上げたりが結構煩わしいなと思っていた。
お手軽 VPS 的な立ち位置で区別されている(?) Lightsail に Containers というコンテナサポートが入ったというので、これが需要を満たしてくれるのかどうか試してみた。本当にちょっとだけ触ってみたという状況のメモです。
良かったところ
- ALB の面倒を見なくてもコンテナをバックエンドとする public なエンドポイントを用意できる
- プライベートなコンテナも全然すぐ使える
- 月額7$(うる覚え)からで固定料金なのもサクッと試すにはちょうど良さそう
1. は ECS でやるより全然楽だと思った。ただし、ECS の構築・デプロイ周りは割と混沌としていて、自分は ecs-cli しかほとんど使ったことがない。ecs-cli-v2 だった copilot がその辺りもいい感じに面倒見てくれるような雰囲気も感じてはいる。
2. のプライベートなコンテナについては、手元でビルドして aws lightsail push-container-image
的なコマンドを打つ必要がある。パブリックなコンテナしか使えない?みたいな情報を見かけたので、その点が解決してたのは良かった。
イマイチなところ
- docker-compose を使える余地がなさそう
- メトリクスが貧弱すぎるしアラームも設定ができない
- AWS アカウントと独立している?
1. については手元では docker-compose を使って複数コンテナを起動しているのに、Lightsail Containers のコンソール上でポチポチとコンテナ1 がこのイメージ、コンテナ2 がこのイメージというのを割り当てていくというのが微妙そうと思った。ちゃんと調べてないが VOLUME を利用することもできない(そういう docker オプションを差し込む口もコンソール上に存在してない)など、普通の docker コンテナ運用でやりたくなることが出来るようになってないことが多い気がする。
2. はメモリ使用量とCPU計算量しか見えないのはまだいいとして、アラームは設定できるようになっていて欲しいなと思った。特に Lightsail (Instances) の方は対応しているっぽいのでなおさら。Cloudwatch から見れたりするのかどうかもよく分かってないけど、すんなり出来なさそうな気がしてる。
3. は Cloudwatch の話も関連しているんだけど、Lightsail で作ったリソースは同じ AWS アカウントから独立している?っぽくて、(そりゃそうだという話ではあるが)通常の AWS 管理コンソールからさわれないみたい。ECS だったらこれ使ってこうやっているんだけどなみたいなやつがムズムズする。
イマイチなところにあげたことをちゃんとやりたいなら、結局 ECS, EKS を自分でやりましょうってことになりそうで、どうしても楽したいマンは copilot でもちゃんと素振りするかーという気持ちになりましたとさ。