ElastiCache クラスターまたはレプリケーショングループへのアクセス - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ElastiCache クラスターまたはレプリケーショングループへのアクセス

Amazon ElastiCache インスタンスは、Amazon EC2インスタンスを介してアクセスされるように設計されています。

Amazon Virtual Private Cloud (Amazon VPC) で ElastiCache インスタンスを起動した場合、同じ Amazon の Amazon EC2インスタンスからインスタンスにアクセスできます ElastiCacheVPC。または、VPCピアリングを使用して、別の Amazon EC2の Amazon から ElastiCache インスタンスにアクセスできますVPC。

EC2 Classic で ElastiCache インスタンスを起動した場合、EC2インスタンスに関連付けられた Amazon EC2 セキュリティグループにキャッシュセキュリティグループへのアクセスを許可することで、インスタンスがクラスターにアクセスできるようにします。デフォルトでは、クラスターへのアクセスはそのクラスターを起動したアカウントに制限されています。

クラスターまたはレプリケーショングループへのアクセスの許可

クラスターを EC2- に起動しましたVPC

Amazon Virtual Private Cloud (Amazon VPC) でクラスターを起動した場合、クラスターに接続 ElastiCacheできるのは、同じ Amazon で実行されている Amazon EC2インスタンスからのみですVPC。この場合、クラスターに対するネットワーク進入を許可する必要があります。

注記

[Local Zones] を使用している場合、それを有効にしていることを確認します。詳細については、「Local Zones の有効化」を参照してください。これにより、 VPCはそのローカルゾーンに拡張され、 VPCはサブネットを他のアベイラビリティーゾーンおよび関連するゲートウェイ、ルートテーブル、その他のセキュリティグループの考慮事項の任意のサブネットとして扱います。 は自動的に調整されます。

Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには
  1. にサインイン AWS Management Console し、 で Amazon EC2コンソールを開きますhttps://console.aws.amazon.com/ec2/

  2. ナビゲーションペインで、[ネットワーク & セキュリティ] の下にある [セキュリティグループ] を選択します。

  3. セキュリティグループのリストから、Amazon のセキュリティグループを選択しますVPC。 ElastiCache 使用するためのセキュリティグループを作成しない限り、このセキュリティグループの名前はデフォルト になります。

  4. Inbound タブを選択し、次の操作を行います。

    1. Edit (編集) を選択します。

    2. ルールの追加 を選択します。

    3. タイプ 列で、カスタムTCPルール を選択します。

    4. Port range ボックスに、クラスターノードのポート番号を入力します。この番号は、クラスターの起動時に指定した番号と同じ番号である必要があります。Memcached のデフォルトポートは 11211 で、Redis のデフォルトポートOSSは 6379です。

    5. ソースボックスで、ポート範囲 (0.0.0.0/0) がある任意の場所を選択して、Amazon 内で起動する Amazon EC2インスタンスを ElastiCache ノードVPCに接続できるようにします。

      重要

      ElastiCache クラスターを 0.0.0.0/0 に開いても、クラスターにはパブリック IP アドレスがないため、 の外部からアクセスできないため、インターネットには公開されませんVPC。ただし、デフォルトのセキュリティグループは、顧客のアカウントの他の Amazon EC2インスタンスに適用でき、それらのインスタンスにはパブリック IP アドレスがある場合があります。それがデフォルトポートで何かを実行している場合、そのサービスが意図せず公開されることがあります。したがって、 によってのみ使用されるVPCセキュリティグループを作成することをお勧めします ElastiCache。詳細については、「 カスタムセキュリティグループ」を参照してください。

    6. [Save] を選択します。

Amazon EC2インスタンスを Amazon に起動するとVPC、そのインスタンスは ElastiCache クラスターに接続できるようになります。

外部から ElastiCache リソースにアクセスする AWS

Amazon ElastiCache は、クラウドベースのメモリ内キーバリューストアを提供する AWS サービスです。このサービスは、 内からのみアクセスされるように設計されています AWS。ただし、 ElastiCache クラスターが 内でホストされている場合はVPC、ネットワークアドレス変換 (NAT) インスタンスを使用して外部アクセスを提供できます。

要件

