オプション 3: セキュリティグループを作成して、インスタンスを RDS データベースに手動で接続する - Amazon Elastic Compute Cloud

オプション 3: セキュリティグループを作成して、インスタンスを RDS データベースに手動で接続する

オプション 3 では、自動接続機能の設定を手動で再現することで、EC2 インスタンスと RDS データベース間の接続を手動で設定する方法を説明します。

開始する前に

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

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

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

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

    • 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 データベース間の接続を設定するタスク 3 を完了できるようにします。このタスクのステップでは、EC2 インスタンスを次のように設定します。

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

  • AMI: Amazon Linux 2

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

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

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

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

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

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

重要

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

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

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

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

  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 アドレスのみがインスタンスに接続できるようにするには、[ファイアウォール (セキュリティグループ)] にある [SSH トラフィックを許可する送信元] チェックボックスの横にあるドロップダウンリストから [マイ 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 状態になります。

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

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

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

タスク 2 (オプション): RDS データベースを作成する

注記

RDS データベースの作成については、このチュートリアルでカバーしません。RDS データベースがすでにあり、このチュートリアルで使用する場合は、このタスクをスキップできます。

このタスクでは、RDS データベースを作成します。このインスタンスは、EC2 インスタンスに接続するタスク 3 で使用します。このタスクのステップでは、RDS データベースを次のように設定します。

  • エンジンタイプ: MySQL

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

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

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

重要

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

MySQL DB インスタンスを作成するには
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

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

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

  4. [Choose a database creation method] (データベース作成方法を選択) で [Easy Create] (簡易作成) を選択します。このオプションを選択すると、接続を自動的に構成する自動接続機能は使用できません。

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

  6. [DB インスタンスサイズ] で、[無料利用枠] を選択します。

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

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

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

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

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

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

タスク 3: セキュリティグループを作成してインスタンスに割り当てることで、EC2 インスタンスを RDS データベースに手動で接続する

このタスクでは、次の手順を手動で実行して、自動接続機能の接続設定を再現します: 新しいセキュリティグループを 2 つ作成し、それぞれのセキュリティグループを EC2 インスタンスと RDS データベースに追加します。

2 つの新しいセキュリティグループを作成し、それぞれを EC2 インスタンスと RDS データベースに割り当てるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. まずは、EC2 インスタンスに追加するセキュリティグループを次のように作成します:

    1. ナビゲーションペインで、[Security Groups] を選択します。

    2. [セキュリティグループの作成] を選択します。

    3. [Security group name] (セキュリティグループ名) には、分かりやすいセキュリティグループ名を入力します。このチュートリアルでは、ec2-rds-manual-configuration と入力します。

    4. [Description] (説明) に、簡単な説明を入力します。このチュートリアルでは、EC2 instance security group to allow EC2 instance to securely connect to RDS database と入力します。

    5. [セキュリティグループの作成] を選択します。RDS データベースのセキュリティグループを作成したら、このセキュリティグループに戻ってアウトバウンドルールを追加します。

  3. 次に、以下の操作を行い、RDS データベースに追加するセキュリティグループを作成します。

    1. ナビゲーションペインで、[Security Groups] を選択します。

    2. [セキュリティグループの作成] を選択します。

    3. [Security group name] (セキュリティグループ名) には、分かりやすいセキュリティグループ名を入力します。このチュートリアルでは、rds-ec2-manual-configuration と入力します。

    4. [Description] (説明) に、簡単な説明を入力します。このチュートリアルでは、RDS database security group to allow EC2 instance to securely connect to RDS database と入力します。

    5. [Inbound rules] (インバウンドルール) タブで [Add rule] (ルールの追加) を選択し、以下の操作を行います。

      1. [Type] (タイプ) では MySQL/Aurora を選択します。

      2. [Source] (ソース) には、この手順のステップ 2 で作成した EC2 インスタンスのセキュリティグループ ec2-rds-manual-configuration を選択します。

    6. [セキュリティグループの作成] を選択します。

  4. 次のように、EC2 インスタンスのセキュリティグループを編集して、アウトバウンドルールを追加します。

    1. ナビゲーションペインで、[Security Groups] を選択します。

    2. EC2 インスタンスのセキュリティグループ (ec2-rds-manual-configuration と名前を付けたもの) を選択し、[Outbound rules] (アウトバウンドルール) タブを選択します。

    3. [Edit outbound rules] (アウトバウンドルールの編集) を選択します。

    4. [Add rule] (ルールの追加) を選択し、次の操作を行います。

      1. [Type] (タイプ) では MySQL/Aurora を選択します。

      2. [Source] (ソース) には、この手順のステップ 3 で作成した RDS データベースのセキュリティグループ rds-ec2-manual-configuration を選択します。

      3. [Save Rules] (ルールの保存) を選択します。

  5. EC2 インスタンスのセキュリティグループを、次のように EC2 インスタンスに追加します:

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

    2. EC2 インスタンスを選択し、[Actions] (アクション)、[Security] (セキュリティ)、[Change security groups] (セキュリティグループの変更) の順に選択します。

    3. [Associated security groups] (関連するセキュリティグループ) で [Select security groups] (セキュリティグループの選択) フィールドを選択し、先程作成した ec2-rds-manual-configuration を選択して、[Add security group] (セキュリティグループの追加) を選択します。

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

  6. 以下の操作を行い、RDS データベースのセキュリティグループを RDS データベースに追加します。

    1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

    2. ナビゲーションペインで [Databases] (データベース) を選択してから、使用するデータベースを選択します。

    3. Modify を選択します。

    4. [Connectivity] (接続) にある [Security group] (セキュリティグループ) では、先程作成した rds-ec2-manual-configuration を選択し、[Continue] (続行) を選択します。

    5. [Scheduling of modifications] (変更のスケジュール) で [Apply immediately] (すぐに適用) を選択します。

    6. [DB インスタンスを変更] を選択します。

    これで、自動接続機能を使用した場合に発生する自動のステップを模倣した手動によるステップが完了しました。

これで、このチュートリアルのオプション 3 が完了しました。オプション 1、2、3 を完了し、このチュートリアルで作成したリソースが不要になった場合は、不要なコストが発生しないように、それらを削除する必要があります。詳細については、「タスク 4 (オプション): クリーンアップする」を参照してください。

タスク 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] (削除) をクリックします。