tonkoo3000’s tweets

IT/WEB関連の技術的な興味などを主に書いていきたいと思います。

Docker for AWS (CE) でのNode.js環境構築の話


[Google Adsense]

Node.jsで開発に入れる前にモジュールをテストしたい

現在、とある開発チームにおいて、アプリ開発をやっていて、フロントエンドのAngular2から、BackendのAPIを叩く構成で開発しています。 いろいろとNode.js関連のモジュール入れたいのですが、いきなり入れるとレイアウト崩れたり、機能しなかったりなどのケースが散見されるため、お試しで入れるためのNode+Angular2環境を構築することとしました。

ECS使ってみようと思ったけど・・・。

なんだかうまく行きません。ので、以下の記事を参照しました。

www.infoworld.com

www.infoworld.com

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 環境の構成はこんな感じで出来上がります。簡単。ヽ(・∀・)ノ f:id:tonkoo3000:20170915103454p:plain

f:id:tonkoo3000:20170915103454p:plain
CloudFomation Design of Docker for AWS

気をつけるのがIAMロールの設定で、上のドキュメントにあるように適切なIAMロールを設定しておき、CloudFormationでの構築時に設定してあげる必要があります。

docs.docker.com

この辺りは、IAMのロール作成のドキュメントよく読んで設定すれば大丈夫でした。上のページのjsonを利用して新しいIAMロールを作成すると、CloudFormationの構築ウィザードの途中で選択できるようになります。

コンテナの操作が簡単

基本的にWorkerNodeにSSH接続して、そこから、各WorkerNodeに入ることができます。 ssh-agentを使うみたいなので、参考記事

qiita.com あとはWorkerNodeのDockerFileなどをいじって、必要な構成が立ち上がるようにしていけばよさそうです。

続編

まだ、コンテナにアクセスできるようになった状態なので、Nodeの構築については追って記事にしたいと思います。

センデン

AWSでのangular2Appの開発、Wordpress運営などの仕事を請け負います。 以下のコンタクトフォームからアクセスください。

summonars-war-fun.tokyo