外部から ElastiCache リソースにアクセスするには、次の要件を満たす必要があります AWS。

  • クラスターは 内にありVPC、ネットワークアドレス変換 (NAT) インスタンスを介してアクセスする必要があります。これは必須の要件であり、例外はありません。

  • NAT インスタンスは、クラスターVPCと同じ で起動する必要があります。

  • NAT インスタンスは、クラスターとは別のパブリックサブネットで起動する必要があります。

  • Elastic IP アドレス (EIP) をNATインスタンスに関連付ける必要があります。iptables のポート転送機能は、NATインスタンス上のポートを 内のキャッシュノードポートに転送するために使用されますVPC。

考慮事項

外部から ElastiCache リソースにアクセスするときは、以下の考慮事項に留意する必要があります ElastiCache。

  • クライアントはNATインスタンスの EIPおよびキャッシュポートに接続します。NAT インスタンスでのポート転送は、トラフィックを適切なキャッシュクラスターノードに転送します。

  • クラスターノードが追加または交換されたら、この変更が反映されるように iptables ルールが更新される必要があります。

制限事項

このアプローチは、テストおよび開発の目的にしか使用できません。以下の制限があるため、本稼働で使用することは推奨されません。

  • NAT インスタンスは、クライアントと複数のクラスター間のプロキシとして機能します。プロキシを追加すると、キャッシュクラスターのパフォーマンスに影響が及びます。NAT インスタンス経由でアクセスするキャッシュクラスターの数が増えると、影響が大きくなります。

  • クライアントからNATインスタンスへのトラフィックは暗号化されません。したがって、NATインスタンス経由で機密データを送信することは避ける必要があります。

  • NAT インスタンスは、別のインスタンスを維持するオーバーヘッドを追加します。

  • NAT インスタンスは単一の障害点として機能します。NAT で高可用性を設定する方法についてはVPC、「Amazon VPC NAT インスタンスの高可用性: 例」を参照してください。

外部から ElastiCache リソースにアクセスする方法 AWS

次の手順は、NATインスタンスを使用して ElastiCache リソースに接続する方法を示しています。

これらのステップは、以下を前提としています。

  • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379

  • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379

次に、逆NATの方向が必要です。

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55

デフォルトで無効になっている IP 転送も有効にする必要があります。

sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl --system

  • 以下を使って、Memcached クラスターにアクセスします。

    • IP アドレス – 10.0.1.230

    • デフォルトの Memcached ポート – 11211

    • セキュリティグループ – *10\.0\.0\.55*

  • Valkey または Redis OSSクラスターには、次の方法でアクセスします。

    • IP アドレス – 10.0.1.230

    • デフォルトポート – 6379

    • セキュリティグループ – sg-bd56b7da

    • AWS インスタンス IP アドレス – sg-bd56b7da

  • 信頼済みクライアントの IP アドレスが 198.51.100.27 である。

  • NAT インスタンスには Elastic IP アドレス 203.0.113.73 があります。

  • NAT インスタンスにはセキュリティグループ sg-ce56b7a9 があります。

