オプション 2: RDS コンソールを使用して、インスタンスを RDS データベースに自動的に接続する - Amazon Elastic Compute Cloud

オプション 2: RDS コンソールを使用して、インスタンスを RDS データベースに自動的に接続する

オプション 2 では、RDS コンソールの自動接続機能を使用して、EC2 インスタンスと RDS データベース間のトラフィックを許可するように EC2 インスタンスと RDS データベース間の接続を自動的に設定します。オプション 3 では、この接続を手動で設定する方法について説明します。

開始する前に

このチュートリアルを完了するには、以下が必要です。

  • RDS データベースと同じ VPC にある EC2 インスタンス。既存の EC2 インスタンスを使用することも、タスク 1 のステップに従って新しいインスタンスを作成することもできます。

  • 次の操作を呼び出すアクセス許可:

    • ec2:AssociateRouteTable

    • ec2:AuthorizeSecurityGroupEgress

    • ec2:CreateRouteTable

    • ec2:CreateSecurityGroup

    • ec2:CreateSubnet

    • ec2:DescribeInstances

    • ec2:DescribeNetworkInterfaces

    • ec2:DescribeRouteTables

    • ec2:DescribeSecurityGroups

    • ec2:DescribeSubnets

    • ec2:ModifyNetworkInterfaceAttribute

    • ec2:RevokeSecurityGroupEgress

タスク 1 (オプション): EC2 インスタンスを起動する

注記

インスタンスの起動は、このチュートリアルの対象外です。Amazon EC2 インスタンスがすでにあり、このチュートリアルで使用する場合は、このタスクをスキップできます。

このタスクでは、EC2 インスタンスを起動して、EC2 インスタンスと使用する Amazon RDS データベース間の接続を設定するタスク 2 を完了できるようにします。このタスクのステップでは、EC2 インスタンスを次のように設定します。

  • インスタンス名: tutorial-instance-2

  • AMI: Amazon Linux 2

  • インスタンスタイプ: t2.micro

  • パブリック IP の自動割り当て: 有効

  • 次の 3 つのルールを持つセキュリティグループ:

    • IP アドレスからの SSH を許可

    • 任意の場所からの HTTPS トラフィックを許可

    • 任意の場所からの HTTP トラフィックを許可

重要

本番環境では、具体的なニーズに合わせて、インスタンスを設定する必要があります。

EC2 インスタンスを起動するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. [EC2 Dashboard] (EC2 ダッシュボード) で、[Launch instance] (インスタンスの作成) を選択します。

  3. [Names and tags] (名前とタグ) にある [Name] (名前) には、インスタンスを識別するための名前を入力します。このチュートリアルでは、インスタンス名は「tutorial-instance-2」にします。インスタンス名は必須ではありませんが、RDS コンソールでインスタンスを選択するときに、名前があると識別しやすくなります。

  4. [Application and OS Images] (アプリケーションと OS イメージ) で、ウェブサーバーに必要な AMI を選択します。このチュートリアルでは Amazon Linux を使用します。

  5. [Instance type] (インスタンスタイプ) にある [Instance type] (インスタンスタイプ) には使用しているウェブサーバーに必要なインスタンスタイプを選択します。このチュートリアルでは、t2.micro を使用します。

    注記

    AWS アカウントの作成から 12 か月未満で、t2.micro インスタンスタイプ、または t2.micro を利用できないリージョンで t3.micro を選択している場合は、Amazon EC2 の無料利用枠を利用できます。[t3.micro] インスタンスを起動すると、デフォルトで [Unlimited] モードになり、CPU 使用率に基づいて追加料金が発生する可能性があることに注意してください。

  6. [Key pair (login)] (キーペア (ログイン)) にある [Key pair name] (キーペア名) には、使用するキーペアを選択します。

  7. [Network settings] (ネットワーク設定) で、次の操作を行います:

    1. デフォルトの VPC またはサブネットに変更を加えていない場合は、[Network] (ネットワーク) と [Subnet] (サブネット) でデフォルトの設定をそのまま使用できます。

      デフォルトの VPC またはサブネットに変更を加えた場合は、以下を確認してください。

      1. 自動接続設定を使用するには、インスタンスが RDS データベースと同じ VPC 内に存在している必要があります。デフォルトでは、VPC は 1 つのみです。

      2. インスタンスを起動する VPC には、インターネットからウェブサーバーにアクセスできるように、インターネットゲートウェイがアタッチされている必要があります。デフォルト VPC はインターネットゲートウェイで自動的に設定されます。

      3. インスタンスがパブリック IP アドレスを受け取れるように、[Auto-assign Public IP] (自動割り当てパブリック IP) で [Enable] (有効) が選択されていることを確認します。[Disable ] (無効) が選択されている場合は、[Edit] (編集) ([Network Settings] (ネットワーク設定) の右側) を選択し、その後 [Auto-assign public IP]] (パブリック IP の自動割り当て) で [Enable] (有効) を選択します。

    2. SSH を使用してインスタンスに接続するには、コンピュータのパブリック IPv4 アドレスからの SSH (Linux) または RDP (Windows) トラフィックを承認するセキュリティグループのルールが必要です。デフォルトでは、インスタンスを起動すると、任意の場所からのインバウンド SSH トラフィックを許可するルールで新しいセキュリティグループが作成されます。

      使用する IP アドレスのみがインスタンスに接続できるようにするには、[Firewall (security groups)] (ファイアウォール (セキュリティグループ)) にある [Allow SSH traffic from] (SSH トラフィックを許可する送信元) チェックボックスの横にあるドロップダウンリストから [My IP] (マイ IP) を選択します。

    3. インターネットからインスタンスへのトラフィックを許可するには、次のチェックボックスを選択します。

      • [Allow HTTPs traffic from the internet] (インターネットからの HTTPs トラフィックを許可する)

      • [Allow HTTP traffic from the internet] (インターネットからの HTTP トラフィックを許可する)

  8. [Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動する) を選択します。

  9. [View all instances] (すべてのインスタンスの表示) を選択して確認ページを閉じ、コンソールに戻ります。インスタンスは最初 pending 状態になり、その後 running 状態になります。

    インスタンスが起動しないか、状態が running ではなくすぐに terminated になる場合は、「Amazon EC2 インスタンスの起動に関する問題のトラブルシューティング」を参照してください。

