Slide 1

Slide 1 text

JAWS SONIC 2020
 初心者が避けがちな
 AWS Well-Architectedフレームワークを使って
 WordPressサイトを評価してみた
 JAWS-UG 初心者支部


Slide 2

Slide 2 text

・山原 崇史
 ・Twitter : @shonansurvivors 
 ・某Web系企業のSRE
 自己紹介


Slide 3

Slide 3 text

本日のセッションについて
 ・初心者支部運営メンバーが、AWS Well-Architectedの勉強の為に設定した
  架空の企業が題材となっています


Slide 4

Slide 4 text

目次
 ・とある小さな企業のお話
 ・Well-Architectedフレームワークとは?
 ・5本の柱を使って改善
 ・まとめ


Slide 5

Slide 5 text

とある小さな企業のお話
 ・色とりどりの布デザインマスクを製造/販売している小さな企業


Slide 6

Slide 6 text

とある小さな企業のお話
 ・1年ほど前に、商品紹介等のためのWordPressのサイトを公開した
 ・サイトを構築したのは新卒入社2年目社員(エンジニアではない)
 ・いまAWSがイケてるらしい?と聞いて、独学でEC2上に構築
 


Slide 7

Slide 7 text

とある小さな企業のお話
 ・その後の運用もこの2年目社員が1人で続けていた
 ・ここ最近、コロナ禍の影響でアクセスが増加中
 


Slide 8

Slide 8 text

構成と運用
 
 
 ルートユーザー 管理

Slide 9

Slide 9 text

この構成と運用をどう改善する?

Slide 10

Slide 10 text

AWS Well-Architectedフレームワークを 参考にしてみよう

Slide 11

Slide 11 text

AWS Well-Architected FWとは?
 ・クラウドにサービスを構築する上での原則やベストプラクティス等を解説
 ・概要 (約90ページ) と5つの柱から構成される
 ・運用上の優秀性の柱 (約50ページ)
 ・セキュリティの柱 (約50ページ)
 ・信頼性の柱 (約120ページ)
 ・パフォーマンス効率の柱 (約50ページ)
 ・コスト最適化の柱 (約50ページ)


Slide 12

Slide 12 text

運用上の優秀性の柱
 ・4つの領域
 ・組織 👀
 ・準備
 ・運用 
 ・進化


Slide 13

Slide 13 text

組織
 ・運用モデルを 2 x 2 の形で表してみると、チーム間の関係を理解しやすい


Slide 14

Slide 14 text

