AWS 冗長化 vSocket トラブルシューティング

Prev Next

概要

このガイドは、AWS vSocket冗長化の導入中に発生する一般的な問題に対処するための詳細なトラブルシューティングフレームワークを提供します。 手動でのデプロイまたはAWSマーケットプレイスを通じてのデプロイのいずれにおいても、これらのステップは潜在的な問題を効果的に特定及び解決するのを支援します。

症状

AWS vSocket 冗長化デプロイメントでの一般的な問題には以下が含まれます:

  • 冗長化フェイルオーバーの失敗

    • vSocket WebUIからの冗長化 APIテストの失敗。

    • 冗長化フェイルオーバー失敗により、セカンダリvSocketにトラフィックが転送されない。

  • 冗長化ステータス未準備

    • CMAは、このサイトの冗長化ステータスを"未準備"と表示します。

考えられる原因

冗長化デプロイ失敗の多くは次の原因によります:

  • AWSで非公開DNSの使用。

  • 管理インタフェースがインターネットアクセスを欠いている。

  • IAMロールの誤設定。

  • AWSでの制限的なセキュリティグループおよびルーティング設定。

  • 適切なネットワークインタフェースをLANルーティングテーブルに割り当てることができない。

  • LAN接続の問題。

問題のトラブルシューティング

重要:

トラブルシューティングを開始する前に、AWS HA vSocket デプロイメントの全ての前提条件が確認されていることを確認してください。 AWS vSocket サイトを手動でデプロイする, AWSマーケットプレイスからvSocketサイトをデプロイする, AWS vSocketsの冗長化を設定するをご参照ください

冗長化フェイルオーバーの失敗のトラブルシューティング

フェイルオーバー時にトラフィックがセカンダリvSocketにルーティングされない場合、以下のトラブルシューティング手順を考慮してください:

冗長化APIテストの実行

  • vSocket WebUIから、両方のvSocketsに対してAPIテストツールを実行します。

  • このツールは、AWSへのAPI呼び出しが正常に行えることを検証します。

  • ここで、権限やルーティングテーブルの更新に関連するエラーが表示されます。

AWS DNS設定を確認する

  • 関連するVPCに対して、デフォルトのAWS DNSサーバーが設定されていることを確認してください。 

  • AWS DNS設定を確認するには、参照してください DNS設定の問題の修正

  • カスタムDNSサーバー(例:プライベートDNSサーバー)が設定されている場合、公的なドメインが解決できることを確認してください。 FQDN ec2.<地域>.amazonaws.com (例: ec2.us-east-1.amazonaws.com) がAPIで使用されるため、解決可能であることを確認してください。

  • MGMTインタフェースに関連付けられたセキュリティグループは、AWSのデフォルトDNSサーバーが設定されている場合であっても、DNSリクエストを8.8.8.8と8.8.4.4に許可すべきです。

LANルーティングテーブルを確認する

  • AWSは、マスターvSocketのLANネットワークインタフェースをLANルーティングテーブルに割り当てます。

  • VPC > ルートテーブルに移動して、LANルーティングテーブルを選択します。 ルートタブの下で、マスターvSocketのLANネットワークインタフェースがデフォルトルートのゲートウェイ(ターゲット)であることを確認してください。 そうでない場合は、次のステップを続行します。  

  • 対象のNICがフェイルオーバー中に変更されなかった場合、LANルーティングテーブルを手動で修正することは迅速な回避策となる可能性があります。

IAMロールの確認

  • AWS vSocket デプロイメント中に、冗長化IAMロールが作成され、プライマリおよびセカンダリvSocketsの両方に関連付けられます。

  • 各インスタンスの詳細ページで、正しいIAMロールが割り当てられていることを確認します。  

  • IAMロールリンクをクリックし、権限タブの下でIAMポリシーに以下の正しいステートメントが含まれていることを確認してください。  

注意: IAMロールが欠落している場合、ロールが追加されると、追加されたロールを有効にするためにソケットを再起動する必要があります。

IMDS設定の確認

  • 両方のvSocketsが一致するIMDS設定(オプションまたは必須)を使用していることを確認します。 詳細については、AWSドキュメントを確認してください。

  • vSocketビルド20.0.18221以降、IMDSv2がサポートされています。

  • IMDSの設定を変更するには、インスタンスを選択し、アクションの下で、インスタンス設定 > インスタンスメタデータオプションを変更をクリックします。

ネットワークセキュリティグループの確認。

  • ネットワークセキュリティグループが管理インタフェースへのアウトバウンドトラフィックをブロックしていないことを確認してください。

  • EC2 > ネットワークインタフェースの下で、管理インタフェースに関連付けられているセキュリティグループを見つけてください。 

  • セキュリティグループのアウトバウンドルールがポート80, 443, および53を許可していることを確認します。 この場合、すべてのアウトバウンドトラフィックが許可されています。

