AWSでWEBサービスを構築しようと思うと、いろいろな構成をとることができます、その中でも最もシンプルな構成な構成として、
- パブリックサブネットにEC2
- プライベートサブネットにRDS
と配置することで、EC2のWEBアプリケーションは外部からのリクエストを受信することができ、RDSはプライベートなサブネットなので外部からアクセスできないようにしてセキュリティを担保しつつEC2からのアクセスのみ受信する。
という構成の作り方を説明してみたいと思います。
まずはパブリックサブネットとプライベートサブネットの作り方はこちら↓
パブリックサブネットにEC2を作成する
まずは前回作成したパブリックサブネットにEC2を作成します。
まずはEC2のコンソールから、WEBアプリケーションを載せるインスタンスの作成を行っていきます。
OSはAmazon Linux 2 の最新のAMIを使いましょう。
今回は実業務で使うわけではないので、一番安いスペックを選択します。
ネットワークの部分では先に作成しておいたVPCを選択し、サブネットでは作成しておいたパブリックのサブネットを選択します。
その他の部分はそのままでもOKなので、次に次に進みセキュリティグループの設定まで進みます。
セキュリティグループの設定ではSSHの22番のポートとHTTPの80番ポートを許可します。
必要に応じてSSH22番のポートはアクセス元のIPだけに制御するのがよいでしょう。
セキュリティグループを設定したら、あとは「確認と作成」をクリックして、インスタンスを作成します。
この時キーペアを聞かれるので、初めてEC2を立てる場合は新規にキーペアを作成します。
ここで作成したキーペアを使ってSSHでログインすることができます。
プライベートサブネットにRDSを作成する
パブリックサブネットにEC2が作成出来たら、次はプライベートサブネットにRDSを作成してみましょう。
RDSのコンソールから「データベース」→「データベースの作成」で作成開始します。
ここでは先に作成済みのVPCを選択します。
サブネットグループと言って、RDSではシングル構成でもマルチAZに対応するために複数のサブネットをグループ化したサブネットグループを指定する必要があるので、プライベートサブネットを複数作成しておきましょう。
セキュリティグループは後から詳細を設定するので新しくVPCセキュリティグループを作成とします。
プライベートRDSのセキュリティグループの設定
こうしてRDSを作成した後に、セキュリティグループを編集します。
作成されたセキュリティグループのインバウンドルールの編集に行き、MySQLのポート3306を追加します。
この時にソースとして、接続元となるEC2に付けたセキュリティグループを指定します。
こうすることによって、このセキュリティグループを付けた対象からのアクセスのみを許可することができます、もちろんEC2のIPを指定することもできますが、セキュリティグループを指定することによってAutoScalingで接続元のEC2が動的に変化するような構成の場合でもRDSへ安全に接続を許可することができるようになり、AWSでセキュリティグループを設定するときはこの指定方法が基本となるので覚えておきたい設定です。
コメント