「完全に分離した」運用モデル
 (https://d1.awsstatic.com/whitepapers/ja_JP/architecture/AWS-Operational-Excellence-Pillar.pdf)

Slide 15

Slide 15 text

「自ら実行して構築する」運用モデル
 (https://d1.awsstatic.com/whitepapers/ja_JP/architecture/AWS-Operational-Excellence-Pillar.pdf)

Slide 16

Slide 16 text

実践
 ☑ 今後の体制を上司に相談
 ☑ サイト開発/運用に関心のある1年目社員に参画してもらうことに
 2年目社員 2年目社員 (プラットフォーム エンジニアリング) 1年目社員 (アプリケーション エンジニアリング) 2年目社員 1年目社員

Slide 17

Slide 17 text

セキュリティの柱
 ・5つの領域
 ・アイデンティティ管理とアクセス管理 👀
 ・検出
 ・インフラストラクチャの保護
 ・データ保護 👀
 ・インシデント対応


Slide 18

Slide 18 text

アイデンティティ管理とアクセス管理
 ・最小権限のアクセスを付与しよう 
 ・まず、各IAMユーザー(やIAMロール)が何をする必要があるか定義しよう
 ・その上で、その実行に必要な権限(ポリシー)を付与しよう
 👇 実践
 ☑ ルートユーザーは権限として何でもできるので使用を止めた
 ☑ IAMユーザーを使用することにした
 ☑ 前述の新体制も踏まえて、各メンバーに最小限の権限(ポリシー)を付与した


Slide 19

Slide 19 text

データ保護
 ・転送中のデータを保護しよう
 ・証明書を安全に管理しよう
 ・通信を暗号化しよう
 👇 実践
 ☑ ACMで証明書を発行/管理
 ☑ ALBに証明書を付けてHTTPS化
 ☑ HTTPはALBでHTTPSへリダイレクト
 


Slide 20

Slide 20 text

信頼性の柱
 ・4つの領域
 ・基盤 
 ・ワークロードのアーキテクチャ(ワークロード : AWSリソースとコードの集まり) 👀
 ・変更の管理
 ・障害の管理 
 


Slide 21

Slide 21 text

ワークロードのアーキテクチャ
 ・可能であればサービスをステートレス(状態を持たないこと)にしよう
 ・ステートレスにすることで水平方向にスケーリング(注)できる
   注 : EC2インスタンスの数を増やし、アクセスピーク時などに対応できる
 


Slide 22

Slide 22 text

ステートレス化の実践
 ☑ EC2のストレージを、複数のEC2からアクセス可能なEFSに変更した
 ☑ DBを、EC2上にWordPressと同居させるのではなく、RDSでの管理とした
 


Slide 23

Slide 23 text

パフォーマンス効率の柱
 ・4つの領域
 ・選択 👀
 ・レビュー
 ・モニタリング
 ・トレードオフ


Slide 24

Slide 24 text

テレビの取材があったよ、来週放送されるよ! (これはアクセスが凄いことになるぞ・・・) 社長

Slide 25

Slide 25 text

選択
 ・パフォーマンスアーキテクチャの選択
 ・アーキテクチャを最適化するにはテストを通じて得られたデータが必要
 👇 実践
 ☑ 負荷テストを実施
 ☑ ALBの前段にCloudFrontを導入
 ☑ WordPressのキャッシュプラグインを利用するためにElastiCacheを導入
 ☑ 再び負荷テストを実施して効果を検証
 


Slide 26

Slide 26 text

コスト最適化の柱
 ・5つの重点分野
 ・クラウドの財務管理の実践 👀
 ・支出と使用量の認識 👀
 ・費用対効果の高いリソース 
 ・需要と供給を一致させる
 ・継続的最適化
 


Slide 27

Slide 27 text

クラウドの財務管理の実践
 ・ファイナンス部門とテクノロジー部門のパートナーシップを確立する
 👇 実践
 ☑ 会社の経理担当者にもIAMユーザーを発行し、コストを常時参照可能にした
 ☑ AWSの割引プラン(Savings Plans, Reserved Instances)の仕組みを
   経理担当者に説明し、今後の支払方法を一緒に検討するようにした


Slide 28

Slide 28 text

支出と使用量の認識
 ・コントロールと通知
 ・コスト管理の第一歩は、ポリシー外のコスト発生を通知すること
 👇 実践
 ☑ AWS Budgetsで予算を設定した
 ☑ 月次予算が超過しそうな見込みであればSlack通知するようにした
 


Slide 29

Slide 29 text

構成と運用の振り返り

Slide 30

Slide 30 text

これが
 
 
 ルートユーザー 管理

Slide 31

Slide 31 text

こうなった
 
 
 管理 ・アプリ担当 ・インフラ担当 ・経理担当

Slide 32

Slide 32 text

まとめ 1 / 2
 
 
 ・Well-Architectedにはクラウド構築のベストプラクティスが詰まっている
 ・何をどこからどう改善すれば良いのか悩んでいる時の指針となる
 ・普段当たり前のように導入している構成の意義や目的の再確認になる
 ・技術的要素だけでなく組織体制や財務管理の話もある
 ・リードポジションの方も改めて読んでみると良いかもしれません
 


Slide 33

Slide 33 text

まとめ 2 / 2
 
 
 ・それなりにボリューム(300ページ超)のあるドキュメントを読むのは腰が重い・・・
 👇
 ・社内/社外の仲間と分担して読んで、意見交換してみては?


Slide 34

Slide 34 text

Special Thanks !
 
 
 ・太田 亮 (運用上の優秀性の柱)
 ・山本 淳博 (セキュリティの柱)
 ・織田 繁 (パフォーマンス効率の柱)
 ・武田 可帆里 (コスト最適化の柱)
 
 
 


Slide 35

Slide 35 text

🏛ご静聴ありがとうございました🏛