こんにちは、プロダクトエンジニアリング部のちょうです。天気もすっかり春になった気分ですね。気温がさむくなったり暖かくなったりするので体調管理を十分気をつけましょう。
さて、コンテナ技術の流行りとともに、AWS ECSなどを利用して機能を提供するサービスが増えたと思います。ただ、EC2インスタンスからECS serviceに変わる際に、実際インフラレベルの内容が複雑になることが多く、いままでできたことをどうやってECSで実現できるかを調べないといけないです。その一つはサーバーに入って、調査したり、作業したりすることです。
ECSにはEC2とFargate二種類があります。EC2は名前通りEC2インスタンスです。既存のEC2インスタンスを再利用できます。特にSpot instanceなどです。Fargateはまったくインスタンスを管理しなくてもいいタイプです。EC2タイプはインスタンスがあるので、そのインスタンスに入って、ローカルと同じようにdockerのコマンドを使えば実行中のECS serviceにアクセスできます。Fargateになると、インスタンスがないので、簡単で入ることができません。
先月AWSからECS serviceにdocker execを実行できるニュースがあります。
Amazon ECS で、Amazon EC2 または AWS Fargate で実行されているコンテナでのコマンドの実行が可能に
いろいろ設定を変えれば、Fargateでも入れるようになります。先日弊社のブログにも書きました。
Amazon ECS Execを使ってrails consoleを動かしてみる - ユニファ開発者ブログ
でも、よく考えると、実行中のECS serviceに、docker execで入って、調査はまだいいですが、作業はやめたほうがいいかもしれません。実行中のサービスに影響があります。それと、Fargateを使ってインスタンスを管理しなくてもいい反面、ディスクのサイズは固定、プログラムが終わると消えるデメリットがあります。正直本番作業に向いていないです。いろいろ設定して、作業用に変えるより、素直にEC2タイプを使いましょう。
続きを読む