MGMTインタフェースのインターネットトラフィック用のルーティングを確認する。

  • MGMTインタフェースのトラフィックがAWS内のサードパーティファイアウォールを通ってルーティングされている場合、アウトバウンド接続でUDP/53, TCP/80, TCP/443が許可されていることを確認します。

  • ネットワークインタフェースページから、MGMTインタフェースのサブネットIDをクリックします。 

  • サブネットページで、ルートテーブルタブを選択します。 以下のスクリーンショットはデフォルトルートがインターネットゲートウェイを指していることを示しており、ファイアウォールがトラフィックをブロックしていません。 

  • 関連ルートテーブルを開き、すべてのMGMTサブネットが関連付けられているサブネットとしてリストされていることを確認します。 デュアル可用性ゾーンの場合、2つのMGMTサブネットが存在し、各vSocketに一つずつ配置されます。詳しくは、セカンダリvSocket LANインターフェイス用サブネットの作成をご参照ください  

  • VPCのリソースマップタブで、関連付けられたすべてのサブネットとそのルーティング構成が視覚的に参照しやすく表示されます。

  • MGMTインタフェースに弾性IPが関連付けられていることを確認します。 これはインスタンスのネットワークタブから確認できます。 MGMTインタフェースは、デバイスインデックス0によって識別できます。 WANとLANのインタフェースはそれぞれデバイスインデックス1および2に関連付けられている必要があります。  

CloudTrail ログの確認

  • AWS CloudTrailを有効にして、冗長化フェイルオーバー中にLANルーティングテーブルを変更しようとした際のAPI呼び出しを記録してデバッグします。

  • トレイルを作成し、ログを保存するためのS3バケットを定義し、APIアクティビティを含む管理イベントを選択するためのプロセスを追従できます。 トレイルの作成をご参照ください。

冗長化ステータス未準備のトラブルシューティング

CMAが冗長化ステータスが未準備であると表示し、両方のvSocketsがアップして稼働している場合、両方のvSocketsはマスターロールを取る(スプリットブレインシナリオ)。 これは次の理由で発生する可能性があります:

  • 両方のvSocketsが異なるファームウェアバージョンで稼働している

  • 冗長化キープアライブメッセージがセカンダリvSocketに到達しない

両方の vSocket WebUI ページを確認し、それぞれの冗長化ステータスを確認することをお勧めします。 プライマリおよびセカンダリのvSocketがマスターロールである場合、スプリットブレインシナリオが発生します。 WebUIはメインモニタリングページの上部に現在のロールを表示します。

ファームウェアバージョンの確認

互換性のあるバージョンクライテリアを満たすために、両方のvSocketsは同じ MAJOR バージョンを実行している必要があります。例:v17.xx.yyまたはv18.xx.yy。最初のデプロイ後にvSocketsが初期アップグレードを行います。 もし1つのvSocketがアップグレードに失敗した場合、この問題はトラブルシューティングされるべきです。 この問題を報告するためにサポートチケットを送信してください。

冗長化キープアライブの確認

AWS vSocket向けのキープアライブパケットはUDP/20480ポートを使用し、マスターvSocketからスタンバイvSocketへのみ送信されます。 スプリットブレインの状態は、両方のvSocketsがマスターロールを持つ場合に発生します。これは、vSocket間のLAN接続の問題により、冗長化キープアライブメッセージがセカンダリvSocketに到達しない状況を生み出します。

LAN接続性を確認するため、以下のチェックを実行します:

発見された問題の解決

DNS設定問題の修正

  • DNS設定の問題を修正するには、デフォルトのAWS DNSサーバーがVPCに対して設定されているか確認します。

  • VPC詳細で、設定されているDHCPオプションセットを見つけてください。

  • DHCPオプションセットを開き、定義されたドメイン名サーバーがAmazonProvidedDNSであることを確認します。

  • 既存のドメイン名サーバーを変更することはできません。 そのためには、新しいDHCPオプションセットを作成し、デフォルトでAmazonProvidedDNSを使用します。

AWS vSocketの登録解除と再デプロイ

  • 上記のトラブルシューティング手順を全て行った後でも冗長化フェイルオーバーが続く場合、1つまたは両方のvSocketsを登録解除および再デプロイすることが可能です。 冗長化vSocketサイトの再デプロイをご覧ください

  • 再デプロイする前にバーチャルマシンを削除し、ネットワークインタフェース、関連付けられたパブリックIP、IAMロールを保持することが重要です。

  • さらに、適切なIAMロールをvSocketに再アタッチすることを忘れないでください。vSocketインスタンス > セキュリティ > IAMロールのアタッチおよびAWS-HAロールの割り当てを選択します。

Cato サポートへのケース報告

上記のトラブルシューティングステップの結果と共にサポートチケットを提出してください。 次の情報をチケットに含めてください:

  • 問題の明確な説明と、エラーメッセージを含む。

  • VPCでのDNS設定。

  • APIテスト結果。

  • LANルーティングテーブルと設定されたIAMロールのスクリーンショット。

  • 可能であれば、フェイルオーバー失敗時のCloudTrailログファイル。