AWSに以下の環境を構築したので、備忘録として残しておこうと思います。
(0)AWSの設定 ← 本エントリの内容
(1)Apache2.2+PHP7+MySQL5.6+WordPress4.7+phpMyAdmin4.6
(2)Nginx+Unicorn+RubyOnRails
実施事項
◎AWSの設定
- VPCの作成
- サブネットの作成
- インターネットゲートウェイの作成
- ルートテーブルの作成
- EC2インスタンスの作成
- RDSインスタンスの作成
- Elastic IPの作成
◎ローカルからのSSH通信
【ご一読いただくにあたって】
・AWSのアカウントは事前に取得して下さい。
・間違いがありましたらコメントにて教えて下さい。(まだまだ勉強中です。)
・専門用語の深い解説はしておりません。
##AWSの設定
###VPCの作成
・リージョンが東京であることを確認
・VPCダッシュボードに遷移するので、[VPC]、[VPCの作成]をクリック
・[ネームタグ]と[IPv4 CIDR block]をそれぞれ入力
項目 | 値 |
---|---|
ネームタグ | test_for_Qiita |
IPv4 CIDR block | 10.0.0.0/16 |
###サブネットの作成
今回はEC2,RDSのインスタンスそれぞれにサブネットを設定
インターネットへの接続はEC2のサブネット(パブリックサブネット)のみ、RDSはプライベートサブネット
RDSインスタンスの作成に、サブネットグループの設定が必要なので、RDS用のサブネットにアベイラビリティゾーン(以下、AZ)が異なる2つのサブネットを設定
項目 | 値 |
---|---|
ネームタグ | subnet_for_Qiita_EC2 |
VPC | vpc-xxxxxx test_for_Qiita |
AZ | ap-northeast-1a |
IPv4 CIDR block | 10.0.1.0/24 |
IT用語辞典 e-words CIDR | |
ネットワーク入門:サブネットと CIDR を理解する |
項目 | 値 |
---|---|
ネームタグ | subnet_for_Qiita_RDS_master |
VPC | vpc-xxxxxx test_for_Qiita |
AZ | ap-northeast-1a |
IPv4 CIDR block | 10.0.2.0/24 |
項目 | 値 |
---|---|
ネームタグ | subnet_for_Qiita_RDS_slave |
VPC | vpc-xxxxxx test_for_Qiita |
AZ | ap-northeast-1c※ |
IPv4 CIDR block | 10.0.3.0/24 |
※AZはap-northeast-1a ではない |
項目 | 値 |
---|---|
ネームタグ | GW_for_Qiita |
・上記で作成したVPC(test_for_Qiita)を選択
###ルートテーブルの作成
・上記で作成したVPC(test_for_Qiita)に紐付いたルートテーブルが作成されているので、GWとサブネットをそこに紐付ける
送信先 | ターゲット |
---|---|
0.0.0.0/0 | igw-xxxxxx |
※igw-xxxxxx 上記で作成したGW |
###EC2インスタンス(Amazon Linux)の作成
[インスタンスの作成]
1 AMIの選択 → AmazonLinux
2 インスタンスタイプの選択 → 無料利用枠のt2.microを選択
3 インスタンスの設定
項目 | 値 |
---|---|
ネットワーク | vpc-xxx test_for_Qiita |
サブネット | subnet_for_Qiita_EC2 |
4 ストレージの追加 → そのまま
5 Add Tags → 任意のタグを設定(ex.EcC2_for_Qiita)
6 セキュリティグループの設定
[新しいセキュリティグループを作成する]
項目 | 値 |
---|---|
セキュリティグループ名 | SG_for_Qiita_EC2(任意) |
説明 | SG_for_Qiita_EC2(任意) |
SSH | マイIP (自動入力) |
HTTP(ルールの追加) | カスタム(自動入力) |
7 確認
8 キーペアのダウンンロード
[新しいキーペアの作成] → [キーペア名(任意 ex.kp_Qiita)] → [ダウンンロード] → [インスタンスの作成]
kp_Qiita.pem
がダウンロードされる
このファイルは「ローカル→AWS」へSSHする際に使用する
本来であれば、.sshディレクトリの中に移す等して管理すべき
今回はテストなのでデスクトップに配置してSSHを実施
###RDSインスタンスの作成
RDSインスタンス作成前の下準備①
・RDSのセキュリティグループの作成
EC2ダッシュボード [セキュリティグループ] → [セキュリティグループの作成]
項目 | 値 |
---|---|
セキュリティグループ名 | SG_for_Qiita_RDS(任意) |
説明 | SG_for_Qiita_RDS(任意) |
MYSQL/Aurora | カスタム sg-xxxxxx※ |
※送信元は、EC2のセキュリティグループ(SG_for_Qiita_EC2)のグループID |
RDSインスタンス作成前の下準備②
・RDSのサブネットグループの作成
RDSダッシュボードへ移動 [サブネットグループ] → [サブネットグループの作成]
項目 | 値 |
---|---|
名前 | db_subnet_group_for_Qiita(任意) |
説明 | db_subnet_group_for_Qiita(任意) |
VPC ID | test_for_Qiita |
AZ | サブネット |
---|---|
ap-notheast-1a | subnet-xxxxx(マスター用のサブネットID) |
ap-notheast-1c | subnet-zzzzz(スレーブ用のサブネットID) |
サブネットIDは[VPC] → [サブネット] で確認可
RDSインスタンス作成
ステップ1 エンジンの選択 → MySQL
ステップ2 本番稼動用? → 開発/テスト
ステップ3 DB詳細の指定
項目 | 値 |
---|---|
DBエンジンのバージョン | 5.6.27(任意) |
DBインスタンスのクラス | db.t2.micro(任意) |
マルチAZ配置 | いいえ |
DBインスタンス識別子 | db-id-for-qiita(任意) |
マスターユーザの名前 | db_qiita_user(任意) |
マスターパスワード | 任意 |
※ユーザ名、パスワードはWordPress/phpMyAdminを設定する際に使用
ステップ4 詳細の設定
項目 | 値 |
---|---|
VPC | test_for_Qiita |
サブネットグループ | db_subnet_group_for_qiita |
AZ | ap-northeast-1a |
VPCセキュリティグループ | SG_for_Qiita_RDS |
データベースの名前 | db_qiita(任意) |
バックアップの保存期間 | 0日(任意) |
[DBインスタンスの作成]
###Elastic IPの作成
EC2にパブリックIPを設定
EC2ダッシュボード [Elastic IP] → [新しいアドレスの割り当て] → [割り当て]
新しいIPアドレスが自動生成されるのでそれをEC2と関連づける
[アクション] → [アドレスの関連付け]
項目 | 値 |
---|---|
インスタンス | xxxxxxxxxxx (EC2_for_QiitaのインスタンスID) |
プライベートIP | 10.0.1.xxx (EC2_for_QiitaのプライベートIP) |
[関連付け]
##ローカルからのSSH通信
1.EC2インスタンスを作成する際にローカルにダウンロードしたkp_Qiita.pem
のパーミッションを変更
(kp_Qiita.pem
はデスクトップに移動している前提)
myname-no-MacBook-Pro:~ myname$ cd Desktop #Desktopへ移動
myname-no-MacBook-Pro:Desktop myname$ ls -la #パーミッション確認
# 略
-rw-r--r--@ 1 myname staff 1692 2 9 12:33 kp_Qiita.pem
# 略
myname-no-MacBook-Pro:Desktop myname$ chmod 400 kp_Qiita.pem #パーミッション変更
# 略
-r--------@ 1 myname staff 1692 2 9 12:33 kp_Qiita.pem
# 略
myname-no-MacBook-Pro:Desktop myname$ cd #ホームへ移動
2.SSH通信
myname$ ssh -i /Users/myname/Desktop/kp_Qiita.pem ec2-user@13.112.xxx.xxx (EC2インスタンスのパブリックIP)
(myname$ ssh -i ~/Desktop/kp_Qiita.pem ec2-user@13.112.xxx.xxx)
初回ログイン時には下記のアナウンスが表示
The authenticity of host '13.112.xxx.xxx (13.112.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes #yesと入力
成功
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/
[ec2-user@ip-10-0-1-107(EC2のプライベートIP) ~]$
以上です。
Apache2.2+PHP7+MySQL5.6+WordPress4.7+phpMyAdmin4.6の設定はこちらです。