Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSパターン別構築・運用ガイド 輪読会 3.1節/aws_book_3_1

meow
November 08, 2019
100

AWSパターン別構築・運用ガイド 輪読会 3.1節/aws_book_3_1

slideshareから移行しました。
https://www.slideshare.net/meownoisy/aws-31/meownoisy/aws-31

2019年11月8日(金)にコワーキングスペース秋葉原Weeybleにて開催された、『AWSパターン別構築・運用ガイド 輪読会』で発表した資料です。事前公開版から一部改定を行いました。

meow

November 08, 2019
Tweet

Transcript

  1. 今日の内容(9つある節の1つまで)  3-1 EC2を利用した動的サイトの構築  3-2 Elastic Beanstalkによる構築レスな動的サイト  3-3

    S3による静的サイトのサーバレス構築  3-4 Auto Scalingによる自動スケーリングシステム の構築  …  3-1は丁寧にやったほうがいい気がするので 章を3回分にわける
  2. AWS Cloud VPC Internet Internet gateway Availability Zone(ap-northeast-1a) Availability Zone(ap-northeast-1c)

    Public subnet Private subnet Amazon RDS instance Private subnet Amazon RDS instance Amazon EC2 構成 EC2にApache、その上にwordpressを乗せる
  3. AWS Cloud VPC Internet Internet gateway Availability Zone(ap-northeast-1a) Availability Zone(ap-northeast-1c)

    Public subnet Private subnet Amazon RDS instance Private subnet Amazon RDS instance Amazon EC2 構成 EC2にApache、その上にwordpressを乗せる
  4. サブネット(p.185)  異なるアベイラビリティーゾーン2つにそれぞれ パブリック用NW1つ、プライベート用NW1つをつくる  WP-PublicSubnet-A  WP-PrivateSubnet-A  WP-PublicSubnet-C

     WP-PrivateSubnet-C  パブリックはEC2、プライベートはRDS用  なぜ、IPを間をあけて割り振ったのかはわからなかった  10.1.11.0/24の次が10.1.15.0/24
  5. ルートテーブル(p.189)  作成したら、パブリックサブネットと関連付け(WP- PublicSubnet-{A,C})  「送信先」と「ターゲット」の違いが分かってない  おそらく、「送信先」は、サブネットに流入するパケットのうち、 監視したいパターンをCIDR表記で書いている 

    ターゲットは、「送信先」のパケットをどこに送るか(?)  p.190で0.0.0.0/0とigw-…を追加しているのは、パブリッ クサブネットが(アウトバウンドのために)インターネット に接続できるようにするためだと思われる  ルートテーブルとは何かに関しては下記のサイトがわかり やすい  http://awsinfra.site/2018/05/29/post-236/
  6. セキュリティグループ(3-1節版)  Webサーバ用のDMZ(どのIPからのアクセスも受け 付ける)  SSH用; 本とは異なるが、ソースは「マイIP」を選択  HTTP: 本(p.193)と異なり、ポートを8080に設定できな

    い。80でよい。ソース(許可アクセス元)は「任意の場 所」を選択  8080にすると、後でApacheをいじらないといけなくなる  DBサーバ用  ソースをDMZからに絞る。  また、ポートも3306を設定
  7. RDSインスタンスの作成(p.197)  本と表記が異なる  RDS > データベース > データベースの作成 

    その後の画面が、デフォルトでは、本とUIが異な るので、ブラウザ上部の「元のインターフェイス に切り替えます」をクリックすれば、本の通りに 進められる
  8. EC2内にミドルウェアをインストール sudo yum install php php-mysql php-gd php-mbstring –y sudo

    yum install mysql -y # wordpressの取得 wget -O /tmp/wordpress-4.9.4-ja.tar.gz https://ja.wordpress.org/wordpress-4.9.4-ja.tar.gz # 圧縮ファイルの解凍 sudo tar zxf /tmp/wordpress-4.9.4-ja.tar.gz -C /opt # シンボリックリンクをはる sudo ln -s /opt/wordpress/ /var/www/html/ #所持者が nobody nfsnobody になっているので sudo chown -R apache:apache /opt/wordpress/ # EC2インスタンス起動時に起動できるようにする sudo chkconfig httpd on # Apacheの起動 sudo service httpd start # Apacheの設定を更新(これをしないと、次回のインスタンス起動時にApacheが自動的に立ち上がらない) sudo service httpd restart EC2にTeratermなどでssh接続(p.153~参照)後、下記のコマンドを実行
  9. MySQLのセットアップ  同じくEC2内でmysqlクライアントを呼び出す mysql -u root -p -h [あなたのRDSエンドポイント] #

    ここで、RDS作成時のパスワードを入力 CREATE USER 'wordpress-user'@'%' IDENTIFIED BY 'wordpress'; CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress-user"@"%"; FLUSH PRIVILEGES;
  10. ロードバランシングする(p.208) AWS Cloud VPC Internet Internet gateway Availability Zone(ap-northeast-1a) Availability

    Zone(ap-northeast-1c) Public subnet Private subnet Amazon RDS instance Private subnet Amazon RDS instance Amazon EC2 Elastic Load Balancing Public subnet Amazon EC2 複数(2つ)のWordPressサーバを立て、かつ、ELBをつけて、アクセスの分散をする
  11. HTTPSでのアクセス  通信のセキュリティを高めるために、HTTPSで接続す るようにする。  証明書さえ用意すればELBには簡単にHTTPS接続でき る  自己証明書 

    本来は自分の作った鍵を認証局に登録する必要があるが、料 金がかかるので、自分で「この鍵は本物ですよ」と認証する  いわゆるオレオレ証明書  (参考)ELBにおいては、無料でSSL証明書を発行できる  https://www.skyarch.net/blog/?p=7942
  12. ELBへ証明書の設定  UIが若干違う  ELBのリスナーページを開く  プロトコル:ポート HTTPS:443  セキュリティポリシー:

    ELBSecurityPolicy-2016-08  デフォルトのSSL証明書: インポート  インポート先: ACM  証明書のプライベートキー: .keyファイルの中身をコピペ  証明書本文: .crtの中身をコピペ  証明書チェーン: 未記入
  13. おかたづけ  EC2  ELB(ロードバランサ)  S3  RDS 

    ・・・くらいを落としておけば、 そんな大きな課金額にはならないはず この記載が本にほしい所