Amazon Web Services ブログ

Network Load Balancer を使用して Amazon FSx for NetApp ONTAP マルチ AZ ファイルシステムにトラフィックをルーティングする

このブログは 2022 年 12 月 9 日に Jay Horne(Sr. Storage Solutions Architect)によって執筆された内容を日本語化したものです。原文はこちらを参照してください。

更新(2023 年 3 月 13 日):Network Load Balancer のターゲットグループを作成する際に、ターゲット IP で指定した VPC のサブネットの一部であるかを確認するため、本記事で説明した手法は採用できなくなりました。

AWS で高可用性アプリケーションを構築する際の基本的なアーキテクチャ原則は、マルチアベイラビリティーゾーン(AZ)アーキテクチャを使用することです。 ファイルデータを Amazon FSx for NetApp ONTAP に移行するお客様が増えており、Amazon Virtual Private Cloud(VPC)の外部からネットワークをマルチ AZ デプロイタイプに柔軟に接続する方法を求めています。Network Loader Balancer(NLB)を使用することで、マルチ AZ 構成の FSx for NetApp ONTAP ファイルシステムとの接続を簡素化できます。

マルチ AZ デプロイオプションでは、ファイルシステムは異なるアベイラビリティゾーンの 2 つのサブネットにまたがり、NFS や SMB、管理(NetApp 管理ツールを使用してファイルシステムを管理する場合など)に使用される 3 番目のフローティングするプライベート IP アドレス範囲が存在します。フローティング IP アドレスは、特定のサブネットとは関連付けられていません。代わりに、アクティブなファイルサーバーの ENI(Elastic Network Interface)に自動的にルーティングされ、ファイルサーバー間のシームレスなフェイルオーバーを実現します。FSx for NetApp ONTAP ファイルシステムが所属する Amazon Virtual Private Cloud(Amazon VPC)の外側からこれらのフローティング IP アドレスにアクセスするには(例:オンプレミスネットワークからのアクセス)、ファイルシステム宛のトラフィックをルーティングするために AWS Transit Gateway を利用する必要があります。Transit Gateway を構成していないお客様のために、この記事では Transit Gateway で必要なルーティングを行わず、Network Load Balancer(NLB)を使ってファイルシステムのデプロイ先 VPC の外部から NFS や SMB、管理アクセスを可能にする別の方法について説明します。

FSx for NetApp ONTAP は、シングルアベイラビリティーゾーンの導入オプションも提供しています。シングル AZ ファイルシステムは、AZ 内でのストレージ複製を必要とするが、開発やテストのワークロードなど、AZ 間でのレジリエンスを必要としないユースケース向けに構築されています。マルチ AZ ファイルシステムは、同じ AWS リージョン内の AZ 間でレジリエンスを必要とするワークロード用にシンプルなストレージソリューションを提供し、主要な本番環境向けのデータセットに推奨されます。

この記事では、マルチアベイラビリティゾーンで構成した NLB の設定について説明します。これにより、NFS や SMB 経由でファイルシステムのデータにアクセスできる DNS 名が提供されるため、FSx for NetApp ONTAP をデプロイした VPC の外部からアクセスするためのネットワーク構成が簡単になります。NLB にはコストがかかりますが、これらの追加コストをどのように見込むかのモデルも紹介します。

前提条件

次のリソースが既に構成され、実行されている必要があります。

  • FSx for NetApp ONTAP Multi-AZ ファイルシステムが作成されていること。作成していない場合は、FSx for ONTAP ユーザーガイドの「Amazon FSx for NetApp ONTAP ファイルシステムを作成する」セクションに従って作成すること
  • FSx for NetApp ONTAP ファイルシステム作成時に「IP アドレス範囲を入力」を選択していること

重要:ファイルシステムを作成する際に、デフォルトの「VPC から未割り当ての IP アドレス範囲」および「VPC 外のフローティング IP アドレス範囲」を選択した場合は、NLB のターゲットグループ作成がエラーとなります。また、NLB 内部操作用に予約されている 198.19.x.x のエンドポイント IP アドレスの範囲外から選択する必要があります。この記事では、100.64.55.0/24 を IP アドレス範囲として使用しています。

  • プライベート IP アドレス範囲の IP アドレスで作成して稼働しているストレージ仮想マシン(SVM)と、標準のプライベート IP アドレスのサブネットで稼働している SVM、および、SMB や NFS 用のボリュームと共有が作成されていること