インスタンスの起動方法の詳細については、「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。

このアニメーションでは、EC2 インスタンスを起動する方法について説明します。このアニメーションのテキストバージョンについては、前述の手順のステップを参照してください。

タスク 2: RDS データベースを作成し、それを EC2 インスタンスに自動接続する

このタスクでは、RDS データベースを作成して RDS コンソールの自動接続機能を使用し、EC2 インスタンスと RDS データベース間の接続を自動的に設定します。このタスクのステップでは、DB インスタンスを次のように設定します。

  • エンジンタイプ: MySQL

  • テンプレート: 無料利用枠

  • DB インスタンス識別子: tutorial-database

  • DB インスタンスクラス: db.t3.micro

重要

本番環境では、具体的なニーズに合わせて、インスタンスを設定する必要があります。

RDS データベースを作成して EC2 インスタンスに自動接続する
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. リージョンセレクター (右上) から、EC2 インスタンスを作成した AWS リージョン を選択します。EC2 インスタンスと RDS データベースは同じリージョンにある必要があります。

  3. ダッシュボード で、[Create database] (データベースの作成) を選択します。

  4. [Choose a database creation method] (データベース作成方法を選択) で [Standard Create] (スタンダード作成) が選択されていることを確認します。[Easy create] (簡易作成) を選択した場合、自動接続機能は使用できません。

  5. [Engine options] (エンジンオプション) にある [Engine type] (エンジンタイプ) で MySQL を選択します。

  6. [Templates] (テンプレート) では、ニーズに合うサンプルテンプレートを選択します。このチュートリアルでは、[Free tier] (無料利用枠) を選択して RDS データベースを無料で作成できます。ただし、無料利用枠は、アカウント作成から 12 か月未満の場合にのみご利用いただけるので注意してください。その他の制限が適用されます。詳細については、[Free tier] (無料利用枠) ボックスにある [Info] (情報) リンクを選択してください。

  7. [設定] で、次のいずれかを実行します。

    1. [DB instance identifier] (DB インスタンス識別子) に、データベースの名前を入力します。このチュートリアルでは、tutorial-database と入力します。

    2. [Master username] (マスターユーザー名) は、デフォルトの名前である admin のままにします。

    3. [Master password] (マスターパスワード) に、このチュートリアルに使用するパスワードを入力し、[Confirm password] (パスワードの確認) にパスワードをもう一度入力します。

  8. [インスタンス設定][DB インスタンスクラス] は、デフォルトの [db.t3.micro] のままにします。アカウントが 12 か月未満の場合は、このインスタンスを無料で使用できます。その他の制限が適用されます。詳細については、AWS 無料利用枠 をご参照ください。

  9. [Connectivity] (接続) にある [Compute resource] (コンピューティングリソース) で、[Connect to an EC2 compute resource] (EC2 コンピューティングリソースに接続する) を選択します。これは RDS コンソールの自動接続機能です。

  10. [EC2 instance] (EC2 インスタンス) で、接続先のインスタンスを選択します。このチュートリアルでは、前のタスクで作成して tutorial-instance と名付けたインスタンスを選択することも、別の既存のインスタンスを選択することもできます。リストにインスタンスが表示されない場合は、[Connectivity] (接続) の右にある更新アイコンを選択します。

    自動接続機能を使用すると、この EC2 インスタンスにセキュリティグループが追加され、RDS データベースに別のセキュリティグループが追加されます。セキュリティグループは、EC2 インスタンスと RDS データベース間のトラフィックを許可するように自動的に設定されます。次のタスクでは、セキュリティグループが作成され、EC2 インスタンスと RDS データベースに割り当てられていることを確認します。

  11. [データベースの作成] を選択します。

    [Databases] (データベース) 画面では、データベースが使用可能になるまで、新しいデータベースの [Status] (ステータス) は [Creating] (作成中) になります。ステータスが [Available] (使用可能) に変わったら、データベースに接続できます。データベースクラスとストレージ量によっては、新しいデータベースが使用可能になるまで最長 20 分かかることがあります。

