1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECS FargateをIPv6のみのアドレスで動かすためにやったこと全て

Posted at

はじめに

旬は逃していますが、1か月ほど前に、ECSでIPv6のアドレスのみが使えるアップデートが発表されました。

ただ、こちらを実現しようとすると、結構引っかかる部分があったため、備忘録もかねてまとめました。

調査の背景は折りたたみ

ALB等を使わずにFargateでECSを利用しようとすると、

  • 通信させようと思った場合にパブリックIPv4アドレスがコンテナ1つ1つに必要となってしまう

という課題がありました。
これの何が課題かというと、パブリックIPv4アドレスは有料化されており、パブリックIP1つにつき月額約500円の費用が掛かるためです。NATゲートウェイ等を立ててもいいのですが、それはそれで費用掛かりますし。ただインターネット通信させたいだけなのに。
個人的には、パブリックIPv4アドレスの有料化のアナウンスが入ってから、このアップデートをずっと待っていたのですが、1年半かけてようやく発表された、という感じです。
まあその1年半の間にAWSへの興味が薄れてアップデートを追えてなかったとかいう話は置いておいて

VPC:IPv6専用サブネットを追加

ECSをIPv6アドレスのみで使用するにあたり、最初にやることは専用のサブネットを作ることです。IPv6のみのアドレスが存在するサブネットをECSで指定することで、IPv6アドレスのみのコンテナになります。
サブネット作成時に、「IPv4 CIDRがありません」を選択すると、IPv6のみのアドレスのサブネットが作成できます。(事前に、VPCの設定でIPv6アドレスは割り当てておく必要があります)

image.png

EFS:IPv6アドレスのマウントポイントを追加

ECSでボリュームとしてEFSを利用する場合は、EFSのマウントターゲットとしてIPv6アドレスでアクセスできるようにしておく必要があります。昔作ったものはIPv4のみとなっていました。変更もできそうではありましたが、既存への影響が怖かったので新規で作成しました。IPアドレスタイプは、とりあえずデュアルスタックにしとくのが無難な気がします。

image.png

ECR:デュアルスタックエンドポイントを使用

こちらは設定とかではありませんが、ECSでイメージの指定先をECRとする場合は、デュアルスタックエンドポイントを使用する必要があります。

ECRの画面に、URIをコピーしてくれるリンクがあるのですが、これを使用するとデュアルスタックエンドポイントにならないので注意が必要です。
image.png

ECS

タスク定義

ここまでくれば、あとはECSの設定のみです。
タスク定義では、イメージURIのところをデュアルスタックエンドポイントを使用するようにします。

image.png

サービス

サービスの作成のネットワークの設定で、IPv6のサブネットのみを使用するように設定変更します。パブリックIPの割当(=パブリックIPv4アドレスの割当)はチェックを外しておきましょう。

image.png

動作確認

ここまでの設定を実施して、サービスを起動した際に、タスクのネットワーキングの項目にIPv6アドレスのみが使用されていることが確認できれば完了です!

image.png

おわりに

参考になった部分がありましたら幸いです。私もECSにおけるIPv6アドレスは使い始めたばかりなので、また何か気づいたことがあれば記事にしていきます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?