スキップしてコンテンツを表示

Application Migration Service の Windows ソースサーバーでの、レプリケーションの遅延やバックログをトラブルシューティングする方法を教えてください。

所要時間3分
0

AWS Application Migration Service を使用してデータを複製する際、Windows ソースサーバーに遅延やバックログが発生します。

簡単な説明

データの複製時、次の原因で遅延やバックログが発生します。

  • 低速なネットワーク接続が原因で、レプリケーションプロセスを完了できなかった。または、帯域幅が原因で複製できるデータ量が制限された。
  • 新しいディスクデータが大幅に急増したことが原因で、AWS Replication Agent が初回同期で送信する必要があるバックログが発生した。
  • ソースサーバー側のディスクでの大幅な読み取り遅延が原因で、ディスクのレプリケーションが遅延した。
  • CPU、メモリ、I/O 待機、またはその他のリソース使用率が高いことが原因で、レプリケーションのボトルネックが発生した。
  • 現在の選択では、Amazon Elastic Block Store (Amazon EBS) ステージングボリュームのスループットや 1 秒あたりの入出力オペレーション (IOPS) が低く、サーバーのネットワーク帯域幅が限られている。この場合、レプリケーション時の遅延やパフォーマンスの問題が引き起こされます。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

ソースサーバーを確認する

**ソースサーバーのステータスを確認する **

移行でのソースサーバーが起動されており、実行中であることを確認します。

AWS Replication Agent プロセスが実行中であることを確認する

実行中の AWS Replication Agent サービスのリストを取得するには、PowerShell で次のコマンドを実行します。

get-service | where-object name -like "*AWSR*"

出力を参照し、AWSReplicationService のステータスが Running であることを確認します。

出力例:

PS C:\Users\Administrator> get-service | where-object name -like "*AWSR*"

Status   Name               DisplayName
------   ----               -----------
Running  AwsReplicationD... AwsReplicationDriverLogger
Running  AwsReplicationL... AwsReplicationLogger
Stopped  AwsReplicationP... AwsReplicationPostConvertService
Running  AwsReplicationS... AwsReplicationService
Running  AwsReplicationV... AwsReplicationVolumeUpdaterService

または、Windows + R キーを押して services.msc を入力した後、Enter キーを押し、AWSReplicationServiceRunning (実行中) と表示されることを確認します。

アクティブな TCP 接続を確認する

レプリケーションサーバーとのアクティブな TCP 接続が、TCP ポート 1500 で 5 件確立されていることを確認します。

TCP ポート 1500 を確認するには、管理者として次のコマンドを実行します。

netstat -an | find "1500"

アクティブな接続に関するコマンド出力を確認します。

出力例:

TCP    172.31.82.135:50929    Replicator Instance IP:1500    ESTABLISHED
TCP    172.31.82.135:50930    Replicator Instance IP:1500    ESTABLISHED
TCP    172.31.82.135:50931    Replicator Instance IP:1500    ESTABLISHED
TCP    172.31.82.135:50933    Replicator Instance IP:1500    ESTABLISHED
TCP    172.31.82.135:50934    Replicator Instance IP:1500    ESTABLISHED

Windows Resource Monitor を使用してソースサーバーのパフォーマンスを確認する

AWS Replication Agent は、一度に 1 つの CPU コアで動作します。AWS Replication Agent を実行するコアの CPU 使用率が高い場合、データのレプリケーションは低速化します。CPU 使用率を確認するには、次の手順を実行します。

  1. タスク マネージャーを開き、[パフォーマンス] タブを選択します。次に、[リソース モニター] を選択します。
    または、
    コントロール パネルを開き、[管理ツール] を選択します。次に、[リソース モニター] を選択します。
    または、
    コマンドラインまたは PowerShell で resmon.exe を実行します。
    または、
    Windows アイコンを選択し、resmon.exe を入力します。
  2. AWS Replication Agent を実行する CPU コアの CPU 使用率を確認します。
    コアの CPU 使用率が高い場合は、CPU の大部分を消費するプロセスを調査します。エージェントが CPU の 5% 以上を消費している場合は、エージェントがデータ複製を実行するのに十分な CPU が利用可能であることを確認します。
  3. ソースサーバーのディスクパフォーマンスを確認します。[ディスクアクティビティ] を参照し、Write (B/sec)Response Time の各メトリクスを確認します。
    ソースディスクの読み取りスループットが低い場合、エージェントが読み取り、複製するデータ量は減少します。ディスク読み込みおよびディスク書き込みのメトリクスの増加を記録します。
    注: 複製されたデータを TCP 1500 経由で転送するのに必要な帯域幅は、関与するソースサーバーの書き込み速度に依存します。帯域幅には、すべての複製されたソースマシンの平均書き込み速度の合計以上を確保することをおすすめします。
  4. ソースサーバーで書き込み操作が急増していないかを確認します。[ディスクアクティビティ] で、Write (B/sec) メトリクスを確認します。
    ワークロードの変化に伴い、定期的にディスクのパフォーマンスを確認し、I/O 負荷を判断します。書き込みスループットが所定のネットワークスループット量を超えた場合、レプリケーションは遅延します。
  5. (オプション) ソースサーバーからレプリケーションサーバーまでの必要な帯域幅を計算します
    注: ソースサーバーで頻繁に書き込みが発生し、書き込みがレプリケーション速度を上回る場合、バックログは継続的に増加します。

ソースサーバーからステージング領域のサブネットまでのレプリケーション速度と利用可能な帯域幅を確認する

