skillup

技術ブログ

サーバー・ネットワーク

ECSについて

投稿日:

AWSでwebアプリを立ち上げる場合、基本的にはEC2+RDS(小規模な場合は使わないケースもあるかも・・)+アルファの構成が多いと思うのですが、Dockerでコンテナイメージをもっていれば、コンテナを直接起動させることができます。

AWSですとAmazon Elastic Container Service (通称ECS)というサービスがそれに該当します。

ある方とインフラの話をしていた時に、ある程度セキュリティレベルを高くしたいので、サーバー自体に入らせない仕組みが必要・・みたいなことをおっしゃっててその仕組みの1つですね。

よく考えるとherokuで運用していたアプリがありましたが、サーバーにログインして何かしたことはないですね・・DBにつないで、ということはあったのですが、これもマイグレーションなどで行うのが正しい方法かと思われます。

注意点としてはDockerfileだけをプッシュしますのでdocker-composeの設定を反映させるにはしっかりと内容を理解しているor後述するecs-cliを使う必要があります。

ECSについて

概念やイメージがわかりにくいものが多かったですね。(今でも正直あんまりわかっていませんが・・汗)

大きく分けるとタスク、サービス、コンテナの3つのグループがあるのですが、ざっくり下記のような認識をしています。

タスク・・ECSの最小単位。

サービス・・タスク群の上位グループ。フロント単位、バックのAPI単位など

クラスター・・インスタンスのグループ

Amazon EC2 Container Service(ECS)の概念整理

AWS ECS 10分チュートリアルでふんわりFargate入門

Amazon ECS(EC2)を試す小さなサンプルメモ

実際の登録

基本的には

  1. ECRでコンテナを登録する(AWS専用のDockerHubみたいなものです。)
  2. タスクの定義でコンテナの登録
  3. クラスター作成
  4. タスクの実行

というのが一番簡単です。

Amazon ECS入門 〜公式のDockerイメージを使って10分で構築してみる〜

またウィザードにそって行けばそのままECSの環境が作れるものもあります。

https://console.aws.amazon.com/ecs/home?region=us-east-1#/firstRun

ecs-cli

自分がやりたかったのはRedmineというRails製のアプリのDockerコンテナを立ち上げることなんですが、画面からポチポチやってもどうしても立ち上がらなかったです。PHPのアプリとかはすぐにできたんですが、このアプリRailsなんでPortが3000なんですよね・・

これを3000→80にマッピングさせているはずなんですが、どうやっても落ちてしまい、色々試行錯誤してみましたが、解決せず・・・半ば諦めかけた時にコマンドラインのecs-cliを使ったらすぐに解決しました・・・・

これ使うとdocker-composeそのまま使えます。

理解していないとキツイですね・・・

https://github.com/umanari145/node_aws_etc

ローカルで使用したdocker-compose.ymlを使ってECS上でコンテナを起動する

ちなみに単純にコンテナを使ってサービスを動かしたいだけだったらEC2にログインして、dockerをインストールして、 docker-compose up -d を使うのが一番早いです。

AWS EC2インスタンスにdockerとdocker-composeをインストールして簡単なWEBサービスを立ち上げる方法

-サーバー・ネットワーク
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

chefのインストール

以前からずっと課題になっていたchefのインストールについてです。 まだ全然わかっていませんが、なんとかvagrantからのインストールをすることができましたのでメモします。 chefでの環境構築とい …

no image

自力での監視

Zabbixの勉強を進めていますが、マニュアル通りに設定していて、中で何をやっているかをあまり理解していなかったりします。 それだとちょっとまずいのでZabbixでの構築とともに自力での監視スクリプト …

no image

PHP_CodeSnifferによるコードチェック

昨日の記事でphpmdという静的解析ツールを調査したんですが、それ以外にも規約にのっとっているかどうかコーディングをチェックできるツールはあります。 PHP_CodeSniffer https://g …

no image

DNSの仕組み

本日はDNSについて。 とりあえず要点のみ DNSのざっくりとした仕組み ネットワーク上での住所を決める仕組み。 本来はIPがその役割を果たしている. [crayon-5f73cd7cc5fe7204 …

no image

Perlワンライナー他

Perlではcgiと連動してWEBアプリケーションを作るケースが多いですが、元々テキストの編集や置換が非常に便利です。 例えば、あるディレクトリにある特定のファイル名(正規表現使用可)だけを抽出する場 …