Docker for AWS (CE) でのNode.js環境構築の話
[Google Adsense]
Node.jsで開発に入れる前にモジュールをテストしたい
現在、とある開発チームにおいて、アプリ開発をやっていて、フロントエンドのAngular2から、BackendのAPIを叩く構成で開発しています。 いろいろとNode.js関連のモジュール入れたいのですが、いきなり入れるとレイアウト崩れたり、機能しなかったりなどのケースが散見されるため、お試しで入れるためのNode+Angular2環境を構築することとしました。
ECS使ってみようと思ったけど・・・。
なんだかうまく行きません。ので、以下の記事を参照しました。
Dockerのコミュニティのポストによると、
Docker for AWS and AWS ECS are different products. One is built by Docker Inc, the other is built by AWS. I don’t think ECS currently supports the most recent Docker version and swarm-mode, so if you want that I recommend Docker for AWS.
とあります。あと、AWSの方は、ecs-cliの作法の学習が必要なようなので、Dockerのコマンドを使っていろいろいじったりできません。
結論
テストインスタンスなどの簡単なものについては、Docker for aws を、プロダクト用途にはECSを使っていこうかなという結論に至りました。
Docker for AWS
CloudFormationのテンプレートが用意されています。 こちらから、AWSのcCloudFormationが立ちあがって、AutoScaringなどをいい感じにセットアップしてくれます。
docs.docker.com 環境の構成はこんな感じで出来上がります。簡単。ヽ(・∀・)ノ
気をつけるのがIAMロールの設定で、上のドキュメントにあるように適切なIAMロールを設定しておき、CloudFormationでの構築時に設定してあげる必要があります。
この辺りは、IAMのロール作成のドキュメントよく読んで設定すれば大丈夫でした。上のページのjsonを利用して新しいIAMロールを作成すると、CloudFormationの構築ウィザードの途中で選択できるようになります。
コンテナの操作が簡単
基本的にWorkerNodeにSSH接続して、そこから、各WorkerNodeに入ることができます。 ssh-agentを使うみたいなので、参考記事
qiita.com あとはWorkerNodeのDockerFileなどをいじって、必要な構成が立ち上がるようにしていけばよさそうです。
続編
まだ、コンテナにアクセスできるようになった状態なので、Nodeの構築については追って記事にしたいと思います。
センデン
AWSでのangular2Appの開発、Wordpress運営などの仕事を請け負います。 以下のコンタクトフォームからアクセスください。