見出し画像

AWSでVPC内にパブリックサブネットとプライベートサブネットを作成し、EC2とRDSを使用したシングル構成のWEBアプリケーションのインフラを構築する

こんにちは!さっしです!

遅ればせながら最近AWSにはまってきたので、自分の忘備録の意味を込めて、タイトル通りの設定をまとめてみました。
AWSを触ったことがない人も、とりあえずこの内容通りにやっていただければ、LAMP環境(※PHPは含みません)をさくっと実装できると思います。

■構成図

画像1

■やること

1.1つのリージョンに「VPC」を作成する
2.VPC内に「1つのパブリックサブネット」を作成する
3.VPC内に「2つのプライベートサブネット」を作成する
4.「インターネットゲートウェイ」を作成し、VPCにアタッチする
5.パブリックサブネットの「ルートテーブル」を編集し、ローカル通信以外をインターネットゲートウェイに向ける(デフォルトゲートウェイ)
6.・パブリックサブネットに「EC2」を作成する
7.EC2の「セキュリティグループ」を作成し、デフォルトのセキュリティグループと差し替える
8.RDSの「サブネットグループ」を作成する
9.プライベートサブネットに「RDS」を作成する
10.RDSの「セキュリティグループ」を編集する
11.確認

■1.1つのリージョンにVPCを作成する

・ナビゲーションバーの検索バーに「VPC」と入力し、表示されたサービスの「VPC」をクリックする

画像2

・ナビゲーションペインの「VPC」をクリック後、右上の「VPCを作成」ボタンをクリックする

画像3

・以下の内容を入力し「VPCを作成」ボタンをクリックする
※「テナンシー」はAWSのリソースを占有する際に選択する

画像4

画像5

・VPCが作成されたことを確認する

■2.VPC内に1つのパブリックサブネットを作成する

・ナビゲーションペインの「サブネット」をクリック後、右上の「サブネットを作成」ボタンをクリックする

画像7

・以下の内容を入力し「サブネットを作成」ボタンをクリックする

画像7

画像8

■3.VPC内に2つのプライベートサブネットを作成する

・パブリックサブネット作成時の操作を用いてプライベートサブネットを作成する
※以下、パブリックサブネット作成時との相違点のみ抜粋

○1つ目
サブネット名:practice-private-subnet1
IPv4 CIDR ブロック:10.0.1.0/24

○2つ目
サブネット名:practice-private-subnet2
アベイラビリティーゾーン:ap-northeast-1c
IPv4 CIDR ブロック:10.0.2.0/24

■4.インターネットゲートウェイを作成し、VPCにアタッチする

・ナビゲーションペインの「インターネットゲートウェイ」をクリック後、右上の「インターネットゲートウェイを作成」ボタンをクリックする

画像9

・以下の内容を入力し「インターネットゲートウェイの作成」ボタンをクリックする

画像10

・作成したインターネットゲートウェイを選択し、アクション→VPCにアタッチをクリックする

画像11

・アタッチしたいVPCを選択し「インターネットゲートウェイのアタッチ」ボタンをクリックする

画像12

■5.パブリックサブネットのルートテーブルを編集し、ローカル通信以外をインターネットゲートウェイに向ける

・ナビゲーションペインの「サブネット」をクリック後、パブリックサブネットを選択し「ルートテーブル」タブのリンクをクリックする

画像13

・「ルート」タブをクリック後「ルートの編集」ボタンをクリックする

画像14

・「ルートの追加」ボタンをクリック後、以下の内容を入力し「ルートの保存」ボタンをクリックする

画像15

■6.パブリックサブネットにEC2を作成する

・ナビゲーションバーの検索バーに「EC2」と入力し、表示されたサービスの「EC2」をクリックする

画像16

・ナビゲーションペインの「インスタンス」をクリック後、右上の「インスタンスを起動」ボタンをクリックする

画像17

・Amazon Linux 2 AMIの「選択」ボタンをクリックする

画像18

・t2.microを選択し「次のステップ」ボタンをクリックする

画像19

・以下の内容を入力し「次のステップ」ボタンをクリックする

画像20

・デフォルトのままとし「次のステップ」ボタンをクリックする

画像21

・以下の内容を入力し「次のステップ」ボタンをクリックする

画像22

・デフォルトのままとし「確認と作成」ボタンをクリックする

画像23

・確認画面が表示されるので「起動」ボタンをクリックする

・以下の内容を入力し「ダウンロード」ボタンをクリック後「インスタンスの作成」ボタンをクリックする

画像24

・キーペアを使用して、EC2にssh接続し、apacheとmysqlクライアントをインストールする

ssh -i /path/to/some/dir/practice-keypair.pem ec2-user@3.112.37.117
sudo su -
yum -y update
yum -y install mysql httpd
systemctl start httpd.service

■7.EC2用のセキュリティグループを作成し、デフォルトのセキュリティグループと差し替える

・ナビゲーションペインの「セキュリティーグループ」をクリック後、右上の「セキュリティグループを作成」ボタンをクリックする

画像25

・以下の内容を入力し「ダウンロード」ボタンをクリック後「セキュリティグループを作成」ボタンをクリックする

画像26

画像27

画像28

・ナビゲーションペインの「インスタンス」をクリック後、右上の「アクション」→「セキュリティ」→「セキュリティグループを変更」をクリックする

画像29

・先ほど作成したセキュリティグループを設定し「保存」ボタンをクリックする

画像30

■8.RDSのサブネットグループを作成する

・ナビゲーションバーの検索バーに「RDS」と入力し、表示されたサービスの「RDS」をクリックする

画像31

・ナビゲーションペインの「サブネットグループ」をクリック後、右上の「DBサブネットグループを作成」をクリックする

画像32

・以下の内容を入力し「作成」ボタンをクリックする

画像33

画像34

■9.プライベートサブネットにRDSを作成する

・ナビゲーションペインの「データベース」をクリック後、右上の「データベースの作成」をクリックする

画像35

・以下の内容を入力し「データベースの作成」ボタンをクリックする

画像36

画像37

画像38

画像39

画像40

画像41

画像42

■10.RDSのセキュリティグループを編集する

・ナビゲーションバーの検索バーに「VPC」と入力し、表示されたサービスの「VPC」をクリックする

画像43

・ナビゲーションペインの「セキュリティグループ」をクリック後、先ほど作成したセキュリティグループを選択し「インバウンドルール」タブ→「インバウンドルールの編集」ボタンをクリックする

画像44

・以下の内容を入力し「ルールを保存」ボタンをクリックする
※ソースに設定する値は、EC2用に作成したセキュリティグループを設定する(EC2からのみアクセスを許可するため)

画像45

■11.確認

・パブリックIPv4アドレスをブラウザに入力し、apacheのデフォルト画面が表示される

画像46

画像47

・EC2からRDSに接続ができる

mysql -h practice-rds.xxxxxxx.ap-northeast-1.rds.amazonaws.com -u admin -p

画像48

設定は以上になります。

■注意点

・RDSはシングル構成であっても、サブネットグループが必要となる
※サブネットグループは複数のアベイラビリティーゾーンに跨っている必要がある
・ssh接続ができない場合は、キーペアの権限を400に設定する

chmod 0400 /path/to/some/dir/practice-keypair.pem

■現在使用可能なリージョンとアベイラビリティゾーンについて

・以下の公式サイトを参照すると良い
https://aws.amazon.com/jp/about-aws/global-infrastructure/regions_az/

この記事が気に入ったらサポートをしてみませんか?