物理レプリケーションは、レプリカシャードを備え、ログ収集や時系列分析などのデータ可視化に若干の遅延を許容できる、書き込み負荷の高いユースケースに最適です。この機能により、CPU オーバーヘッドが大幅に削減され、書き込みパフォーマンスが向上します。ネイティブの Elasticsearch と比較して、物理レプリケーションを有効化すると、書き込みパフォーマンスが 45 % 以上向上します。
物理レプリケーション機能は、Alibaba Cloud が開発した apack プラグインによって提供されます。apack プラグインは、Alibaba Cloud Elasticsearch インスタンス(バージョン 6.7.0(カーネルバージョン 1.2.0 以降)または 7.10.0)上でデフォルトでインストールされており、アンインストールできません。インストール状況は、プラグイン ページでご確認いただけます。本トピックで紹介するすべてのコマンドは、Kibana コンソールから実行できます。詳細については、「Kibana を使用したクラスターへの接続」をご参照ください。
物理レプリケーションの有効化
インデックス作成時に、インデックス設定で物理レプリケーションを有効化できます。有効化後、プライマリシャードの書き込みメカニズムはネイティブの Elasticsearch と同様に維持され、インデックスファイルおよびトランザクションログ(translog)の両方に書き込まれます。一方、レプリカシャードはトランザクションログのみに書き込みます。各リフレッシュ処理において、プライマリシャードはネットワーク経由で増分のインデックスファイルをレプリカシャードにコピーします。プライマリシャードとレプリカシャード間のデータ可視化遅延は、ミリ秒単位です。

apack プラグインのインストール後に作成されたインデックスでは、物理レプリケーションがデフォルトで有効化されており、手動での設定は不要です。プラグインインストール前に作成された既存のインデックスに対してこの機能を有効化するには、「既存のインデックスに対する物理レプリケーションの有効化」をご参照ください。
PUT index-1
{
"settings": {
"index.replication.type" : "segment"
}
}物理レプリケーションの無効化
物理レプリケーションを無効化すると、インデックスはネイティブレプリケーションモードへ復元され、プライマリシャードおよびレプリカシャードの両方がインデックスファイルおよびトランザクションログに書き込むようになります。ディザスタリカバリのために Cross-Cluster Replication (CCR) を使用する場合は、まず物理レプリケーションを無効化する必要があります。
インデックスをクローズします。
POST index-1/_closeインデックス設定を更新し、物理レプリケーションを無効化します。
PUT index-1/_settings { "index.replication.type" : null }インデックスを開きます。
POST index-1/_open
既存のインデックスに対する物理レプリケーションの有効化
ネイティブモードで作成された既存のインデックスに対して物理レプリケーションを有効化するには、まずレプリカ数を 0 に設定し、インデックスをクローズする必要があります。
インデックスのレプリカ数を 0 に設定します。
PUT index-1/_settings { "index.number_of_replicas": 0 }インデックスをクローズします。
POST index-1/_closeインデックス設定を更新し、物理レプリケーションを有効化します。
PUT index-1/_settings { "index.replication.type" : "segment" }インデックスを開きます。
POST index-1/_openインデックスのレプリカ数を 1 に設定します。
PUT index-1/_settings { "index.number_of_replicas": 1 }