詳細については、「Amazon RDS ユーザーガイド」の「EC2 インスタンスとの自動ネットワーク接続を設定する」を参照してください。

このアニメーションは、RDS データベースを作成し、自動接続機能を使用してそれを EC2 インスタンスに接続する方法を紹介します。このアニメーションのテキストバージョンについては、前述の手順のステップを参照してください。

タスク 3: 接続設定を検証する

このタスクでは、2 つのセキュリティグループが作成され、インスタンスとデータベースに割り当てられていることを確認します。

コンソールの自動接続機能を使用して接続を設定する場合、セキュリティグループは自動的に作成され、次のようにインスタンスとデータベースに割り当てられます。

  • セキュリティグループ rds-ec2-x が作成され、RDS データベースに追加されます。ec2-rds-x セキュリティグループを送信元として参照するインバウンドルールが 1 つ存在します。このルールにより、ec2-rds-x セキュリティグループを持つ EC2 インスタンスからのトラフィックが RDS データベースに到達できるようになります。

  • セキュリティグループ ec2-rds-x が作成され、EC2 インスタンスに追加されます。ここには、rds-ec2-x セキュリティグループを送信先として参照するアウトバウンドルールが 1 つ存在します。このルールにより、EC2 インスタンスからのトラフィックが rds-ec2-x セキュリティグループのある RDS データベースに到達できるようになります。

コンソールを使用して接続構成を確認する場合
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションページで、[Databases] (データベース) を選択します。

  3. このチュートリアル用に作成した RDS データベースを選択します。

  4. [Connectivity & security] (接続とセキュリティ) タブの [Security] (セキュリティ) と [VPC security groups] (VPC セキュリティグループ) に、rds-ec2-x という名前のセキュリティグループが表示されていることを確認します。

  5. rds-ec2-x セキュリティグループを選択します。EC2 コンソールにある [Security Groups] (セキュリティグループ) 画面が開きます。

  6. rds-ec2-x セキュリティグループを選択して開きます。

  7. [Inbound rules] (インバウンドルール) タブを開きます。

  8. 次のセキュリティグループルールが存在することを確認します。

    • タイプ: MYSQL/Aurora

    • ポート範囲: 3306

    • ソース: sg-0987654321example / ec2-rds-x – これは、前述の手順で検証した EC2 インスタンスに割り当てられているセキュリティグループです。

    • 説明: sg-1234567890example が添付された EC2 インスタンスからの接続を許可するルール

  9. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  10. ナビゲーションペインで、[インスタンス] を選択します。

  11. 前述のタスクで RDS データベースに接続するために選択した EC2 インスタンスを選択し、[Security] (セキュリティ) タブを選択します。

  12. [Security details] (セキュリティの詳細) の [Security groups] (セキュリティグループ) にあるリストの中に、ec2-rds-x という名前のセキュリティグループが含まれていることを確認します。x は数字です。

  13. ec2-rds-x セキュリティグループを選択して開きます。

  14. [Outbound rules] (アウトバウンドルール) タブを選択します。

  15. 次のセキュリティグループルールが存在することを確認します。

    • タイプ: MYSQL/Aurora

    • ポート範囲: 3306

    • 送信先: sg-1234567890example / rds-ec2-x

    • 説明: このセキュリティグループがアタッチされている任意のインスタンスからの database-tutorial への接続を許可するルール

これらのセキュリティグループとセキュリティグループルールが存在し、この手順の記述にあるように RDS データベースと EC2 インスタンスに割り当てられていることを確認することで、自動接続機能を使用して接続が自動的に設定されたことを確認できます。

このアニメーションでは、接続設定を確認する方法を説明します。このアニメーションのテキストバージョンについては、前述の手順のステップを参照してください。

これで、このチュートリアルのオプション 2 が完了しました。これで、オプション 2 で自動的に作成されたセキュリティグループを手動で設定する方法を説明するオプション 3 を完了することもできます。

タスク 4 (オプション): クリーンアップする

チュートリアルを完了したので、使用しなくなったリソースをすべてクリーンアップ (削除) することをおすすめします。AWS リソースをクリーンアップすることで、アカウントに追加料金が発生するのを防ぐことができます。

このチュートリアル専用に EC2 インスタンスを起動した場合、そのインスタンスを終了することで、それに関連した料金が発生するのを防ぐことができます。

コンソールを使用してインスタンスを終了するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. このチュートリアルで作成したインスタンスを選択し、[Instance state] (インスタンスの状態)、[Terminate instance] (インスタンスの終了) の順に選択します。

  4. 確認を求めるメッセージが表示されたら、[Terminate (終了)] を選択します。

このチュートリアル専用に RDS データベースを作成した場合、削除することで、それに関連した料金が発生するのを防ぐことができます。

コンソールを使用して RDS データベースを削除するには
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. このチュートリアル用に作成した RDS データベースを選択し、[Actions] (アクション)、[Delete] (削除) を選択します。

  4. ボックスに delete me を入力し、[Delete] (削除) をクリックします。