SVM 用の NLB 作成

FSx for NetApp ONTAPは、ファイルシステムとデータをホストする 1 つ以上の SVM、データを含む 1 つ以上のボリュームで構成されています。各 SVM は、認証とアクセス制御のための独自の独立した設定を持っており、独立した仮想ファイルサーバとして機能します。マルチ AZ ファイルシステムの場合、各 SVM は NFS および SMB のトラフィックを処理するため(また、NetApp管理ツールを使用するため)のプライベート IP アドレス範囲の IP アドレスを持っています。NFS と SMB のルーティングを簡素化するために、各 SVM に対して NLB を作成します。以下の手順を実行して、NLB を作成してください。

  1. リソース ID の収集
  2. NLB ターゲットグループの作成
  3. 「登録解除時における接続終了」の設定
  4. NLB の作成
  5. NLB を使用したデータアクセスの検証

1. リソース ID の収集

a. まず、NLB を設定する際に使用するリソース ID を収集します。Amazon FSx コンソールから、FSx for NetApp ONTAP ファイルシステムを選択します。

FSx_ID

b. ファイルシステムの詳細ページで、「ネットワークとセキュリティ」タブを選択し、使用されている VPC をメモします。これは手順の後半で必要になります。

Figure_2_VPC_ID

c. 同じページの「優先サブネット」の下にある「ネットワークインターフェイス」のリンクを選択します。

Figure_3_Prefered_Subnet

Amazon Elastic Compute Cloud(Amazon EC2)コンソールのネットワークインターフェイスのページで、優先サブネットの ENI に関連付けられたキュリティグループ ID をメモします。

Figure_4_ENI_Subnet

この ENI に関連付けられているセキュリティグループが、NLB を作成する予定のサブネットの IP アドレス範囲(CIDR 範囲)の NFS と SMB のインバウンドトラフィックを許可するように設定されていることを確認します。FSx for ONTAP ユーザーガイドの「Amazon VPC によるファイルシステムアクセスコントロール」セクションには、様々な FSx for NetApp ONTAP のトラフィックに必要なプロトコルとポートがまとめられています。

Figure_5_SG_Rules

d. ファイルシステムの詳細ページに戻り、「ストレージ仮想マシン」タブを選択し、NLB を作成する SVM を選択し、「ストレージ仮想マシンの詳細」に移動します。 次に、SVM 概要ページの「エンドポイント」セクションを探し、管理 IP アドレスをメモします(管理と NFS、SMB の IP アドレスはすべて同じです)。これは後で必要になります。これは手順の後半で必要になります。

Figure_6_Mgmt_Addr

2. NLB ターゲットグループの作成

SVM の ID を取得し、セキュリティグループを確認したので、NLB のターゲットグループを作成します。各ターゲットグループは、1 つまたは複数の登録されたターゲットにリクエストをルーティングするために使用されます。その後に NLB を作成します。次に、次の表に記載されている各エントリに対して、1 つのターゲットグループを作成します。

a. Amazon EC2 マネジメントコンソールで、サイドナビゲーションタブから「ロードバランシング」セクションにある「ターゲットグループ」を選択してから「ターゲットグループの作成」を選択します。
Figure_7_Target_Groups

次の表の各エントリごとに、1 つのターゲットグループを作成します。次の手順で、各ターゲットグループの作成時に選択するオプションを示します。

ポート番号 プロトコル サービス名 通信に関わるコンポーネント
2049 TCP と UDP NFS v4 もしくは NFS v3 NFS クライアント
111 TCP と UDP RPC(NFS v3 の場合に必要) NFS クライアント
445 TCP SMB SMB クライアントと CIFS

b. 各ターゲットグループごとに、「基本的な設定」で「IP アドレス」を選択し、ターゲットグループ名を記入し、IPv4を使用して、FSx for NetApp ONTAP ファイルシステムをデプロイしている VPC を指定してください。ヘルスチェックはデフォルトのままにしておくこともできますし、好みに応じて変更することもできます。ターゲットグループのヘルスチェックについては、Elastic Load Balancing のユーザーガイドを参照してください。

Figure_8_Target_Group_Name

