CloudWatchとは?
AWSを管理してくれるサービスです。
例えば、EC2のCPUやMemoryが90%以上になってしまった場合ユーザーに通知を送ることができます。
また、その際にどのようなアクションをするかも設定ができます。
AutoScaringとは?
EC2を増減してくれるサービスです。
もしアクセスが急増したときに、
現在のEC2ではたりなくなった分を追加してくれます。
AutoScaringの起動テンプレートを作成
構成は以下の通りです。
構成 |
---|
AMI |
インスタンスタイプ |
Key Pair |
セキュリティグループ |
Auto Scaring groupの作成
最小、希望、最大を指定していく。
EC2 | 個数 |
---|---|
最小 | 2 |
希望 | 2 |
最大 | 4 |
これをCloudWatchと結びつけて考えます。
Cloud Watch | Auto Scaling group |
---|---|
CloudWatch で CPU が 70%以上になった | スケーリングポリシーによって、EC2 を 1 台追加 |
CloudWatch で CPU が 30%以下になった | スケーリングポリシーによって、EC2 を 1 台削除 |
それでは実際に起動テンプレートを作成してみましょう。
■ルート
①コンソール内で「EC2」と検索
②左ペイン内の「テンプレートの起動」を選択
③「起動テンプレートを作成」を選択
Auto ScaringとCloudWatchを導入してみよう!
導入図
1. AWSへログイン
2. 東京リージョンになっていることを確認
3. VPCを作成(IP:10.0.0.0/21)
■ルート
コンソールで「VPC」と検索→左ペイン内の「VPC」を選択→「VPCを作成」を選択
4. サブネットを作成(IP:10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24)
■ルート
コンソールで「VPC」と検索→左ペイン内の「サブネット」を選択→「サブネットを作成」を選択
Public Subnetを作成
WordPressに使うサブネットを作成します。
Private Subnetを作成
RDB(MySQL)に使うサブネットを作成します。
5. Publicサブネット内にEC2を構築
■ルート
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「インスタンスを起動」を選択
■ステップの流れ
STEP1 Amazon Linux 2 AMI
STEP2 t2.micro
STEP3 「ネットワーク」、「サブネット」、「パブリックIP」を変更
STEP4 そのままでOK
STEP5 Name=WEBSERVER1で設定
STEP6 セキュリティグループを変更
STEP7 キーペアの作成
AMIの作成
作成したWEBSERVER1を停止してAMIを作成します。
■ルート
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「インスタンスの状態」から停止を選択
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「アクション」から「イメージを作成」を選択
では作成したAMIを使ってインスタンスを作成しましょう。
ステップ5のタグは、Name=WEBSERVER2とします。
6. Publicサブネットをインターネットに接続するためにInternet Gatewayを作成
■ルート
コンソールで「VPC」と検索→左ペイン内の「インターネットゲートウェイ」を選択→「インターネットゲートウェイの作成」を選択
これではVPCとアタッチできていないので、インターネットへ接続できません。
なのでアタッチさせましょう!
これでアタッチしました。
7. EC2がインターネット接続するためにルートテーブルを作成
■ルート
コンソールで「VPC」と検索→左ペイン内の「サブネット」を選択→「Public-Subnet1」を選択→「ルートテーブル」を選択→「ルート」へ移動→「ルートを編集」を選択
8. ロードバランサーを導入
■ルート
コンソールで「EC2」と検索→左ペイン内の「ロードバランサー」を選択→「ロードバランサーの作成」を選択
9. PrivateサブネットにRDSを構築
RDSには、エンドポイント通信という機能がありました。
もし通信障害などが発生して、親のRDSが使えなくなった時子のRDSに接続してくれる機能です。
つまり、このことから異なるAZにサブネットがないとRDSは使えません。
ということで複数のサブネットにまたがる形でRDSは構築されるので、
サブネットグループというものが必要になります。
■ルート
コンソールで「RDS」と検索→左ペイン内の「サブネットグループ」を選択→「DB サブネットグループを作成」を選択
それでは次に、DBを作成していきましょう。
■ルート
コンソールで「RDS」と検索→左ペイン内の「データベース」を選択→「データベースの作成」を選択
次にRDSで作ったセキュリティグループを修正します。
■ルート
コンソールで「VPC」と検索→左ペイン内の「セキュリティグループ」を選択→「RDS-SG-1」を選択
DBは重要な情報が入っているため誰でも彼でもアクセスできると困ります。
なので、PublicサブネットのEC2(セキュリティグループ→WEB-SG-1)からしか触れないように修正します。
10. SSH接続でログイン
// ①キーペアがあるところへ移動
$ cd desktop
// ②キーペア発見
$ ls -l keypair.pem
-rw-r--r--@ 1 ryo staff 1704 5 1 14:38 keypair.pem
// ③権限を400に変更
$ chmod 400 keypair.pem
// ④SSH接続
$ ssh -i keypair.pem ec2-user@(パブリックIPアドレス)
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
11. EC2にWordPressを導入
// 権限が足りないので権限をrootに移動
$ sudo su -
// EC2のパッケージを最新の状態にアップデート
$ yum -y update
// WordPressが動くために必要なツールをダウンロード(PHP, Apache, MySQL)
$ amazon-linux-extras install php7.2 -y
$ yum -y install mysql httpd php-mbstring php-xml gd php-gd
// Apacheが再起動後も自動的に動くようにする
$ systemctl enable httpd.service
// Apacheをスタート状態に
$ systemctl start httpd.service
// カレントディレクトリにWordPressの最新パッケージを入れる
$ wget http://ja.wordpress.org/latest-ja.tar.gz ~/
// あるか確認する
$ ls -l
total 16076
-rw-r--r-- 1 root root 16458939 Apr 21 00:00 latest-ja.tar.gz(あった)
// 拡張子がgzなので展開しましょう
$ tar zxvf ~/latest-ja.tar.gz
// ディレクトリごと/var/www/htmlへコピーする
$ cp -r ~/wordpress/* /var/www/html/
// /var/www/htmlをapacheのユーザーに権限変更
$ chown apache:apache -R /var/www/html
12. RDSのサイトアドレスをロードバランサーのDNSに書き換え
// ①RDSへログイン
$ mysql -h database-1.xxxxxxxxxxxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -u wordpress -p
// ②WordPressのテーブルを使用
MySQL [(none)]> USE wordpress
// ③指定のカラム
MySQL [(none)]> SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
+-----------+-------------+-----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------+----------+
| 2 | home | http://13.231.153.132 | yes |
| 1 | siteurl | http://13.231.153.132 | yes |
+-----------+-------------+-----------------------+----------+
// ④ロードバランサーのDNS名に置き換える
MySQL [(none)]> UPDATE wp_options SET option_value = 'http://xx.xx.xx.xx' WHERE option_name IN ('siteurl', 'home');
13. EC2のセキュリティグループのアクセス許可をロードバランサーからに変更する
■ルート
コンソールで「EC2」と検索→左ペイン内の「セキュリティグループ」を選択→「WEB-SG-1」を選択
14. RDSも冗長化構成へ変更
■ルート
コンソールで「RDS」と検索→左ペイン内の「データベース」を選択→「database-1」を選択
15. 起動テンプレートの作成
■ルート
コンソールで「EC2」と検索→左ペイン内の「テンプレートの起動」を選択→「起動テンプレートを作成」を選択
16. Auto Scaring Groupの作成
■ルート
コンソールで「EC2」と検索→左ペイン内の「Auto Scaling グループ」を選択→「Auto Scaling グループの作成」を選択
17. CloudWatchの作成
■ルート
コンソールで「CloudWatch」と検索→左ペイン内の「アラーム」を選択→「アラームの作成」を選択
18. Auto Scaringの自動スケーリングの設定
ここでCloudWatchの条件に当てはまった時のアクションを設定します。
■ルート
コンソールで「EC2」と検索→左ペイン内の「Auto Scaling グループ」を選択→「Auto Scaling」を選択
これで完了です。
削除手順
・Auto Scaring
・CloudWatch
・RDS
・EC2
・ELB
・VPC