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

ansible host指定,変数の外だし,ユーザー追加

Ansibleにてhostユーザーやユーザーの追加などす。 Contents1 ホストの指定2 ユーザーの追加2.1 変数を別ファイルに2.2 パスワードのハッシュ化2.3 パスワードなしでsudo2 …

no image

メニュー系のCSS

よく迷うのでこれを機にまとめておこうかと。 Contents1 通常時のメニュー2 携帯(いわゆる縦のメニュー)3 ホバー時の画像選択4 小ネタ 選択されているときのメニュー 通常時のメニュー htm …

no image

herokuへのdockerコンテナ送付とdocker volumeについて

Contents1 herokuへのdockerコンテナ送付2 ファイル構成2.1 コマンド2.2 注意点3 docker volumeの記述 herokuへのdockerコンテナ送付 Herokuで …

no image

ポート解放(CentOS7)

新サーバー構築をしていたときにwebサーバーとしてnginxを立てましたが、外部から接続ができません。 500エラーすら吐かれず、ログも残っていません。 こんな時はホスト自体にアクセスが届いていない可 …

no image

herokuでのLet’s Encrypt設定

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。 当然herokuでなくても大丈夫です。 過去に行ったhtt …

アーカイブ