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

所要時間3分
0

AWS Application Migration Service を使用してデータをレプリケートすると、Windows ソースサーバーに遅延またはバックログが発生します。

簡単な説明

ソースサーバーからターゲットサーバーにデータをレプリケートしようとする際、レプリケーションの遅延とバックログが起こる要因は、次のとおりです。

  • [レプリケート中のディスクの変更]: レプリケーションプロセス中も、ソースサーバーが引き続き新しいデータをディスクに書き込むことがあります。ソースサーバーが書き込もうとする新しいデータの量が急増すると、データが蓄積され、大量のバックログが発生します。このバックログは AWS Replication Agent によって初回の同期で送信されなければなりませんが、バックログが大きいほど、データレプリケーションの完了に要する時間が長くなります。
  • [ストレージディスクの I/O 速度]: レプリケーションプロセス中、AWS Replication Agent はディスクのストレージブロックを読み取り、データをレプリケーションサーバーに送信します。ただし、ソースサーバーディスクからの読み取りレイテンシーが長いと、データレプリケーションの速度と効率に影響する場合があります。低速ディスクはレプリケーションの遅延を引き起こし、高速ディスクはレプリケーション速度を向上させます。
  • [ソースサーバーへの負荷]: [ソースサーバーでリソース競合が発生すると、CPU 使用率が高くなる、メモリ消費量が多くなる、I/O 待機時間が長くなるなどのリソース制約が発生する可能性があります。たとえば、CPU 使用率が高いと、レプリケーションにボトルネックが発生する可能性があります。これは、システムが AWS Replication Agent と他のプロセスに CPU リソースを配分するのに苦労しているためです。また、メモリ消費量が多いと、システムがメモリページをディスクにスワップする可能性があります。その結果、I/O 待機時間が長くなり、レプリケーションプロセスが遅くなります。
  • [プロビジョニングが不十分なレプリケーションリソース]: Amazon Elastic Block Store (Amazon EBS) ボリュームを低いスループットと少ない IOPS でステージングすると、読み取りと書き込みのレイテンシーとキューが長くなる可能性があります。これらの問題はすべて、レプリケーションのパフォーマンスに影響します。また、ネットワークスループットが低く Amazon EBS 帯域幅が低いタイプのレプリケーションサーバーインスタンスでは、レプリケーションパフォーマンスで問題が起きます。

解決方法

遅延の原因を特定するには、まずソースサーバーをチェックします。次に、ステージング領域をチェックします。

ソースサーバーのチェック

[ソースサーバーが起動して実行中であることを確認する]

移行対象のソースサーバーが起動して実行されていることを確認します。

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

PowerShell から次のコマンドを実行して、実行中の AWS Replication Agent サービスを一覧表示します。

get-service | where-object name -like “*AWSR*”

次の出力は、デフォルトで実行されるサービスを示しています。メインの [AWSReplicationService] が実行されていることを確認します。

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 キー] を押します。[AWSReplicationService] が実行されていることを確認します。

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

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

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

C:\Users\Administrator>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 リソースモニターを使用してソースサーバーのパフォーマンスをチェックする **]

AWS Replication Agent は一度に 1 つの CPU コアで動作します。AWS Replication Agent が実行されているコアの CPU 使用率が高いと、データレプリケーションが遅くなります。CPU 使用率をチェックするには、次の手順を実行します。

  1. 次のいずれかの方法を使用して Windows リソースモニターを起動します。
  • タスクマネージャーの [パフォーマンス] タブで、[リソースモニターを開く] を選択します。
  • []コントロールパネルで、[管理ツール]、[リソースモニター] を選択します。
  • コマンドラインまたは PowerShell で [resmon.exe] を実行します。
  • Windows アイコンを選択し、[resmon.exe] と入力します。
  1. AWS Replication Agent が実行されている CPU コアの CPU 使用率をチェックします。
  • そのコアの CPU 使用率が高い場合は、どのプロセスが CPU を最も多く使用しているかを調べます。
  • Agent は CPU の 5% 以上を使用します。Agent がデータレプリケーションを十分に実行できるように、CPU の 5% 以上が使用可能であることを確認してください。
  1. ソースサーバーのディスクパフォーマンスをチェックします。

[書き込み (バイト/秒)] と [応答時間 (ミリ秒)] のメトリクスをチェックします。

これらのメトリクスは [ディスク活動] でチェックできます。ソースディスクからの読み取りスループットが低い場合、エージェントが読み取ってレプリケートするデータの量が少なくなります。ディスクからの読み取りとディスクへの書き込みのメトリクスが増加していないかどうかに注意します。

注: レプリケートされたデータを TCP ポート 1500 経由で転送するのに必要な帯域幅は、対象ソースサーバーの書き込み速度によって異なります。ベストプラクティスは、レプリケートする全ソースマシンの平均書き込み速度の合計以上の帯域幅を確保することです。

  1. ソースサーバに書き込み操作の急増がないかをチェックします。

書き込み操作をチェックするには、[ディスク活動] の [書き込み (バイト/秒)] を確認します。

ワークロードが変化したら、ディスクのパフォーマンスを定期的にチェックして I/O 負荷を確認します。書き込みスループット (MB/秒) が指定されたネットワークスループット量を超えると、レプリケーションの遅延が発生します。

