skillup

技術ブログ

サーバー・ネットワーク

ECSについて

投稿日:2020年8月3日 更新日:

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

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

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

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

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

ECSについて

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

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

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

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

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

今さら聞けないAWS ECSとは?Fargateとは?

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

zabbixオリジナルアイテム&トリガー

zabbixは標準でもかなりのアイテム&トリガーが入っていますが、オリジナルなものを入れたいときも当然あるかと思います。 そんなときにオリジナルのアイテム&トリガーを入れることができます。 実務ではg …

no image

PHP7に関して

先週きづいたのですが、PHPが5.6から7になりましたね。 まあ当分はまだPHP5で開発していきますが、herokuがいきなり7になり、アプリが動かないということが起こりました。 7対応させたかったん …

no image

OSI参照モデル イーサネットとMACアドレス

OSI参照モデルのレイヤー1とレイヤー2で必要不可欠な規格がイーサネットです。 有線ネットワークであればほぼこの規格を採用していると思って間違いないでしょう。 MACアドレスでコンピューターを識別する …

no image

zabbixについて 

現在、携わっているプロジェクトでサーバー監視をする必要性がでてきたので、監視ツールについていろいろ調べとります。 Contents1 サーバー監視とは2 サーバー監視ツールとは3 おおまかなイメージ4 …

no image

nginxまとめ

10~11月はデータベースをちょっと勉強しておりましたが、12,1ぐらいはサーバーインフラ系の強化月間としようかと思います。 しばらくはnginxについてです。 Contents1 nginxの概要2 …

アーカイブ