NAT インスタンスを使用して ElastiCache リソースに接続するには
  1. キャッシュクラスターVPCと同じ にインスタンスを作成しますが、パブリックサブネットにNATインスタンスを作成します。

    デフォルトでは、VPCウィザードは cache.m1.small ノードタイプを起動します。必要に応じてノードサイズを選択する必要があります。外部 ElastiCache から にアクセスできるようにするEC2NATAMIには、 を使用する必要があります AWS。

    NAT インスタンスの作成の詳細については、「 ユーザーガイド」のNAT「インスタンス」を参照してください。 AWS VPC

  2. キャッシュクラスターとNATインスタンスのセキュリティグループルールを作成します。

    NAT インスタンスセキュリティグループとクラスターインスタンスには、次のルールが必要です。

    • 2 つのインバウンドルール

      • Memcached では、最初のルールは、信頼できるクライアントTCPからNATインスタンス (11211 ~ 11213) から転送された各キャッシュポートへの接続を許可することです。

      • Valkey と Redis ではOSS、最初のルールは、信頼されたクライアントTCPからNATインスタンス (6379~6381) から転送された各キャッシュポートへの接続を許可することです。

      • 信頼されたクライアントSSHへのアクセスを許可する 2 番目のルール。

      NAT インスタンスセキュリティグループ - Memcached を使用したインバウンドルール
      タイプ プロトコル ポート範囲 ソース
      カスタムTCPルール TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NAT インスタンスセキュリティグループ - Valkey または Redis を使用したインバウンドルール OSS
      タイプ プロトコル ポート範囲 ソース
      カスタムTCPルール TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • Memcached では、キャッシュポート (11211) TCPへの接続を許可するアウトバウンドルールです。

      NAT インスタンスセキュリティグループ - アウトバウンドルール
      タイプ プロトコル ポート範囲 デスティネーション
      カスタムTCPルール TCP 11211 sg-ce56b7a9 (クラスターインスタンスのセキュリティグループ)
    • Valkey または Redis ではOSS、キャッシュポート (6379) TCPへの接続を許可するアウトバウンドルールです。

      NAT インスタンスセキュリティグループ - アウトバウンドルール
      タイプ プロトコル ポート範囲 デスティネーション
      カスタムTCPルール TCP 6379 sg-ce56b7a9 (クラスターインスタンスのセキュリティグループ)
    • Memcached では、NATインスタンスTCPからキャッシュポート (11211) への接続を許可するクラスターのセキュリティグループのインバウンドルールです。

      クラスターインスタンスのセキュリティグループ - インバウンドルール
      タイプ プロトコル ポート範囲 ソース
      カスタムTCPルール TCP 11211 sg-bd56b7da (NATセキュリティグループ)
    • Valkey または Redis ではOSS、NATインスタンスTCPからキャッシュポート (6379) への接続を許可するクラスターのセキュリティグループのインバウンドルールです。

      クラスターインスタンスのセキュリティグループ - インバウンドルール
      タイプ プロトコル ポート範囲 ソース
      カスタムTCPルール TCP 6379 sg-bd56b7da (クラスターセキュリティグループ)
  3. ルールを検証します。

    • 信頼されたクライアントがNATインスタンスSSHに対して にアクセスできることを確認します。

    • 信頼されたクライアントがNATインスタンスからクラスターに接続できることを確認します。

  4. Memcached

    NAT インスタンスに iptables ルールを追加します。

    NAT インスタンスからクラスターノードにキャッシュポートを転送するには、クラスター内の各ノードのNATテーブルに iptables ルールを追加する必要があります。以下に例を示します。

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211

    ポート番号は、クラスターのノードごとに一意である必要があります。たとえば、ポート 11211~11213 を使用する 3 つのノードで構成される Memcached クラスターを使用している場合、ルールは次のようになります。

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211

    信頼済みクライアントがクラスターに接続できることを確認します。

    信頼されたクライアントは、NATインスタンスEIPに関連付けられた に接続し、適切なクラスターノードに対応するクラスターポートに接続する必要があります。例えば、 の接続文字列は次のPHPようになります。

    $memcached->connect( '203.0.113.73', 11211 ); $memcached->connect( '203.0.113.73', 11212 ); $memcached->connect( '203.0.113.73', 11213 );

    telnet クライアントを使用して接続を検証することもできます。例:

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valkey または Redis OSS

    NAT インスタンスに iptables ルールを追加します。

    NAT インスタンスからクラスターノードにキャッシュポートを転送するには、クラスター内の各ノードのNATテーブルに iptables ルールを追加する必要があります。以下に例を示します。

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379

    ポート番号は、クラスターのノードごとに一意である必要があります。例えば、ポート 6379 ~ 6381 を使用して 3 つのノード Redis OSSクラスターを操作する場合、ルールは次のようになります。

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379

    信頼済みクライアントがクラスターに接続できることを確認します。

    信頼されたクライアントは、NATインスタンスEIPに関連付けられた に接続し、適切なクラスターノードに対応するクラスターポートに接続する必要があります。例えば、 の接続文字列は次のPHPようになります。

    redis->connect( '203.0.113.73', 6379 ); redis->connect( '203.0.113.73', 6380 ); redis->connect( '203.0.113.73', 6381 );

    telnet クライアントを使用して接続を検証することもできます。例:

    telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
  5. iptables 設定を保存します。

    ルールをテストし、検証してから保存します。Red Hat ベースの Linux ディストリビューション (Amazon Linux など) を使用している場合は、次のコマンドを実行します。

    service iptables save

関連トピック

以下のトピックも役に立つ場合があります。