注: ソースサーバーからレプリケーションサーバーにデータをレプリケートするのに必要な帯域幅を計算するには、TCPポート 1500 に必要な帯域幅の計算 を参照してください。

ソースサーバーで書き込み比率が高く、レプリケーションの速度を超える書き込みを行っている場合、バックログは増え続けます。

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

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

正常にシャットダウンされなかったソースサーバーがないかをチェックする

ソースサーバーが正常にシャットダウンされなかった場合、AWS Replication Agent は、サーバーが再起動された後にすべてのディスクを再スキャンします。AWS Replication Agent がディスクを再読み取りするので、再スキャンが完了するまで遅延は増え続けます。詳細については、再起動時に再スキャンを行わないようにする Windows および Linux OS はどれ? を参照してください。

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

  1. [Windows キー + R キー を押し、[eventvwr.msc] と入力して [Enter キー] を押します。

  2. イベントビューアーで [Windows ログ] をダブルクリックして展開します。

  3. [システム] を右クリックします。

  4. [現在のログをフィルター] を選択します。

  5. [イベントソース] の横にあるドロップダウン矢印を選択し、[USER32] を選択します。

  6. <All Event IDs> フィールドに [1074] と入力し、[OK] を選択します。イベントビューアーに、**[シャットダウンタイプ]**が [電源オフ (シャットダウン)] と [再起動] であるイベントが一覧表示されます。

  7. コンピュータが予期せずシャットダウンした日付と時刻を確認するには、[6008] と入力します (入力フィールド: [<All Event IDs>])。次いで [OK] を選択します。

TCP ポート 1500 からのアウトバウンド接続がブロックされていないことを確認する

  1. TCP ポート 1500 がソースサーバーからレプリケーションサーバーへのアウトバウンド接続をブロックしていないことを確認します。

2.    以下の例に示すように、レプリケータインスタンスの IP アドレスに対して Telnet または TNC を実行できます。

  • CMD から: telnet <replication subnet IP address> 1500
  • PowerShell から: TNC <replication subnet IP address> -port 1500
  1. ローカルのファイアウォールが、TCP ポート 443 経由でソースサーバーからレプリケーションサーバーへの接続を許可していることを確認します。OS のファイアウォールにおいて接続を有効にするには、以下の操作を行います。
  • ソースサーバーで、[Windows ファイアウォール] コンソールを開きます。
  • コンソールで、ツリーから [アウトバウンドのルール] オプションを選択します。
  • [アウトバウンドのルール] テーブルで、リモートポート 1500 の接続に関連するルールを選択します。[有効] ステータスが [はい] に設定されていることを確認します。
  • ルールの [有効] ステータスが [いいえ] の場合は、右クリックして [ルールの有効化] を選択します。
  1. TCP ポート 1500 経由でトラフィックを許可するには、貴社のファイアウォールがこの接続を許可していることを確認します。

注: SSL 速度テストまたは iperf テストを実行する方法もあります。詳細については、SSL の接続と帯域幅のテストを実行する方法 を参照してください。

ソースサーバーのレプリケーション設定で帯域幅調整 (スロットリング) がオフになっていることを確認する

ソースサーバーのレプリケーション設定で帯域幅のスロットリングをオフにします。帯域幅のスロットリングをオフにすると、ソースサーバーからステージング領域のサブネットへのデータ転送に十分な帯域幅を確保できます。

ソースサーバーで帯域幅のスロットリングを有効にすると、遅延増加率が一定になるか、または停滞します。これは、スロットリングによってソースサーバーからレプリケーションサーバーへのデータレプリケーションが制限されるためです。

帯域幅のスロットリングをチェックするには、次の手順を実行します。

  1. Application Migration Service コンソールを開きます。

  2. [設定] を選択し、[データのルーティングとスロットリング] でレプリケーションテンプレートを選択します。

  3. [ネットワーク帯域幅をスロットリング] がオンになっている場合は、値をチェックして、一覧表示されているレプリケーション速度と比較します。詳細については、直前のセクション [ソースサーバーからステージングエリアのサブネットまでのレプリケーション速度と使用可能な帯域幅をチェックする] を参照してください。

ステージング領域のリソースチェック

[TCP ポート 1500 へのインバウンド接続がブロックされていないことを確認する]

レプリケーションサーバーのセキュリティグループでインバウンド TCP ポート 1500 がブロックされていないことを確認します。

注: Amazon Elastic Compute Cloud (Amazon EC2) コンソールで以下の手順を完了する必要があります。

  1. Amazon EC2 コンソール を開きます。

  2. レプリケータインスタンスに接続されているセキュリティグループを選択します。

  3. 接続されているセキュリティグループでインバウンド TCP ポート 1500 が許可されていることを確認します。

[ターゲットリージョンのスナップショットクォータをチェックする]

AWS アカウントが、ソースサーバーをレプリケートしているリージョンのスナップショットクォータ制限に達していないことを確認します。リージョンのスナップショットクォータに達したかどうかをチェックするには、次の AWS コマンドラインインターフェイス (AWS CLI) コマンドを実行します。以下の例内の [region] をターゲットリージョンに置き換えます。

注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください

# aws service-quotas get-service-quota --service-code ebs --quota-code L-309BACF6 --region region --query "Quota.Value"  
# aws ec2 describe-snapshots --owner-ids self --region region --query "length(Snapshots)"

関連情報

AWS Application Migration Service を使用する際のレプリケーションボトルネックの特定

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