Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ECS の IPv6 がムズカシイ

kawagoo
December 05, 2022

ECS の IPv6 がムズカシイ

kawagoo

December 05, 2022
Tweet

More Decks by kawagoo

Other Decks in Technology

Transcript

  1. Copyright © BIGLOBE Inc. 2022, All rights reserved. ECS の

    IPv6 がムズカシイ 2022/12/2 NW-JAWS勉強会#9 川口 永一郎
  2. 2 Copyright © BIGLOBE Inc. 2022, All rights reserved. 自己紹介

    名前: 川口 永一郎 会社: BIGLOBE(新卒3年目) 所属:基盤本部 ネットワーク技術部 業務: DNS基盤、IPv4 over IPv6基盤 オンプレからクラウドまで触ってます
  3. 3 Copyright © BIGLOBE Inc. 2022, All rights reserved. 話すこと

    Amazon Web Services(AWS)移行で詰まった話 ➢ システムの背景・仕様 ➢ 最初に考えた構成 ➢ NLB、ALB、ECSのIPv6の仕様、制限について ➢ 制限事項を解消するための構成
  4. 4 Copyright © BIGLOBE Inc. 2022, All rights reserved. 移行しようとしていたシステム

    IPv4 over IPv6 の通信サービスで使われているオンプレのシステムのAWS 移行 • システム概要 ◦ 市販のブロードバンドルータ(BBR)からのアクセスに 対して、JSON形式のデータを返却するといったシステム BBR LB JSONデータ配信 アプリケーション (webサーバ) JSONデータ配信 アプリケーション (webサーバ) インターネット 固定IPv6 IPv6 IPv6
  5. 5 Copyright © BIGLOBE Inc. 2022, All rights reserved. システムの特徴・仕様

    • LB、サーバ含めてIPv6アドレスを持っていること ◦ AAAAレコードでLBのIPv6アドレスにフォワード オンプレとの平行稼働のため、AWSへの移行時もIPv6を固定する 必要あり • BBRがシステムにアクセスした際に、システムはアクセス元(BBR)のIPv6 アドレスに適したJSONを返却する アプリはクライアントのIPv6アドレスを認識する必要がある 動作イメージ BBR(IPv6-A)⇒ LB ⇒ アプリ (JSON-Aを返却) BBR(IPv6-B)⇒ LB ⇒ アプリ (JSON-Bを返却)
  6. 6 Copyright © BIGLOBE Inc. 2022, All rights reserved. 時間かけてAWSに移行するんだから、運用の手間がかからないようにしたい

    システムは複雑なものではないし、コンテナイメージにしやすそう EKSにするほどでもないし、ECS とかいいのでは? ECSでリプレイスしよう
  7. 7 Copyright © BIGLOBE Inc. 2022, All rights reserved. 最初に考えた構成

    • NLB+ALBでIPv6アドレスを固定化する ◦ NLBのターゲットにALBを指定 NLB ALB ECS Task ECS Task
  8. 8 Copyright © BIGLOBE Inc. 2022, All rights reserved. 機能評価をしてみると、、

    クライアントのIPv6アドレスを変えてるのに、返却されるJSONの結果が 常に同じ   JSONの結果が変わらないのはオカシイ   イメージ BBR(IPv6-A)⇒ NLB ⇒ アプリ (JSON-Aを返却) BBR(IPv6-B)⇒ NLB ⇒ アプリ (JSON-Aが返却される??)
  9. 9 Copyright © BIGLOBE Inc. 2022, All rights reserved. 機能評価をしてみると、、

    クライアントのIPv6アドレスを変えてるのに、返却されるJSONの結果が 常に同じ      アプリからはNLBのIPv4アドレスしか見えてないことが判明 NLB→ALBで通信する際にIPv4に変換されてしまう IPv6→IPv4に変換されてしまうとクライアントIPの保存はできない※1 ※1 https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/load-balancer-target-groups.html#client-ip-preservation 制限事項
  10. 10 Copyright © BIGLOBE Inc. 2022, All rights reserved. 固定IPv6アドレス+ECSでクライアントIP保存を実現するには

    • NLB(IPv6固定)→ECS(EC2タイプ) ◦ FargateタイプだとクライアントIPの保持はできない ◦ TargetGroupの設定 ▪ IPターゲットはECS TaskのIPv6アドレス • 通常だとTaskのIPv4アドレスが登録されるため、 手動でIPv6アドレスを登録する必要がある • 自動でIPv6アドレスを登録するには別途実装が必要 EventBridge+Lambdaで実装した   ※固定IPv6という制約がなければ、ALB+ECS(Fargate)でクライアントIP保持  できるとのこと(要検証)
  11. 11 Copyright © BIGLOBE Inc. 2022, All rights reserved. NLB(IPv6固定)→ECS(EC2タイプ)

    制限事項を解消するための構成 NLB ECS Task ECS Task Event Bridge Lambda Event Bridgeでタスクが起動した際に Lambdaを起動 awscliを実行してTargetGroupに登録する aws elbv2 register-targets ' \ --target-group-arn {TargetGroupのARN} ' \ --targets Id={ECS TaskのIPv6アドレス}
  12. 12 Copyright © BIGLOBE Inc. 2022, All rights reserved. まとめ

    • IPv6環境+ECSはオンプレの構成と同等にしようとするとまだまだ制約が 多い ◦ 公式ドキュメントの確認、AWS技術担当者への相談は綿密に • 業界的にIPv6移行は今後進んでいくのでアップデートに期待したい