

# オプション 3: セキュリティグループを作成して、インスタンスを RDS データベースに手動で接続する
<a name="tutorial-ec2-rds-option3"></a>

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

**Topics**
+ [[開始する前に]](#option3-before-you-begin)
+ [タスク 1 (*オプション*): EC2 インスタンスを起動する](#option3-task1-launch-ec2-instance)
+ [タスク 2 (*オプション*): RDS データベースを作成する](#option3-task2-create-rds-database)
+ [タスク 3: EC2 インスタンスを RDS データベースに手動的に接続する](#option3-task3-connect-rds-database-to-ec2-instance)
+ [タスク 4 (*オプション*): クリーンアップする](#tutorial-ec2-rds-clean-up)

## [開始する前に]
<a name="option3-before-you-begin"></a>

このチュートリアルを完了するには、以下が必要です。
+ 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 インスタンスを起動する
<a name="option3-task1-launch-ec2-instance"></a>

**注記**  
インスタンスの起動は、このチュートリアルの対象外です。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 マネジメントコンソール にサインインし、Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

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

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

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

1. **[Instance type]** (インスタンスタイプ) にある **[Instance type]** (インスタンスタイプ) には使用しているウェブサーバーに必要なインスタンスタイプを選択します。このチュートリアルでは、`t2.micro` を使用します。
**注記**  
アカウントの作成日に応じて、Amazon EC2 を無料利用枠で使用できる場合があります。  
2025 年 7 月 15 日より前に AWS アカウントを作成していて、12 か月が経過していない場合は、**[t2.micro]** インスタンスタイプ (**[t2.micro]** が利用できないリージョンでは **[t3.micro]** インスタンスタイプ) を選択することで、Amazon EC2 の無料利用枠を使用できます。**[t3.micro]** インスタンスを起動すると、デフォルトで [**[Unlimited]** モード](burstable-performance-instances-unlimited-mode.md)になり、CPU 使用率に基づいて追加料金が発生する可能性があることに注意してください。インスタンスタイプを無料利用枠で使用できる場合、**[無料利用枠の対象]** とラベル付けされます。  
2025 年 7 月 15 日以降に AWS アカウント を作成した場合、**t3.micro**、**t3.small**、**t4g.micro**、**t4g.small**、**c7i-flex.large**、**m7i-flex.large** インスタンスタイプを 6 か月間、またはクレジットを使い切るまで使用できます。  
詳細については、「[2025 年 7 月 15 日より前とそれ以降の無料利用枠の特典](ec2-free-tier-usage.md#ec2-free-tier-comparison)」を参照してください。

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

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

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

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

      1. インスタンスは、RDS データベースと同じ VPC 内に存在する必要があります。デフォルトでは、VPC は 1 つのみです。

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

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

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

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

   1. インターネットからインスタンスへのトラフィックを許可するには、次のチェックボックスをオンにします。
      + **[Allow HTTPs traffic from the internet]** (インターネットからの HTTPs トラフィックを許可する)
      + **[Allow HTTP traffic from the internet]** (インターネットからの HTTP トラフィックを許可する)

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

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

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

インスタンスの起動方法の詳細については、「[コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)」を参照してください。

### アニメーションを表示: EC2 インスタンスを起動する
<a name="option3-launch-ec2-instance-animation"></a>

![\[このアニメーションでは、EC2 インスタンスを起動する方法について説明します。このアニメーションのテキストバージョンについては、前述の手順のステップを参照してください。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/tutorial-launch-instance.gif)


## タスク 2 (*オプション*): RDS データベースを作成する
<a name="option3-task2-create-rds-database"></a>

**注記**  
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/](https://console.aws.amazon.com/rds/)) を開きます。

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

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

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

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

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

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

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

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

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

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

### アニメーションを表示: DB インスタンスの作成
<a name="option3-task2-create-rds-database-animation"></a>

![\[このアニメーションでは、DB インスタンスの作成方法について説明します。このアニメーションのテキストバージョンについては、前述の手順のステップを参照してください。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/tutorial-create-db-step2.gif)


## タスク 3: セキュリティグループを作成してインスタンスに割り当てることで、EC2 インスタンスを RDS データベースに手動で接続する
<a name="option3-task3-connect-rds-database-to-ec2-instance"></a>

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

**2 つの新しいセキュリティグループを作成し、それぞれを EC2 インスタンスと RDS データベースに割り当てるには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

   1. ナビゲーションペインで、[**Security Groups**] を選択してください。

   1. **[セキュリティグループの作成]** を選択してください。

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

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

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

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

   1. ナビゲーションペインで、[**Security Groups**] を選択してください。

   1. **[セキュリティグループの作成]** を選択してください。

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

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

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

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

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

   1. **[セキュリティグループの作成]** を選択してください。

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

   1. ナビゲーションペインで、[**Security Groups**] を選択してください。

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

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

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

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

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

      1. [**ルールの保存**] を選択します。

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

   1. ナビゲーションペインで、[**インスタンス**] を選択してください。

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

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

   1. **[保存]** を選択します。

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

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

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

   1. **[Modify]** (変更) を選択します。

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

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

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

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

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

## タスク 4 (*オプション*): クリーンアップする
<a name="tutorial-ec2-rds-clean-up"></a>

**警告**  
**インスタンスの終了は恒久的で、元に戻すことができません。**  
インスタンスを終了すると、そのインスタンスには接続できなくなり、復元することもできません。アタッチされている Amazon EBS ボリュームで、終了時に削除されるように設定されているものも、すべて恒久的に削除され、復元できません。インスタンスストアボリュームに保存されているデータは、すべて恒久的に失われます。詳細については、「[インスタンスの終了方法](how-ec2-instance-termination-works.md)」を参照してください。  
インスタンスを終了する前に、終了後も保持する必要があるすべてのデータを永続的ストレージにバックアップしたことを確認してください。

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

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

**コンソールを使用してインスタンスを終了するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

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

1. 確認を求めるメッセージが表示されたら、[**Terminate (終了)**] を選択してください。

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

**コンソールを使用して RDS データベースを削除するには**

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

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

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

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