オプション 1: EC2 コンソールを使用してインスタンスを RDS データベースに自動的に接続する
オプション 1 では、EC2 コンソールの自動接続機能を使用して、EC2 インスタンスと RDS データベース間のトラフィックを許可するように EC2 インスタンスと RDS データベース間の接続を自動的に設定します。オプション 3 では、この接続を手動で設定する方法について説明します。
タスク
開始する前に
このチュートリアルを完了するには、以下が必要です。
-
EC2 インスタンスと同じ VPC にある RDS データベース。既存の RDS データベースを使用するか、タスク 1 のステップに従って新しい RDS データベースを作成することができます。
-
RDS データベースと同じ VPC にある EC2 インスタンス。既存の EC2 インスタンスを使用するか、タスク 2 のステップに従って新しい EC2 インスタンスを作成することができます。
-
次の操作を呼び出すアクセス許可:
-
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 (オプション): RDS データベースを作成する
注記
Amazon RDS データベースの作成については、このチュートリアルの対象外です。RDS データベースがすでにあり、このチュートリアルで使用する場合は、このタスクをスキップできます。
既存の RDS データベースを使用する場合は、自動接続機能を使用できるように、その RDS データベースが EC2 インスタンスと同じ VPC 内にあることを確認してください。
このタスクでは、RDS データベースを作成して、EC2 インスタンスと使用する RDS データベース間の接続を設定するタスク 3 を完了できるようにします。このタスクのステップでは、RDS データベースを次のように設定します。
-
エンジンタイプ: MySQL
-
テンプレート: 無料利用枠
-
DB インスタンス識別子:
tutorial-database-1
-
DB インスタンスクラス:
db.t3.micro
重要
本番環境では、具体的なニーズに合わせて、データベースを設定する必要があります。
MySQL RDS データベースを作成するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
リージョンセレクター (右上) から AWS リージョン を選択します。EC2 コンソールの自動接続機能を使用するには、データベースと EC2 インスタンスが同じリージョンにある必要があります。
-
ダッシュボード で、[Create database] (データベースの作成) を選択します。
-
[Choose a database creation method] (データベース作成方法を選択) で [Standard Create] (スタンダード作成) が選択されていることを確認します。[Easy create] (簡易作成) を選択した場合、VPC セレクターは利用できません。EC2 コンソールの自動接続機能を使用するには、データベースが EC2 インスタンスと同じ VPC 内にあることを必ず確認してください。
-
[Engine options] (エンジンオプション) にある [Engine type] (エンジンタイプ) で MySQL を選択します。
-
[Templates] (テンプレート) では、ニーズに合うサンプルテンプレートを選択します。このチュートリアルでは、[Free tier] (無料利用枠) を選択して RDS データベースを無料で作成できます。ただし、無料利用枠は、アカウント作成から 12 か月未満の場合にのみご利用いただけるので注意してください。その他の制限が適用されます。詳細については、[Free tier] (無料利用枠) ボックスにある [Info] (情報) リンクを選択してください。
-
[設定] で、次のいずれかを実行します。
-
[DB instance identifier] (DB インスタンス識別子) に、データベースの名前を入力します。このチュートリアルでは、
tutorial-database-1
と入力します。 -
[Master username] (マスターユーザー名) は、デフォルトの名前である
admin
のままにします。 -
[Master password] (マスターパスワード) に、このチュートリアルに使用するパスワードを入力し、[Confirm password] (パスワードの確認) にパスワードをもう一度入力します。
-
-
[インスタンス設定] の [DB インスタンスクラス] は、デフォルトの [db.t3.micro] のままにします。アカウントの有効期間が 12 か月未満の場合は、このデータベースクラスを無料で使用できます。その他の制限が適用されます。詳細については、AWS 無料利用枠
をご参照ください。 -
[Connectivity] (接続) では、[Compute resource] (コンピュートリソース) に [Don't connect to an EC2 compute resource] (EC2 コンピュートリソースに接続しない) を選択します。EC2 インスタンスと RDS データベースは、タスク 3 の後半で接続するからです。
(後ほど、このチュートリアルのオプション 2 で、[Connect to an EC2 compute resource] (EC2 コンピュートリソースに接続) を選択して RDS コンソールの自動接続機能を試します。)
-
[Virtual private cloud (VPC)] (仮想プライベートクラウド (VPC)) には VPC を選択します。VPC には DB サブネットグループが必要です。自動接続機能を使用するには、EC2 インスタンスと RDS データベースが同じ VPC 内にある必要があります。
-
このページの他のフィールドについては、すべてのデフォルト値をそのまま使用します。
-
[データベースの作成] を選択します。
[Databases] (データベース) 画面では、データベースが使用可能になるまで、新しいデータベースの [Status] (ステータス) は [Creating] (作成中) になります。ステータスが [Available] (使用可能) に変わったら、データベースに接続できます。データベースクラスとストレージ量によっては、新しいデータベースが使用可能になるまで最長 20 分かかることがあります。
タスク 2 (オプション): EC2 インスタンスを起動する
注記
インスタンスの起動は、このチュートリアルの対象外です。Amazon EC2 インスタンスがすでにあり、このチュートリアルで使用する場合は、このタスクをスキップできます。
既存の EC2 インスタンスを使用する場合は、自動接続機能を使用できるように、その EC2 インスタンスが RDS データベースと同じ VPC 内にあることを確認してください。
このタスクでは、EC2 インスタンスを起動して、EC2 インスタンスと使用する Amazon RDS データベース間の接続を設定するタスク 3 を完了できるようにします。このタスクのステップでは、EC2 インスタンスを次のように設定します。
-
インスタンス名:
tutorial-instance-1
-
AMI: Amazon Linux 2
-
インスタンスタイプ:
t2.micro
-
パブリック IP の自動割り当て: 有効
-
次の 3 つのルールを持つセキュリティグループ:
-
IP アドレスからの SSH を許可
-
任意の場所からの HTTPS トラフィックを許可
-
任意の場所からの HTTP トラフィックを許可
-
重要
本番環境では、具体的なニーズに合わせて、インスタンスを設定する必要があります。
EC2 インスタンスを起動するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
リージョンセレクター (右上) から AWS リージョン を選択します。EC2 コンソールの自動接続機能を使用するには、インスタンスと RDS データベースが同じリージョンにある必要があります。
-
[EC2 Dashboard] (EC2 ダッシュボード) で、[Launch instance] (インスタンスの作成) を選択します。
-
[Names and tags] (名前とタグ) にある [Name] (名前) には、インスタンスを識別するための名前を入力します。このチュートリアルでは、インスタンス名は「
tutorial-instance-1
」にします。インスタンス名は必須ではありませんが、EC2 コンソールでインスタンスを選択するときに、名前があると識別しやすくなります。 -
[Application and OS Images] (アプリケーションと OS イメージ) で、ウェブサーバーに必要な AMI を選択します。このチュートリアルでは Amazon Linux 2 を使用します。
-
[Instance type] (インスタンスタイプ) にある [Instance type] (インスタンスタイプ) には使用しているウェブサーバーに必要なインスタンスタイプを選択します。このチュートリアルでは、
t2.micro
を使用します。注記
AWS アカウントの作成から 12 か月未満で、
t2.micro
インスタンスタイプ、またはt2.micro
を利用できないリージョンでt3.micro
を選択している場合は、Amazon EC2 の無料利用枠を利用できます。[t3.micro] インスタンスを起動すると、デフォルトで [Unlimited] モードになり、CPU 使用率に基づいて追加料金が発生する可能性があることに注意してください。 -
[Key pair (login)] (キーペア (ログイン)) にある [Key pair name] (キーペア名) には、使用するキーペアを選択します。
-
[Network settings] (ネットワーク設定) で、次の操作を行います:
-
デフォルトの VPC またはサブネットに変更を加えていない場合は、[Network] (ネットワーク) と [Subnet] (サブネット) でデフォルトの設定をそのまま使用できます。
デフォルトの VPC またはサブネットに変更を加えた場合は、以下を確認してください。
-
自動接続機能を使用するには、インスタンスと RDS データベースが同じ VPC 内にある必要があります。デフォルトでは、VPC は 1 つのみです。
-
インスタンスを起動する VPC には、インターネットからウェブサーバーにアクセスできるように、インターネットゲートウェイがアタッチされている必要があります。デフォルト VPC はインターネットゲートウェイで自動的に設定されます。
-
インスタンスがパブリック IP アドレスを受け取れるように、[Auto-assign Public IP] (自動割り当てパブリック IP) で [Enable] (有効) が選択されていることを確認します。[Disable ] (無効) が選択されている場合は、[Edit] (編集) ([Network Settings] (ネットワーク設定) の右側) を選択し、その後 [Auto-assign public IP]] (パブリック IP の自動割り当て) で [Enable] (有効) を選択します。
-
-
SSH を使用してインスタンスに接続するには、コンピュータのパブリック IPv4 アドレスからの SSH (Linux) または RDP (Windows) トラフィックを承認するセキュリティグループのルールが必要です。デフォルトでは、インスタンスを起動すると、任意の場所からのインバウンド SSH トラフィックを許可するルールで新しいセキュリティグループが作成されます。
使用する IP アドレスのみがインスタンスに接続できるようにするには、[Firewall (security groups)] (ファイアウォール (セキュリティグループ)) にある [Allow SSH traffic from] (SSH トラフィックを許可する送信元) チェックボックスの横にあるドロップダウンリストから [My IP] (マイ IP) を選択します。
-
インターネットからインスタンスへのトラフィックを許可するには、次のチェックボックスを選択します。
-
[Allow HTTPs traffic from the internet] (インターネットからの HTTPs トラフィックを許可する)
-
[Allow HTTP traffic from the internet] (インターネットからの HTTP トラフィックを許可する)
-
-
-
[Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動する) を選択します。
-
確認ページは開いたままにします。次のタスクで、インスタンスをデータベースに自動接続するときに必要になります。
インスタンスが起動しないか、状態が
running
ではなくすぐにterminated
になる場合は、「Amazon EC2 インスタンスの起動に関する問題のトラブルシューティング」を参照してください。
インスタンスの起動方法の詳細については、「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。
タスク 3: EC2 インスタンスを RDS データベースに自動接続する
このタスクでは、EC2 コンソールの自動接続機能を使用して、EC2 インスタンスと RDS データベース間の接続を自動的に設定します。
EC2 コンソールを使用して、EC2 インスタンスを RDS データベースに自動接続する場合
-
インスタンスの起動確認ページ (前述のタスク実行時に開いたままにしておく) で、[Connect an RDS database] (RDS データベースに接続) を選択します。
確認ページを閉じてしまった場合は、次の手順に従ってください。
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[インスタンス] を選択します。
-
先ほど作成した EC2 インスタンスを選択し、[Actions] (アクション)、[Networking] (ネットワーク)、[Connect RDS database] (RDS データベースを接続) の順に選択します。
[Connect RDS database] (RDS データベースに接続) を選択できない場合は、EC2 インスタンスが [Running] (実行中) の状態であることを確認します。
-
[Database role] (データベースロール) で [Instance] (インスタンス) を選択します。この場合のインスタンスは、データベースインスタンスを指しています。
-
[RDS database] (RDS データベース) の場合は、タスク 1 で作成した RDS データベースを選択します。
注記
EC2 インスタンスと RDS データベースが相互接続するためは、同じ VPC 内にある必要があります。
-
[接続]を選択します。
タスク 4: 接続設定を検証する
このタスクでは、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 データベースに到達できるようになります。
コンソールを使用して接続構成を確認する場合
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションページで、[Databases] (データベース) を選択します。
-
このチュートリアル用に作成した RDS データベースを選択します。
-
[Connectivity & security] (接続とセキュリティ) タブの [Security] (セキュリティ) と [VPC security groups] (VPC セキュリティグループ) に、rds-ec2-
x
という名前のセキュリティグループが表示されていることを確認します。 -
rds-ec2-
x
セキュリティグループを選択します。EC2 コンソールにある [Security Groups] (セキュリティグループ) 画面が開きます。 -
rds-ec2-
x
セキュリティグループを選択して開きます。 -
[Inbound rules] (インバウンドルール) タブを開きます。
-
次のセキュリティグループルールが存在することを確認します。
-
タイプ: MYSQL/Aurora
-
ポート範囲: 3306
-
ソース:
sg-0987654321example
/ ec2-rds-x
– これは、前述の手順で検証した EC2 インスタンスに割り当てられているセキュリティグループです。 -
説明:
sg-1234567890example
が添付された EC2 インスタンスからの接続を許可するルール
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[インスタンス] を選択します。
-
前述のタスクで RDS データベースに接続するために選択した EC2 インスタンスを選択し、[Security] (セキュリティ) タブを選択します。
-
[Security details] (セキュリティの詳細) の [Security groups] (セキュリティグループ) にあるリストの中に、ec2-rds-
x
という名前のセキュリティグループが含まれていることを確認します。x
は数字です。 -
ec2-rds-
x
セキュリティグループを選択して開きます。 -
[Outbound rules] (アウトバウンドルール) タブを選択します。
-
次のセキュリティグループルールが存在することを確認します。
-
タイプ: MYSQL/Aurora
-
ポート範囲: 3306
-
送信先:
sg-1234567890example
/ rds-ec2-x
-
説明: このセキュリティグループがアタッチされている任意のインスタンスからの
database-tutorial
への接続を許可するルール
-
これらのセキュリティグループとセキュリティグループルールが存在し、この手順の記述にあるように RDS データベースと EC2 インスタンスに割り当てられていることを確認することで、自動接続機能を使用して接続が自動的に設定されたことを確認できます。
これで、このチュートリアルのオプション 1 が完了しました。これで、RDS コンソールを使用して EC2 インスタンスを RDS データベースに自動接続する方法について説明するオプション 2 を完了するか、オプション 1 で自動的に作成されたセキュリティグループを手動で設定する方法について説明するオプション 3 を完了することができます。
タスク 5 (オプション): クリーンアップする
チュートリアルを完了したので、使用しなくなったリソースをすべてクリーンアップ (削除) することをおすすめします。AWS リソースをクリーンアップすることで、アカウントに追加料金が発生するのを防ぐことができます。
このチュートリアル専用に EC2 インスタンスを起動した場合、そのインスタンスを終了することで、それに関連した料金が発生するのを防ぐことができます。
コンソールを使用してインスタンスを終了するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[インスタンス] を選択します。
-
このチュートリアルで作成したインスタンスを選択し、[Instance state] (インスタンスの状態)、[Terminate instance] (インスタンスの終了) の順に選択します。
-
確認を求めるメッセージが表示されたら、[Terminate (終了)] を選択します。
このチュートリアル専用に RDS データベースを作成した場合、削除することで、それに関連した料金が発生するのを防ぐことができます。
コンソールを使用して RDS データベースを削除するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
このチュートリアル用に作成した RDS データベースを選択し、[Actions] (アクション)、[Delete] (削除) を選択します。
-
ボックスに
delete me
を入力し、[Delete] (削除) をクリックします。