Amazon EC2 インスタンスを踏み台ホストとして使用して、ローカルマシンからプライベート Amazon RDS DB インスタンスに接続するにはどうすればよいですか?
最終更新日: 2020 年 8 月 20 日
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを踏み台 (ジャンプ) ホストとして使用して、ローカルマシンからプライベート Amazon Relational Database Service (Amazon RDS) DB インスタンスに接続するにはどうすればよいですか?
簡単な説明
EC2 インスタンスをジャンプサーバーとして使用して、ローカルマシンからプライベート RDS DB インスタンスに接続するには、以下の手順を実行します。
- EC2 インスタンスを起動して設定し、インスタンスのネットワーク設定を行います。
- RDS DB インスタンスのセキュリティグループを設定します。
- ローカルマシンから RDS DB インスタンスに接続します。
重要: プライベート Amazon RDS または Amazon Aurora DB インスタンスに接続するには、VPN または AWS Direct Connect を使用することが推奨されます。VPN または Direct Connect を使用できない場合は、踏み台ホストを使用してください。以下の設定例はセキュリティグループを使用してアクセスを制限しますが、サブネットのネットワークアクセスコントロールリスト (ネットワーク ACL) を制限して接続の安全性を高めることもできます。また、0.0.0.0/0 ではなく、より小さい範囲を使用するようにインターネットゲートウェイのルートスコープを制限することも可能です。たとえば、インターネットゲートウェイを追加するときに、送信先のルーティングテーブルに必要な CIDR 範囲のみを追加できます。詳細については、ルーティングオプションの例を参照してください。
解決方法
次の設定例は、Amazon Virtual Private Cloud (Amazon VPC) 内にあり、EC2 インスタンス用にセキュリティグループが設定されている RDS MySQL DB インスタンスの例です。
EC2 インスタンスを起動して設定する
- Amazon EC2 コンソールを開き、[インスタンスを作成] を選択します。
- Amazon マシンイメージ (AMI) を選択します。
- インスタンスタイプを選択してから、[次のステップ: インスタンスの詳細の設定] を選択します。
- [ネットワーク] には、RDS DB インスタンスが使用する VPC を選択します。
- [サブネット] には、ルーティングテーブルにインターネットゲートウェイがあるサブネットを選択します。インターネットゲートウェイがまだない場合は、EC2 インスタンスの作成後にサブネットに追加できます。
- [次のステップ: ストレージの追加] を選択し、必要に応じてストレージを変更します。
- [次のステップ: タグの追加] を選択し、必要に応じてタグを追加します。
- [次のステップ: セキュリティグループの設定] を選択し、[ルールの追加] を選択して以下を入力します。
タイプ: カスタム TCP ルール
プロトコル: TCP
ポート範囲: 22
送信元: ローカルマシンの IP アドレスを入力します。送信元 IP アドレスはデフォルトですべてに開放されていますが、ローカルパブリック IP アドレスのみにアクセスを制限できます。 - [確認と作成] を選択します。
- [作成] を選択します。
RDS DB インスタンスのセキュリティグループを設定する
- Open the Amazon RDS コンソールを開き、ナビゲーションペインから [データベース] を選択します。
- RDS DB インスタンスの名前を選択します。また、インスタンスが作成されていない場合は、RDS DB インスタンスを作成します。
- [接続とセキュリティ] タブを選択します。
- [セキュリティ] セクションで、[VPC セキュリティグループ] の下にあるリンクを選択します。
- セキュリティグループを選択し、[アクション] を選択してから [インバウンドのルールの編集] を選択します。
- [ルールの追加] を選択し、以下を入力します。
タイプ: カスタム TCP ルール
プロトコル: TCP
ポート範囲: RDS DB インスタンスのポートを入力します
送信元: EC2 インスタンスのプライベート IP アドレスを入力します - [保存] を選択します。
このセキュリティグループ設定により、EC2 インスタンスのプライベート IP アドレスからのトラフィックが許可されます。EC2 インスタンスと RDS DB インスタンスが同じ VPC を使用する場合、RDS DB インスタンスによって使用されているルートテーブルを変更する必要はありません。VPC が異なる場合は、VPC ピアリング接続を作成してこれらの VPC 間における接続を許可します。
ローカルマシンから RDS DB インスタンスに接続する
RDS DB インスタンスに接続するステップは、使用するクライアントに応じて異なります。詳細については、「Amazon RDS DB インスタンスへの接続」を参照してください。MySQL を使用する場合は、クライアントアプリケーションと Amazon RDS 間の接続の暗号化に SSL を使用することがベストプラクティスです。
次の例では、MySQL Workbench クライアントを使用して踏み台ホストに接続します。
- 新しい接続を開始し、[Connection Method] に [Standard TCP/IP over SSH] を選択します。
- SSH 設定について EC2 インスタンスに関する以下の詳細情報を入力します。
SSH Hostname: EC2 インスタンスのパブリック DNS 名を入力します。
SSH Username: EC2 インスタンスのユーザー名を入力します。たとえば、「ec2-user」は EC2 Linux マシンのユーザー名です。
SSH Key File: EC2 インスタンスの作成時に使用されたプライベートキーを選択します。 - MySQL インスタンスの設定について以下の詳細情報を入力します。
MySQL Hostname: RDS DB インスタンスのエンドポイントを入力します
MySQL Server port: 3306 (または使用するカスタムポート) を入力します。
Username: RDS DB インスタンスのマスターユーザー名を入力します。
Password: RDS DB インスタンスのマスターパスワードを入力します。 - [Test Connection] を選択します。
- 正常に接続できたら、接続名を入力し、接続を保存します。