AWSでWebサイトを構築する方法

AWS

このブログはAWSで構築しています。
自分用のメモのつもりなので、
わからない人は他のサイトや書籍を調べてください。

仕事でオンプレには触れていますが、クラウドは全くの未経験でした。
AWS初心者が独学で構築できたので、
誰でも同じようなWebサイトが構築できるはずです。

アクセスがほぼ無いブログなので冗長構成にする必要はないですが、
インフラの勉強の為にWebサーバとDBサーバを2台にして運用しています。

構成はこんな感じです。 

これを構築するまでの流れは以下のとおりです。

  1. アカウント(ルートユーザー)作成
  2. IAMユーザー作成
  3. MFA設定
  4. 請求情報アクセス有効化
  5. VPC作成
  6. サブネット作成
  7. インターネットゲートウェイ作成
  8. ルートテーブル作成
  9. セキュリティグループ作成
  10. キーペア作成
  11. インスタンス起動
  12. Elastic IPアドレス関連付け
  13. DBサブネットグループ作成
  14. データベース作成
  15. ドメイン登録
  16. SSL/TLS証明書リクエスト
  17. ターゲットグループ作成
  18. ロードバランサー作成
  19. エイリアスレコード作成
  20. SSH接続
  21. Apacheインストール
  22. PHPインストール
  23. MySQLインストール
  24. WordPressインストール

詳しい人から見れば、あえて作業を分割しているように感じると思います。
例えば、「11.インスタンス起動」の際に「10.キーペア作成」を
まとめて作成することもできます。

実際に構築してみた感想になりますが、複数の項目をまとめて作成すると、
「それがなぜ必要なのか」が分かり難いように感じました。

この順番で構築すれば、きっと誰でも理解できるはずです。

01. アカウント(ルートユーザー)作成

ルートユーザーはMFAを設定して、最小限の利用にします。
PCの管理者権限と同じようなものです。

① AWSのページを開いて【AWSアカウントを作成】を選択

② 「Eメールアドレス」と「AWSアカウント名」を入力

③ 「連絡先情報」「クレジットカード番号」「サポートプラン」設定する

02. IAMユーザー作成

ユーザー毎に最小限の権限を付与したIAMユーザーを作成します。
特権のあるIAMユーザーにはMFAを設定します。

① 検索窓に「IAM」を入力して【ユーザー】を選択

② 【ユーザーの作成】を選択

③ 任意のユーザー名を入力してオプションをチェックする

④ 「IAMユーザーを作成します」を選択して【次へ】を選択

⑤ 「ポリシーを直接アタッチする」を選択
  「AdministratorAccess」をチェックして【次へ】を選択

⑥ 入力した内容を確認して【ユーザーの作成】を選択

⑦ IAMユーザーでログインする
  ”https://(12桁のアカウントID).signin.aws.amazon.com/console”

03. MFA設定

ルートユーザーと特権のあるIAMユーザーには他要素認証(MFA)を使用します。

① スマートフォンに「Google Authenticator」をインストールする

② 右上のユーザー名から【セキュリティ認証情報】を選択

③ 【MFAデバイスの割り当て】を選択

④ 任意のデバイス名を入力して、使用するMFAデバイスから
  「Authenticator app」を選択して【次へ】を選択

⑤ スマートフォンの「Google Authenticator」からQRコードをスキャンする

⑥ MFAコードを入力して【MFAを追加】を選択

04. 請求情報アクセス有効化

ルートユーザーは殆どログインしないので、
IAMユーザーで請求情報を確認できると便利です。

① ルートユーザーでログインする

② 右上のユーザー名から【アカウント】を選択

③ 「IAMユーザーおよびロールによる請求情報へのアクセス」まで
  スクロールして【編集】を選択

④ 「IAMアクセスのアクティブ化」をチェックして【更新】を選択

05. VPC作成

プライベートなクラウドに仮想ネットワーク環境を構築します。

① 検索窓に「VPC」を入力して【VPC】を選択

② デフォルトVPCを削除する

06. サブネット作成

07. インターネットゲートウェイ作成

08. ルートテーブル作成

09. セキュリティグループ作成

10. キーペア作成

11. インスタンス起動

12. Elastic IPアドレス関連付け

13. DBサブネットグループ作成

14. データベース作成

15. ドメイン登録

16. SSL/TLS証明書リクエスト

17. ターゲットグループ作成

18. ロードバランサー作成

19. エイリアスレコード作成

20. SSH接続

21. Apacheインストール

22. PHPインストール

23. MySQLインストール

24. WordPressインストール