Amazon EC2 インスタンスを踏み台ホストとして使用して、ローカルマシンからプライベート Amazon RDS DB インスタンスに接続するにはどうすればよいですか?

最終更新日: 2020 年 8 月 20 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを踏み台 (ジャンプ) ホストとして使用して、ローカルマシンからプライベート Amazon Relational Database Service (Amazon RDS) DB インスタンスに接続するにはどうすればよいですか?

簡単な説明

EC2 インスタンスをジャンプサーバーとして使用して、ローカルマシンからプライベート RDS DB インスタンスに接続するには、以下の手順を実行します。

  1. EC2 インスタンスを起動して設定し、インスタンスのネットワーク設定を行います。
  2. RDS DB インスタンスのセキュリティグループを設定します。
  3. ローカルマシンから 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 インスタンスを起動して設定する

  1. Amazon EC2 コンソールを開き、[インスタンスを作成] を選択します。
  2. Amazon マシンイメージ (AMI) を選択します。
  3. インスタンスタイプを選択してから、[次のステップ: インスタンスの詳細の設定] を選択します。
  4. [ネットワーク] には、RDS DB インスタンスが使用する VPC を選択します。
  5. [サブネット] には、ルーティングテーブルにインターネットゲートウェイがあるサブネットを選択します。インターネットゲートウェイがまだない場合は、EC2 インスタンスの作成後にサブネットに追加できます。
  6. [次のステップ: ストレージの追加] を選択し、必要に応じてストレージを変更します。
  7. [次のステップ: タグの追加] を選択し、必要に応じてタグを追加します。
  8. [次のステップ: セキュリティグループの設定] を選択し、[ルールの追加] を選択して以下を入力します。
    タイプ: カスタム TCP ルール
    プロトコル: TCP
    ポート範囲: 22
    送信元: ローカルマシンの IP アドレスを入力します。送信元 IP アドレスはデフォルトですべてに開放されていますが、ローカルパブリック IP アドレスのみにアクセスを制限できます。
  9. [確認と作成] を選択します。
  10. [作成] を選択します。

RDS DB インスタンスのセキュリティグループを設定する

  1. Open the Amazon RDS コンソールを開き、ナビゲーションペインから [データベース] を選択します。
  2. RDS DB インスタンスの名前を選択します。また、インスタンスが作成されていない場合は、RDS DB インスタンスを作成します。
  3. [接続とセキュリティ] タブを選択します。
  4. [セキュリティ] セクションで、[VPC セキュリティグループ] の下にあるリンクを選択します。
  5. セキュリティグループを選択し、[アクション] を選択してから [インバウンドのルールの編集] を選択します。
  6. [ルールの追加] を選択し、以下を入力します。
    タイプ: カスタム TCP ルール
    プロトコル: TCP
    ポート範囲: RDS DB インスタンスのポートを入力します
    送信元: EC2 インスタンスのプライベート IP アドレスを入力します
  7. [保存] を選択します。

このセキュリティグループ設定により、EC2 インスタンスのプライベート IP アドレスからのトラフィックが許可されます。EC2 インスタンスと RDS DB インスタンスが同じ VPC を使用する場合、RDS DB インスタンスによって使用されているルートテーブルを変更する必要はありません。VPC が異なる場合は、VPC ピアリング接続を作成してこれらの VPC 間における接続を許可します。

ローカルマシンから RDS DB インスタンスに接続する

RDS DB インスタンスに接続するステップは、使用するクライアントに応じて異なります。詳細については、「Amazon RDS DB インスタンスへの接続」を参照してください。MySQL を使用する場合は、クライアントアプリケーションと Amazon RDS 間の接続の暗号化に SSL を使用することがベストプラクティスです。

次の例では、MySQL Workbench クライアントを使用して踏み台ホストに接続します。

  1. 新しい接続を開始し、[Connection Method] に [Standard TCP/IP over SSH] を選択します。
  2. SSH 設定について EC2 インスタンスに関する以下の詳細情報を入力します。
    SSH Hostname: EC2 インスタンスのパブリック DNS 名を入力します。
    SSH Username: EC2 インスタンスのユーザー名を入力します。たとえば、「ec2-user」は EC2 Linux マシンのユーザー名です。
    SSH Key File: EC2 インスタンスの作成時に使用されたプライベートキーを選択します。
  3. MySQL インスタンスの設定について以下の詳細情報を入力します。
    MySQL Hostname: RDS DB インスタンスのエンドポイントを入力します
    MySQL Server port: 3306 (または使用するカスタムポート) を入力します。
    Username: RDS DB インスタンスのマスターユーザー名を入力します。
    Password: RDS DB インスタンスのマスターパスワードを入力します。
  4. [Test Connection] を選択します。
  5. 正常に接続できたら、接続名を入力し、接続を保存します。