Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

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

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

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

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

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

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

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

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

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

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

注記

[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 用のセキュリティグループを作成した場合を除き、このセキュリティグループは、[default] という名前になります。

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

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

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

    3. Type 列で Custom TCP rule を選択します。

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

    5. [Source] ボックスで [Anywhere] を選択します。ポート範囲が 0.0.0.0/0 になるため、Amazon VPC 内で起動したすべての Amazon EC2 インスタンスを ElastiCache ノードに接続できます。

      重要

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

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

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

AWS 外部からの ElastiCache リソースへのアクセス

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

要件

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

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

  • NAT インスタンスがクラスターと同じ VPC 内で起動されている必要があります。

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

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

考慮事項

ElastiCache 外部から ElastiCache リソースにアクセスする際には、以下の点を考慮してください。

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

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

制約事項

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

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

  • クライアントから NAT インスタンスへのトラフィックは暗号化されません。したがって、NAT インスタンスを介して機密データを送信することは回避してください。

  • NAT インスタンスは、別のインスタンスを維持するためのオーバーヘッドを増加させます。

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

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

次の手順は、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 ノードタイプを起動します。必要に応じてノードサイズを選択する必要があります。AWS 外部から ElastiCache にアクセスできるようにするには、EC2 NAT AMI を使用する必要があります。

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

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

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

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

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

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

      • 信頼済みクライアントへの 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 インスタンスからキャッシュポート (11211) への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。

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

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

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

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

  4. Memcached

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

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

    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 インスタンスからのキャッシュポートをクラスターノードに転送するには、iptables ルールをクラスターのノードごとに NAT テーブルに追加する必要があります。以下に例を示します。

    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

関連トピック

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

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.