速度テストの実行方法については、「SSL 接続および帯域幅のテストを実行する方法を教えてください」を参照してください。

ソースサーバーが不適切にシャットダウンされていないか確認する

ソースサーバーが不適切にシャットダウンされた場合、AWS Replication Agent は、サーバーの再起動後にすべてのディスクを再スキャンします。AWS Replication Agent が再度ディスクを読み取る間、エージェントがスキャンを完了するまで、遅延は継続的に増加します。詳細については、「再起動時に、再スキャンを必要としない Windows と Linux OS バージョンを教えてください」を参照してください。

ソースマシンがどのようにシャットダウンされたかを確認するには、次の手順を実行します。

  1. Windows + R キーを押して eventvwr.msc を入力した後、
  2. Enter キーを押します。
  3. ナビゲーションペインで [Windows ログ] をダブルクリックしてオプションを展開します。
  4. System (システム) のコンテキストメニュー (右クリック) を開きます。
  5. [現在のログをフィルター] を選択します。
  6. [イベント ソース] の下向き矢印を選択し、USER32 を選択します。
  7. [すべてのイベント ID]1074 を入力し、[OK] を選択します。[イベント ビューアー] に電源オフ (シャットダウン) と再起動の Shutdown Type に関するイベントがリスト表示されます。
  8. 予期しないコンピュータのシャットダウン日時をすべて確認するには、[すべてのイベント ID]6008 を入力し、[OK] を選択します。

TCP ポート 1500 でのアウトバウンドトラフィックがブロックされていないことを確認する

ソースサーバーからレプリケーションサーバーへのアウトバウンドトラフィックが TCP ポート 1500 でブロックされていないことを確認するには、次のいずれかのコマンドを実行します。

CMD (コマンド プロンプト) で次のコマンドを実行します。

telnet replication-subnet-IP-address 1500

Windows PowerShell で次のコマンドを実行します。

TNC replication-subnet-IP-address -port 1500

注: replication-subnet-IP-address をレプリケーターインスタンスの IP アドレスに置き換えてください。

ローカルファイアウォールが、TCP ポート 443 経由でソースサーバーからレプリケーションサーバーへの接続を許可していることを確認します。オペレーティングシステム (OS) ファイアウォールの接続を有効にするには、次の手順を実行します。

  1. ソースサーバーで Windows ファイアウォール コンソールを開きます。
  2. [アウトバウンドルール] を選択します。
  3. [アウトバウンドルール] テーブルでリモートポート 1500 の接続に関連するルールを選択します。[有効] のステータスが Yes であることを確認します。
  4. ルールの [有効] ステータスが No の場合は、そのルールでコンテキストメニュー (右クリック) を開きます。次に、[ルールを有効にする] を選択します。

会社のファイアウォールが TCP ポート 1500 経由のトラフィックを許可していることを確認します。

ソースサーバーのレプリケーション設定で帯域幅のスロットリングが無効であることを確認する

ソースサーバーで帯域幅のスロットリングを無効にすることで、ソースサーバーからステージング領域のサブネットへのデータ転送に十分な帯域幅を確保します。帯域幅のスロットリングは、ソースサーバーからレプリケーションサーバーへのデータ複製を制限するため、遅延が継続的に増加するか、一定のペースで増加する可能性があります。

帯域幅のスロットリングが発生していないか確認するには、次の手順を実行します。

  1. Application Migration Service コンソールを開きます。
  2. [設定] を選択します。
  3. [データのルーティングとスロットリング] でレプリケーションテンプレートを選択します。
  4. [帯域幅をスロットリングしない] を選択し、レプリケーションが利用可能なネットワークキャパシティをすべて使用し、移行にかかる時間を削減できるようにします。
    注: [帯域幅をスロットリングする] を選択した場合、Application Migration Service はデータ転送速度を強制的に制限するため、レプリケーションプロセスを低速化させるボトルネックが発生します。このオプションは、コスト制御の目的でネットワーク使用率を制限する必要がある場合や、他の重要アプリケーション用にリソースを保護する必要がある場合のみ選択してください。

ステージングエリアのリソースを確認する

インバウンドトラフィックが TCP ポート 1500 でブロックされていないことを確認する

レプリケーションサーバーのセキュリティグループがインバウンドトラフィックを TCP ポート 1500 でブロックしていないことを確認するには、次の手順を実行します。

  1. Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
  2. ナビゲーションペインで [セキュリティグループ] を選択し、レプリケーターインスタンスにアタッチされているセキュリティグループを選択します。
  3. セキュリティグループがインバウンドトラフィックを TCP ポート 1500 で許可していることを確認します。

ステージングリソースを分析する

レプリケーションインスタンスとステージングディスクの構成を参照し、パフォーマンスのボトルネックが発生していないか確認します。

宛先リージョンのスナップショットに対するクォータを確認する

AWS アカウントが、レプリケーションサーバーの AWS リージョンにおけるスナップショットクォータを超えていないことを確認します。

リージョンのスナップショットクォータを確認するには、次の AWS CLI コマンド get-service-quota を実行します。

aws service-quotas get-service-quota --service-code ebs --quota-code L-309BACF6 --region regionexample --query "Quota.Value"  

注: regionexample をリージョンに置き換えてください。

次に、以下の describe-snapshots コマンドを実行し、リージョン内のスナップショットを確認します。

aws ec2 describe-snapshots --owner-ids self --region regionexample --query "length(Snapshots)"

注: regionexample をリージョンに置き換えてください。

AWS公式更新しました 5ヶ月前
コメントはありません

関連するコンテンツ