☁️
NATインスタンスからRedisへの接続手順まとめ
業務にて、アプリ制作チームより以下依頼がありました。
私が所属しているインフラチームで対応する内容について、以下と認識しました。
- NATインスタンス作成
- ローカル環境からNATインスタンスを経由させ、Redisクラスターへ接続
📝 前提条件
-
RedisサーバーのプライベートIP:
192.168.64.228
-
Redisサーバーの設定(
redis.conf
):bind 0.0.0.0 protected-mode no
-
NATインスタンスに redis-cli(v8.0.2)がインストール済み
👷 RedisサーバーのIPアドレス確認手順
- Redisサーバーが稼働しているEC2にログイン
- 以下のコマンドでIPアドレスを確認:
ip addr show
# または
hostname -I
- 出力されたIPアドレスをメモ(例:192.168.64.228)
⚡ Redisへの接続手順
# NATインスタンスにログイン
ssh -i <鍵ファイル.pem> ec2-user@<NATインスタンスのパブリックIP>
# redis-cli のあるディレクトリに移動
cd /root/redis-stable
# Redisに接続
./src/redis-cli -h 192.168.64.228 -p 6379
# 接続確認
ping
# → PONG が返れば成功
🌀 トラブルシューティング
チェック項目 | 内容 |
---|---|
Redisが起動しているか | ps aux |
bind設定 | bind 0.0.0.0 になっているか |
protected-mode | no になっているか |
セキュリティグループ | NATインスタンス → Redisサーバーへの TCP:6379 が許可されているか |
✏ 接続確認で躓いたポイントまとめ
接続確認で躓いたポイントまとめ:
- 誤ったIPアドレスの指定
- 192.168.16.0 はネットワークアドレスであり、ホストには使用不可。
- ip addr show や hostname -I で正しいIPを確認。
- Redisの設定が外部接続を拒否
- bind が 127.0.0.1、protected-mode が yes だった。
- 対処:bind 0.0.0.0、protected-mode no に変更 → Redis再起動。
- redis-server バイナリが存在しない
- make 実行前に redis-server が未生成。
- 対処:make を実行してビルド。
- Redis未起動で接続試行
- Connection refused エラー。
- 対処:./src/redis-server redis.conf で起動。
- クラスター構成と誤認
- cluster nodes 実行でエラー。
- 対処:redis.conf の cluster-enabled を確認 → 単一ノード構成。
EC2インスタンス構成
- ElasticIPでIP固定
- インスタンスタイプ:t2.micro
- サブネット:パブリック
- AMI:Amazon Linux 2023
- pemキー発行済み
- NAT設定あり
セキュリティグループ(SG)構成
- NATインスタンス → Redisサーバーへの TCP:6379 を許可
- Redis ClusterはAurora用SGを使用
- Redis用サブネットグループを作成(2つあるが1つのみ使用)
VPC関連構成
- 検証用VPCを使用
- サブネット:
- パブリック:NATインスタンス用、インターネットゲートウェイ設定済み
- プライベート:0.0.0.0/0 をルートテーブルに設定
- ルートテーブル:
- パブリック:0.0.0.0/0(IGW)、192.168.0.0/16(VPC)
- プライベート:0.0.0.0/0(NAT経由)
💻 NATインスタンスに redis-cli をインストールする手順
1. 基本確認
- OS:Amazon Linux 2023
- インターネットアクセス可能
- パッケージ管理ツール:dnf
2. セキュリティグループとIAMロール
- SG:SSH(22番)など必要なポートが開いているか
- IAMロール:必要に応じてS3などのアクセス権を付与
3. ビルドツールと依存パッケージのインストール
sudo dnf groupinstall "Development Tools" -y
sudo dnf install gcc make wget tar -y
4. Redis ソースコードのダウンロードとビルド
wget http://download.redis.io/redis-stable.tar.gz
tar -xvzf redis-stable.tar.gz
cd redis-stable
make
5. redis-cli の配置
sudo cp src/redis-cli /usr/local/bin/
6. 動作確認
redis-cli --version
参考リンク
☁ AWS関連
🔒 ネットワーク・ファイアウォール設定(Linux)
Discussion