1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】CloudWatchとAutoScalingについてまとめてみた

Last updated at Posted at 2021-05-04

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」と検索
②左ペイン内の「テンプレートの起動」を選択
③「起動テンプレートを作成」を選択

スクリーンショット 2021-05-03 10.31.25.png

Auto ScaringとCloudWatchを導入してみよう!

導入図

AWS_VPC – 6.png

1. AWSへログイン

2. 東京リージョンになっていることを確認

スクリーンショット 2021-05-01 14.21.09.png

3. VPCを作成(IP:10.0.0.0/21)

■ルート
コンソールで「VPC」と検索→左ペイン内の「VPC」を選択→「VPCを作成」を選択

スクリーンショット 2021-05-01 14.24.26.png

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に使うサブネットを作成します。

スクリーンショット 2021-05-01 14.27.32.png

Private Subnetを作成

RDB(MySQL)に使うサブネットを作成します。

スクリーンショット 2021-05-01 14.29.17.png

5. Publicサブネット内にEC2を構築

■ルート
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「インスタンスを起動」を選択

■ステップの流れ
STEP1 Amazon Linux 2 AMI
STEP2 t2.micro
STEP3 「ネットワーク」、「サブネット」、「パブリックIP」を変更
スクリーンショット 2021-05-01 14.35.10.png
STEP4 そのままでOK
STEP5 Name=WEBSERVER1で設定
STEP6 セキュリティグループを変更
スクリーンショット 2021-05-01 14.37.57.png
STEP7 キーペアの作成
スクリーンショット 2021-05-01 14.38.49.png

AMIの作成

作成したWEBSERVER1を停止してAMIを作成します。
■ルート
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「インスタンスの状態」から停止を選択
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「アクション」から「イメージを作成」を選択

スクリーンショット 2021-05-02 21.35.47.png

では作成したAMIを使ってインスタンスを作成しましょう。
ステップ5のタグは、Name=WEBSERVER2とします。
スクリーンショット 2021-05-02 21.40.44.png
スクリーンショット 2021-05-02 21.42.09.png

6. Publicサブネットをインターネットに接続するためにInternet Gatewayを作成

■ルート
コンソールで「VPC」と検索→左ペイン内の「インターネットゲートウェイ」を選択→「インターネットゲートウェイの作成」を選択

スクリーンショット 2021-05-01 14.43.36.png

これではVPCとアタッチできていないので、インターネットへ接続できません。
なのでアタッチさせましょう!
スクリーンショット 2021-05-01 14.44.44.png
これでアタッチしました。

7. EC2がインターネット接続するためにルートテーブルを作成

■ルート
コンソールで「VPC」と検索→左ペイン内の「サブネット」を選択→「Public-Subnet1」を選択→「ルートテーブル」を選択→「ルート」へ移動→「ルートを編集」を選択

スクリーンショット 2021-05-01 14.49.14.png

8. ロードバランサーを導入

■ルート
コンソールで「EC2」と検索→左ペイン内の「ロードバランサー」を選択→「ロードバランサーの作成」を選択

スクリーンショット 2021-05-02 21.52.13.png
スクリーンショット 2021-05-02 21.53.03.png
スクリーンショット 2021-05-02 21.54.08.png
スクリーンショット 2021-05-02 21.54.41.png

9. PrivateサブネットにRDSを構築

RDSには、エンドポイント通信という機能がありました。
もし通信障害などが発生して、親のRDSが使えなくなった時子のRDSに接続してくれる機能です。
つまり、このことから異なるAZにサブネットがないとRDSは使えません

ということで複数のサブネットにまたがる形でRDSは構築されるので、
サブネットグループというものが必要になります。

■ルート
コンソールで「RDS」と検索→左ペイン内の「サブネットグループ」を選択→「DB サブネットグループを作成」を選択

スクリーンショット 2021-05-01 15.04.11.png

それでは次に、DBを作成していきましょう。
■ルート
コンソールで「RDS」と検索→左ペイン内の「データベース」を選択→「データベースの作成」を選択

スクリーンショット 2021-05-01 15.10.34.png
スクリーンショット 2021-05-01 15.10.53.png
スクリーンショット 2021-05-01 15.11.08.png
スクリーンショット 2021-05-01 15.11.23.png
スクリーンショット 2021-05-01 15.11.39.png

次にRDSで作ったセキュリティグループを修正します。
■ルート
コンソールで「VPC」と検索→左ペイン内の「セキュリティグループ」を選択→「RDS-SG-1」を選択

DBは重要な情報が入っているため誰でも彼でもアクセスできると困ります。
なので、PublicサブネットのEC2(セキュリティグループ→WEB-SG-1)からしか触れないように修正します。

スクリーンショット 2021-05-01 15.23.11.png

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」を選択

スクリーンショット 2021-05-02 22.07.17.png

14. RDSも冗長化構成へ変更

■ルート
コンソールで「RDS」と検索→左ペイン内の「データベース」を選択→「database-1」を選択
スクリーンショット 2021-05-02 22.10.04.png

15. 起動テンプレートの作成

■ルート
コンソールで「EC2」と検索→左ペイン内の「テンプレートの起動」を選択→「起動テンプレートを作成」を選択

スクリーンショット 2021-05-04 10.50.18.png
スクリーンショット 2021-05-04 10.50.36.png
スクリーンショット 2021-05-04 10.50.53.png
スクリーンショット 2021-05-04 10.51.03.png

16. Auto Scaring Groupの作成

■ルート
コンソールで「EC2」と検索→左ペイン内の「Auto Scaling グループ」を選択→「Auto Scaling グループの作成」を選択

スクリーンショット 2021-05-04 11.00.18.png
スクリーンショット 2021-05-04 11.01.27.png
スクリーンショット 2021-05-04 11.02.39.png
スクリーンショット 2021-05-04 11.03.28.png

17. CloudWatchの作成

■ルート
コンソールで「CloudWatch」と検索→左ペイン内の「アラーム」を選択→「アラームの作成」を選択

スクリーンショット 2021-05-04 11.08.05.png
スクリーンショット 2021-05-04 11.09.26.png
スクリーンショット 2021-05-04 11.12.04.png

18. Auto Scaringの自動スケーリングの設定

ここでCloudWatchの条件に当てはまった時のアクションを設定します。
■ルート
コンソールで「EC2」と検索→左ペイン内の「Auto Scaling グループ」を選択→「Auto Scaling」を選択

スクリーンショット 2021-05-04 11.15.27.png

スクリーンショット 2021-05-04 11.16.25.png

これで完了です。

削除手順

・Auto Scaring
・CloudWatch
・RDS
・EC2
・ELB
・VPC

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?