複数のネットワーク・インターフェイスの使用

複数のネットワーク・インターフェイス用にDataStax Enterpriseを構成する、またはクラウド実装で異なるリージョンを使用する際の手順。

複数のネットワーク・インターフェイス用にDataStax Enterpriseを構成する、またはクラウド実装で異なるリージョンを使用する際の手順。

設定は、cassandra.yaml ファイルと関連のプロパティ・ファイルの両方で構成する必要があります。

cassandra.yaml

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール installation_location/resources/cassandra/conf/cassandra.yaml

cassandra-rackdc.properties

cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra-rackdc.properties
tarボール・インストール installation_location/resources/cassandra/conf/cassandra-rackdc.properties

複数のネットワーク、またはクラウド実装でのリージョン全体でのcassandra.yamlの設定

複数のネットワーク、またはリージョン間のクラウド・シナリオでは、データ・センター間の通信は、外部IPアドレスのみを使用して行われます。外部IPアドレスは、broadcast_address設定を使用して、cassandra.yamlファイルで定義されます。各ノードを以下のように構成します。

  1. まず、 cassandra.yaml ファイルで、listen_addressをノードのプライベートIPアドレスに設定し、broadcast_addressをノードのパブリック・アドレスに設定します。

    これにより、ノードを別のネットワークまたはリージョンのノードにバインドできるようになり、マルチ・データ・センターがサポートされます。ネットワーク内またはリージョン内トラフィックのために、接続が確立した後はプライベートIPに切り替わります。

  2. cassandra.yamlファイル内シード・ノードのアドレスをパブリックIPのアドレスに設定します。プライベートIPはネットワーク間でルーティングできません。例を次に示します。
    seeds: 50.34.16.33, 60.247.70.52
    注: すべてのノードをシードにしないでください。「ノード間のコミュニケーション(ゴシップ)」を参照してください。
  3. storage_portまたはssl_storage_portがパブリックIPファイアウォールで開かれていることを確認してください。
注意: パブリックIPを使用する際は、必ず暗号化と認証を有効にしてください。「ノード間接続用にSSLを構成する」を参照してください。他の方法として、ローカルのリージョン/データ・センター間のIPを持つカスタムVPNを使用することもできます。

非EC2実装のための追加のcassandra.yaml構成

非EC2実装で複数のネットワーク・インターフェイスを使用する場合、listen_on_broadcast_address オプションを有効にします。
listen_on_broadcast_address: true
非EC2環境では、パブリック・アドレスからプライベート・アドレスへのルーティングは自動的に有効になりません。listen_on_broadcast_address を有効にすると、DSEはlisten_addressbroadcast_addressの両方で2つのネットワーク・インターフェイスを使用してリッスンできます。

複数のネットワーク用のスニッチの構成

データ・センター間の外部通信は、broadcast_address(パブリックIP)を使用している場合にのみ行われます。

プロダクション環境にはGossipingPropertyFileSnitchを推奨します。cassandra-rackdc.propertiesファイルは、このスニッチで使用されるデータ・センターを定義します。broadcast_addressへのトラフィックがlisten_addressに再ルーティングされるようにするには、prefer_localオプションを有効にします。

ネットワークのノードごとに、cassandra-rackdc.properties ファイルで各ノードのデータ・センターを指定します。

以下の例では、2つのデータ・センターがあり、データ・センターにはそれぞれ、ワークロードの名前が付けられています。この例のデータ・センター命名規則は、ワークロードに基づいています。DC1、DC2、または100、200など他の規則を使用することもできます。データ・センターの名前は、大文字と小文字が区別されます。

ネットワークA ネットワークB
ノードとデータ・センター:
  • node0

    dc=DC_A_transactional rack=RAC1

  • node1

    dc=DC_A_transactional rack=RAC1

  • node2

    dc=DC_B_transactional rack=RAC1

  • node3

    dc=DC_B_transactional rack=RAC1

  • node4

    dc=DC_A_analytics rack=RAC1

  • node5

    dc=DC_A_search rack=RAC1

ノードとデータ・センター:
  • node0

    dc=DC_A_transactional rack=RAC1

  • node1

    dc=DC_A_transactional rack=RAC1

  • node2

    dc=DC_B_transactional rack=RAC1

  • node3

    dc=DC_B_transactional rack=RAC1

  • node4

    dc=DC_A_analytics rack=RAC1

  • node5

    dc=DC_A_search rack=RAC1

クラウド実装でのリージョン間通信用のスニッチの構成

注: 実装に適切なスニッチを使用するようにしてください。Amazon EC2でデプロイしている場合は、「Ec2MultiRegionSnitch」の指示を参照してください。

クラウド・デプロイでは、リージョン名はデータ・センター名として扱われ、アベイラビリティー・ゾーンはデータ・センター内のラックとして扱われます。たとえば、ノードがus-east-1リージョンにある場合、us-eastはデータ・センター名で、1がラックの場所です。(ラックはレプリカの分散には重要ですが、データ・センターの命名には重要ではありません。)

以下の例では、2つのDataStax Enterpriseデータ・センターがあり、データ・センターにはそれぞれ、ワークロードの名前が付けられています。この例のデータ・センター命名規則は、ワークロードに基づいています。DC1、DC2、または100、200など他の規則を使用することもできます。データ・センターの名前は、大文字と小文字が区別されます。

ノードごとに、cassandra-rackdc.propertiesで各ノードのデータ・センターを指定します。dc_suffixオプションは、スニッチで使用するデータ・センターを定義します。他の行は無視されます。

リージョン:us-east リージョン:us-west
ノードとデータ・センター:
  • node0

    dc_suffix=_1_transactional

  • node1

    dc_suffix=_1_transactional

  • node2

    dc_suffix=_2_transactional

  • node3

    dc_suffix=_2_transactional

  • node4

    dc_suffix=_1_analytics

  • node5

    dc_suffix=_1_search

この結果、4つのus-eastデータ・センターがあることになります。
us-east_1_transactional
us-east_2_transactional
us-east_1_analytics
us-east_1_search
ノードとデータ・センター:
  • node0

    dc_suffix=_1_transactional

  • node1

    dc_suffix=_1_transactional

  • node2

    dc_suffix=_2_transactional

  • node3

    dc_suffix=_2_transactional

  • node4

    dc_suffix=_1_analytics

  • node5

    dc_suffix=_1_search

この結果、4つのus-westデータ・センターがあることになります。
us-west_1_transactional
us-west_2_transactional
us-west_1_analytics
us-west_1_search