c. ターゲットの登録ページで、「ネットワーク」 で「その他のプライベート IP アドレス」を選択し、「アベイラビリティーゾーン」 で「すべて」を選択してください。「許可される範囲」で、前の手順でメモをした SVM の管理 IP アドレスを指定します。

Register_Targets

同じページで、各ターゲットグループに対して、「保留中として以下を含める」オプションを選択します。ポート番号には、手順 2 の a の表でリストアップしたものから選択してください。

Include_Pending

d. 手順 2 の a の表にリストアップしたポート番号とプロトコルの組み合わせで、作成が必要な各ターゲットグループ毎にこの手順を繰り返します。

3. 「登録解除時における接続終了」の設定

次に、すべてのターゲットグループで「登録解除時の接続終了」が有効になっていることを確認する必要があります。

a. Amazon EC2 マネジメントコンソールのターゲットグループのページで、先ほど作成したターゲットグループを 1 つずつ選択し、「アクション」メニューから「属性の編集」を選択します。

Target_Group_Actions

b. 属性の編集ページで、「登録解除時における接続終了」のチェックボックスを選択し、「変更内容の保存」を選択します。

Edit_Attributes

c. 作成したターゲットグループごとに、この作業を繰り返します。

4. NLB の作成

ターゲットグループを作成したら、NLB を作成することができます。

a. Amazon EC2 マネジメントコンソールで、「ロードバランサー」を選択します。ロードバランサーページで、「ロードバランサーの作成」を選択します。

Create_NLB

b. ロードバランサーの種類に「Network Load Balancer」を選択し、「作成」を選択します。

Select_IP_NLB

c. 「基本的な設定」でロードバランサー名を記入し、「スキーム」に「内部」を選択してください。「IP アドレスタイプ」は IPv4 のままにします。「Network mapping」で、FSx for NetApp ONTAP ファイルシステムをデプロイした VPC を選択してください。「マッピング」では、ファイルシステムの優先サブネットとスタンバイサブネットを選択します。

NLB_Mapping

