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

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

shonansurvivors
September 12, 2020

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

初心者が避けて通りがちなAWS Well-Architected フレームワーク。
かく言う初心者支部運営メンバーも熟読したことがありませんでした。
今回のイベントを機にWordPressで作ったサイトを評価しましたので、その評価結果を発表します。

shonansurvivors

September 12, 2020
Tweet

More Decks by shonansurvivors

Other Decks in Technology

Transcript

  1. JAWS SONIC 2020

    初心者が避けがちな

    AWS Well-Architectedフレームワークを使って

    WordPressサイトを評価してみた

    JAWS-UG 初心者支部


    View Slide

  2. ・山原 崇史

    ・Twitter : @shonansurvivors 

    ・某Web系企業のSRE

    自己紹介


    View Slide

  3. 本日のセッションについて

    ・初心者支部運営メンバーが、AWS Well-Architectedの勉強の為に設定した

     架空の企業が題材となっています


    View Slide

  4. 目次

    ・とある小さな企業のお話

    ・Well-Architectedフレームワークとは?

    ・5本の柱を使って改善

    ・まとめ


    View Slide

  5. とある小さな企業のお話

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


    View Slide

  6. とある小さな企業のお話

    ・1年ほど前に、商品紹介等のためのWordPressのサイトを公開した

    ・サイトを構築したのは新卒入社2年目社員(エンジニアではない)

    ・いまAWSがイケてるらしい?と聞いて、独学でEC2上に構築


    View Slide

  7. とある小さな企業のお話

    ・その後の運用もこの2年目社員が1人で続けていた

    ・ここ最近、コロナ禍の影響でアクセスが増加中


    View Slide

  8. 構成と運用



    ルートユーザー
    管理

    View Slide

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

    View Slide

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

    View Slide

  11. AWS Well-Architected FWとは?

    ・クラウドにサービスを構築する上での原則やベストプラクティス等を解説

    ・概要 (約90ページ) と5つの柱から構成される

    ・運用上の優秀性の柱 (約50ページ)

    ・セキュリティの柱 (約50ページ)

    ・信頼性の柱 (約120ページ)

    ・パフォーマンス効率の柱 (約50ページ)

    ・コスト最適化の柱 (約50ページ)


    View Slide

  12. 運用上の優秀性の柱

    ・4つの領域

    ・組織 👀

    ・準備

    ・運用 

    ・進化


    View Slide

  13. 組織

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


    View Slide

  14. 「完全に分離した」運用モデル

    (https://d1.awsstatic.com/whitepapers/ja_JP/architecture/AWS-Operational-Excellence-Pillar.pdf)

    View Slide

  15. 「自ら実行して構築する」運用モデル

    (https://d1.awsstatic.com/whitepapers/ja_JP/architecture/AWS-Operational-Excellence-Pillar.pdf)

    View Slide

  16. 実践

    ☑ 今後の体制を上司に相談

    ☑ サイト開発/運用に関心のある1年目社員に参画してもらうことに

    2年目社員
    2年目社員
    (プラットフォーム
    エンジニアリング)
    1年目社員
    (アプリケーション
    エンジニアリング)
    2年目社員
    1年目社員

    View Slide

  17. セキュリティの柱

    ・5つの領域

    ・アイデンティティ管理とアクセス管理 👀

    ・検出

    ・インフラストラクチャの保護

    ・データ保護 👀

    ・インシデント対応


    View Slide

  18. アイデンティティ管理とアクセス管理

    ・最小権限のアクセスを付与しよう 

    ・まず、各IAMユーザー(やIAMロール)が何をする必要があるか定義しよう

    ・その上で、その実行に必要な権限(ポリシー)を付与しよう

    👇 実践

    ☑ ルートユーザーは権限として何でもできるので使用を止めた

    ☑ IAMユーザーを使用することにした

    ☑ 前述の新体制も踏まえて、各メンバーに最小限の権限(ポリシー)を付与した


    View Slide

  19. データ保護

    ・転送中のデータを保護しよう

    ・証明書を安全に管理しよう

    ・通信を暗号化しよう

    👇 実践

    ☑ ACMで証明書を発行/管理

    ☑ ALBに証明書を付けてHTTPS化

    ☑ HTTPはALBでHTTPSへリダイレクト


    View Slide

  20. 信頼性の柱

    ・4つの領域

    ・基盤 

    ・ワークロードのアーキテクチャ(ワークロード : AWSリソースとコードの集まり) 👀

    ・変更の管理

    ・障害の管理 


    View Slide

  21. ワークロードのアーキテクチャ

    ・可能であればサービスをステートレス(状態を持たないこと)にしよう

    ・ステートレスにすることで水平方向にスケーリング(注)できる

      注 : EC2インスタンスの数を増やし、アクセスピーク時などに対応できる


    View Slide

  22. ステートレス化の実践

    ☑ EC2のストレージを、複数のEC2からアクセス可能なEFSに変更した

    ☑ DBを、EC2上にWordPressと同居させるのではなく、RDSでの管理とした


    View Slide

  23. パフォーマンス効率の柱

    ・4つの領域

    ・選択 👀

    ・レビュー

    ・モニタリング

    ・トレードオフ


    View Slide

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

    View Slide

  25. 選択

    ・パフォーマンスアーキテクチャの選択

    ・アーキテクチャを最適化するにはテストを通じて得られたデータが必要

    👇 実践

    ☑ 負荷テストを実施

    ☑ ALBの前段にCloudFrontを導入

    ☑ WordPressのキャッシュプラグインを利用するためにElastiCacheを導入

    ☑ 再び負荷テストを実施して効果を検証


    View Slide

  26. コスト最適化の柱

    ・5つの重点分野

    ・クラウドの財務管理の実践 👀

    ・支出と使用量の認識 👀

    ・費用対効果の高いリソース 

    ・需要と供給を一致させる

    ・継続的最適化


    View Slide

  27. クラウドの財務管理の実践

    ・ファイナンス部門とテクノロジー部門のパートナーシップを確立する

    👇 実践

    ☑ 会社の経理担当者にもIAMユーザーを発行し、コストを常時参照可能にした

    ☑ AWSの割引プラン(Savings Plans, Reserved Instances)の仕組みを

      経理担当者に説明し、今後の支払方法を一緒に検討するようにした


    View Slide

  28. 支出と使用量の認識

    ・コントロールと通知

    ・コスト管理の第一歩は、ポリシー外のコスト発生を通知すること

    👇 実践

    ☑ AWS Budgetsで予算を設定した

    ☑ 月次予算が超過しそうな見込みであればSlack通知するようにした


    View Slide

  29. 構成と運用の振り返り

    View Slide

  30. これが



    ルートユーザー
    管理

    View Slide

  31. こうなった



    管理
    ・アプリ担当
    ・インフラ担当
    ・経理担当

    View Slide

  32. まとめ 1 / 2



    ・Well-Architectedにはクラウド構築のベストプラクティスが詰まっている

    ・何をどこからどう改善すれば良いのか悩んでいる時の指針となる

    ・普段当たり前のように導入している構成の意義や目的の再確認になる

    ・技術的要素だけでなく組織体制や財務管理の話もある

    ・リードポジションの方も改めて読んでみると良いかもしれません


    View Slide

  33. まとめ 2 / 2



    ・それなりにボリューム(300ページ超)のあるドキュメントを読むのは腰が重い・・・

    👇

    ・社内/社外の仲間と分担して読んで、意見交換してみては?


    View Slide

  34. Special Thanks !



    ・太田 亮 (運用上の優秀性の柱)

    ・山本 淳博 (セキュリティの柱)

    ・織田 繁 (パフォーマンス効率の柱)

    ・武田 可帆里 (コスト最適化の柱)




    View Slide

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

    View Slide