YOKOHEI.COM

YOKOHEI.COM

›ECS

Docker

  • Container Networking Model
  • Network drivers
  • Docker and iptables
  • Container DNS
  • Container communication
  • Hands On

ECS

  • 01 Network Mode

ECS 01 - Network Mode

Network Mode とは

タスク定義で指定する Network Driver の種類のこと。

  • bridge
  • host
  • awsvpc
  • none

が存在。
以下で概要を説明。

bridge

タスクは Docker の組み込み仮想ネットワークを使用して、各コンテナインスタンス内で実行される。
通常の Docker と一緒。

host

タスクは Docker の組み込み仮想ネットワークをバイパスし、コンテナポートは EC2 インスタンスのネットワークインターフェイスに直接マッピングされる。
このモードでポートマッピングが使用されている場合、1 つのコンテナインスタンスで同じタスクのインスタンスを複数実行することはできない。
これも通常の Docker とイメージは一緒。

awsvpc

タスクに ENI を割り当てる。
そのため、タスクごとに IP アドレスが払い出され、かつセキュリティグループなどもタスクごとに設定可能になる。
host および awsvpc では ENI とコンテナが直接バイパスされるのでネットワークパフォーマンスが優れている。
イチオシの機能なので後ほど詳細を記載する。

none

タスクのコンテナの外部接続がなくなるので、コンテナの定義にポートマッピングを指定することができなくなる。

awsvpc ネットワーキングモードの旨味

EC2 インスタンスと同じネットワーキングプロパティが ECS タスクに提供されるので、メリットが多い。

  • ネットワークモニタリング
    タスクに独自の ENI が払い出されるので、 VPC フローログなどを活用してトラフィックをモニタリングできる。
    そのためセキュリティ的メリットもある。
  • localhost 通信
    同じタスクに所属するコンテナ同士が localhost で通信できる。
  • トランキング ENI トランキングにより、コンテナインスタンスにより多くのタスクを配置できるようになる。
    5 倍 ~ 10 倍くらいに拡張できる。

Elastic Network Interface のトランキング
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/container-instance-eni.html

Ref docs

ネットワークモード
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode

タスクネットワーキングと awsvpc ネットワークモード
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task-networking.html

Task Networking in AWS Fargate
https://aws.amazon.com/jp/blogs/compute/task-networking-in-aws-fargate/

← Hands On
▼ Codes ▼
LeetCodeGitHub
▼ Profile ▼
LinkedInFlickr
▼ Logo made with DesignEvo ▼
DesignEvo
Copyright © 2020 Kohei Yoshida