d. 「リスナーとルーティング」で、手順 2 の a の表にリストアップしたプロトコルとポート用のリスナーを追加します。各プロトコルとポートの組み合わせの[デフォルトアクション」で、同じマッピングで作成したターゲットグループを選択して、「転送先」アクションに関連付けます。完了したら、「ロードバランサーの作成」を選択します。

NLB_Listeners

NLB の作成には 5 分程度かかります。

5. NLB を使用したデータアクセスの検証

a. NLB の作成後に、プレミアサポートナレッジセンターガイドの「Elastic Load Balancing がウェブサーバーに送信するトラフィックの送信元 IP アドレスは何ですか ?」に記載されている手順に従って、NSLOOKUP または同様のツールを使用して DNS がいずれかのクライアントから解決可能であることを検証できます。このガイドでは、DNS 名ではなく IP アドレスを使用したい場合に、NLB の IP アドレスを取得する方法についても説明しています。

NLB_DNS

b. 最後に、NLB の DNS 名を使用して、NFS または SMB 経由でボリュームをマウントできることを確認してください。NFS または SMB を介してマウントする方法については、FSx for ONTAP ユーザーガイドの「ボリュームをマウントする」を参照してください。SVM 管理 / NFS / SMB の DNS や IP アドレスは使用せず、ロードバランサーの DNS を使用する必要があります。

NFS_Mount

CIFS_Share

このセットアップでプロビジョニングされた AWS リソースのコストに関する考慮事項

NLB を使用する場合のコスト計算として、組織が既に Direct Connect(または S2S VPN)を使用してオンプレミスのデータセンターを AWS に接続していると仮定します。このシナリオのエンドユーザーが、NLB 経由で確立された TCP 接続を介して、1 か月あたり約 50 TB のデータを FSx for NetApp ONTAP に転送するとします。1 分あたりで平均 200 件の新しい TCP 接続と、平均の接続時間が 15 秒であることを考慮すると、この組織で発生する 1 か月あたりの追加コストが計算できます。

NLB Diagram

図 1: NLB ダイアグラム

単位の変換

  • TCP の NLB あたりの処理バイト数:1 か月あたり 50 TB x 1 TB あたり 1,024 GB x 1 時間で 0.00136986 か月 = 1 時間あたり 70.136832 GB
  • 新しい TCP 接続の平均数:1 分あたり 200 件/ (1 分に 60 秒) = 3.33 件/秒

料金の計算

  • 1 時間あたり 136,832 GB /LCU あたり 1 GB 処理バイト/時間 = 70.136832 TCP 処理バイト数 LCU
  • LCU あたり 33 個の新しい TCP 接続/800 個の接続 = 0.0041625 個の新しい TCP 接続 LCU
  • 新しい TCP 接続 33 個 x 15 秒 = 49.95 個のアクティブ TCP 接続
  • LCU あたり 95 のアクティブ TCP 接続/100,000 接続 = 0.0004995 のアクティブ TCP 接続 LCU
  • 最大 (70.136832 TCP 処理バイト数 LCU、0.0041625 新しい TCP 接続 (LCU)、0.0004995 アクティブ TCP 接続 (LCU) = 最大 70.136832 TCP LCU
  • 136,832 TCP LCU x 0.006 NLB LCU 価格 x 月あたり 730 時間 = 307.20 US ドル (ネットワークロードバランサーごとの TCP トラフィック用)
  • 最大 (0 UDP 処理バイトの LCU、0 個の新しい UDP フロー LCU、0 個のアクティブ UDP フロー LCU) = 0.00 最大 UDP LCU
  • 最大 (TLS 処理バイト数 (LCU)、新しい TLS 接続 (LCU) 0 個、アクティブ TLS 接続 (LCU) 0 個 (LCU) = 0.00 最大 TLS LCU
  • 1 台の Network Load Balancer x 307.20 USドル = 307.20 US ドル
  • 1 台の Network Load Balancer x 0.027 USドル x 1 か月あたり 730 時間 = 19.71 US ドル

全 Network Load Balancer の LCU 料金合計(月額):307.20 US ドル
全 Network Load Balancer の 1 時間あたりの合計料金(月額):19.71 US ドル

月額総費用:326.91 US ドル

セットアップの可用性監視

Network Load Balancer の CloudWatch メトリクス」を使用して NLB の状態を監視し、アラームを作成できます。ここでは、いくつかの重要なメトリクスについて説明します。

HealthyHostCount 正常と見なされるターゲットの数。

統計情報
:最も有用な統計は、最大値と最小値です。
UnHealthyHostCount 異常と見なされるターゲットの数。

統計情報
:最も有用な統計は、最大値と最小値です。
ActiveFlowCount クライアントからターゲットへの同時フロー (または接続)の総数。このメトリクスには、SYN_SENT 状態と ESTABLISHED 状態の接続が含まれます。TCP 接続はロードバランサーで終了しないため、クライアントがターゲットへの TCP 接続を開くと 1 つのフローとしてカウントされます。

統計情報
:最も有用な統計は、平均、最大、最小です。

まとめ

この記事では、AWS Transit Gateway(TGW)の代わりに NLB を活用して、FSx for NetApp ONTAP ファイルシステムをデプロイした VPC の外部から、マルチ AZ 構成の FSx for NetApp ONTAP ファイルシステムにアクセスする方法を説明しました。NLB を使用することで、VPC のネイティブなサブネット内に存在する DNS ホスト名(または IP アドレス)を介して NFS や SMB、管理トラフィックにアクセスできます。このソリューションにより、現在 TGW を構成していないお客様や、 TGW ルートテーブルに入力された静的ルートを管理したくないお客様のネットワーク構成が簡素化できます。また、NLB を使用して移行計画を立てる際のコスト分析を行う方法についても説明しました。Transit Gateway を同じユースケースで使用する方法については、ユーザーガイドのドキュメントの「デプロイ用の VPC の外部からのデータへのアクセス」を参照してください。

このブログ記事を読んでくれてありがとうございました。

翻訳はプロフェッショナルサービス本部の葉山が担当しました。

Jay Horne

Jay Horne

Jay Horne は、AWS World-Wide Specialist Organization の Sr. Storage Solutions Architect です。テネシー州ナッシュビルに拠点を置き、15 年以上にわたってさまざまなクラウド、ストレージ、サーバー、ネットワークのインフラストラクチャに関するエンタープライズコンサルティングの経験があります。Jay が米国南東部のストレージやクラウドのカンファレンスでプレゼンテーションをしているのをよく見かるでしょう。