狠狠撸

狠狠撸Share a Scribd company logo
アンチパターンで気づく
AWS Well-Architected Framework
入門編 信頼性の柱 総集編
トレノケート株式会社
AAI(AWS Authorized Instructor) Champion
山下 光洋
#trainocate
自己紹介
●山下 光洋 (@yamamanx)
トレノケート株式会社
AWS認定インストラクター
●経歴
?SI ソフトウェアエンジニア
?ユーザー企業 IT部門
●好きなAWSサービス
AWS Lambda
#trainocate
著書 #trainocate
Trainocate #trainocate
Trainocate実績 - AWSクラスルームトレーニング受講者様 #trainocate
本日お話すること
1.Well-Architected Frameworkとは
2.アンチパターンで気づく信頼性の柱 総集編
#trainocate
AWS Well-Architected Framework #trainocate
https://aws.amazon.com/jp/architecture/well-architected/
AWS Well-Architected Framework 5本の柱 #trainocate
運用上の優秀性 セキュリティ 信頼性 パフォーマンス効率 コスト最適化
Well-Architected = よりよい設計
安全で、高いパフォーマンス、障害耐性があり、効率的な運用と最適なコストを兼ね
備えた設計。
アンチパターン→セキュリティリスクが散見、遅いレスポンス、HWひとつの障害が
システム全体に影響して、手動によりエラーが発生する運用、無尽蔵にコストが発生
。
AWS Well-Architected Tool #trainocate
AWS 認定ソリューションアーキテクトアソシエイト #trainocate
【推奨されるAWS関連知識】~抜粋~
?AWS上で使用可能な、コスト効率が高く、フォールト
トレランスでスケーラブルな分散システムを設計する1
年間の実務経験。
?AWSプラットフォーム上に安全で信頼性の高いアプリ
ケーションを構築するために推奨されているベストプラ
クティスに関する知識。
アンチパターンで気づく信頼性の柱 #trainocate
(1)急遽新しいサーバーが必要になったがIPアドレスが使用できなかった。
(2)プライベートIPアドレスが不足した。
(3)アクセスが集中してWebサイトが停止した。
(4)「なんだか重い」と言われてインスタンスサイズを大きくしたが、解消しな
かった。
(5)すべてのアプリケーションサーバーにログインして変更している。
(6)復旧しようとしたがバックアップデータにアクセスできなかった。
(7)AZレベル、HWレベルの障害時に、データベースにアクセスできなくなった
。
(8)障害対策をしてはいたが、発生時に初めて復旧手順を試して失敗した。
(9)災害発生時に、対策を考え始めたので復旧できなかった。
信頼性(Reliability)
1. IPアドレスが使用できなかった #trainocate
Region
Availability Zone
システムA
Availability Zone Availability Zone
システムB システムC
システムD システムE システムF
1. IPアドレスが使用できなかった #trainocate
Region
Availability Zone
システムA
Availability Zone Availability Zone
REL1.
サービス制限をど
のように管理して
いますか?
?制限の認識。
?制限の監視と管理。
システムB システムC
システムD システムE システムF
1. IPアドレスが使用できなかった #trainocate
?サービスの制限を確認して上限緩和申請。
?Trusted Advisor, Service Quotasでモニタリング。
2. プライベートIPアドレスが不足した #trainocate
VPC
Private subnet
2. プライベートIPアドレスが不足した #trainocate
REL2.
ネットワークトポ
ロジをどのように
管理していますか
?
?拡張や可用性のために割り当てるIPサブネットを確保する。
VPC
Private subnet
2. プライベートIPアドレスが不足した #trainocate
REL2.
ネットワークトポ
ロジをどのように
管理していますか
?
?IPアドレス範囲は余裕をもって設定する。
VPC
Private subnet 10.0.2.0/23
2. プライベートIPアドレスが不足した #trainocate
?VPC 尝补尘产诲补は2019年9月の鲍辫诲补迟别で改善されている。
2. プライベートIPアドレスが不足した #trainocate
VPC
Subnet
Webcurl
172.31.200.0/28
3. アクセスが集中してWebサイトが停止した #trainocate
Region
Availability Zone
Webサーバー
Availability Zone Availability Zone
3. アクセスが集中してWebサイトが停止した #trainocate
Region
Availability Zone
Webサーバー
Availability Zone Availability Zone
REL3.
システムが需要の
変化にどのように
対応していますか
?
?リソース不足を検出し自動的にリソース調達する。
?負荷テストで要件を満たすか確認する。
3. アクセスが集中してWebサイトが停止した #trainocate
Region
Availability Zone Availability Zone Availability Zone
REL3.
システムが需要の
変化にどのように
対応していますか
?
?CloudFront、EC2 AutoScaling。
?バックエンド処理をLambda、データをS3, RDS、
ElastiCacheに保管し、データとコンピューティングに、
わけて疎結合にする。
Auto Scaling group
4. インスタンスサイズを大きくしたが解消しなかった #trainocate
4. インスタンスサイズを大きくしたが解消しなかった #trainocate
REL4.
リソースをどのよ
うにモニタリング
していますか?
?すべての層をモニタリングする。
?定期的にレビューを実施する。
4. インスタンスサイズを大きくしたが解消しなかった #trainocate
REL4.
リソースをどのよ
うにモニタリング
していますか?
?CloudWatch ダッシュボード。
?CloudWatch Logs メトリクスフィルタ。AWS WAF。
POST /xmlrpc.php
5.すべてのアプリケーションサーバーにログインでして変更 #trainocate
Availability Zone Availability Zone
VPC
Target
5.すべてのアプリケーションサーバーにログインでして変更 #trainocate
REL5.
変更をどのように
実施していますか
?
?計画的に変更する。
?変更を自動化する。
Availability Zone Availability Zone
VPC
Target
5.すべてのアプリケーションサーバーにログインでして変更 #trainocate
REL5.
変更をどのように
実施していますか
?
?ブルーグリーンデプロイ
Availability Zone Availability Zone
VPC
Blue Target
Green Target
5.すべてのアプリケーションサーバーにログインでして変更 #trainocate
REL5.
変更をどのように
実施していますか
?
?カナリアデプロイ
Availability Zone Availability Zone
VPC
Blue Target
Green Target
80%
20%
5.すべてのアプリケーションサーバーにログインでして変更 #trainocate
REL5.
変更をどのように
実施していますか
?
?データベース認証更新を
SecretManagerで自動化。
Availability Zone Availability Zone
VPC
Target
AWS Secrets Manager
Region
Availability Zone
6. 復旧しようとしたがバックアップデータにアクセスできなかった #trainocate
Availability Zone Availability Zone
DBサーバー
EBSボリューム
アプリサーバー
EBSボリューム
バックアップ
ソフトウェア
EBSボリューム
Region
Availability Zone
6. 復旧しようとしたがバックアップデータにアクセスできなかった #trainocate
Availability Zone Availability Zone
REL6.
データをどうバッ
クアップするか?
?データのバックアップまたはソースからのデータの複製を自動的に実行する。
?データの定期的な復旧を行ってバックアップの完全性とプロセスを確認する。
DBサーバー
EBSボリューム
アプリサーバー
EBSボリューム
バックアップ
ソフトウェア
EBSボリューム
Region
Availability Zone
6. 復旧しようとしたがバックアップデータにアクセスできなかった #trainocate
Availability Zone Availability Zone
REL6.
データをどうバッ
クアップするか?
?構築時のAMI、定期的なスナップショットを取得する。
?定期的な復旧テストをして正常に復旧ができることを確認する。
DBサーバー
EBSボリューム
アプリサーバー
EBSボリューム
AMI
Snapshot
6. 復旧しようとしたがバックアップデータにアクセスできなかった #trainocate
?必要なソースを定期的、自動的にバックアップする。
?クロスリージョンスナップショットコピーも対応。
Region
Availability Zone
7.AZレベル、HWレベルの障害時にデータベースにアクセスできない #trainocate
DBサーバー
EBSボリューム
Availability Zone Availability Zone
Snapshot
Region
Availability Zone
7.AZレベル、HWレベルの障害時にデータベースにアクセスできない #trainocate
DBサーバー
EBSボリューム
Availability Zone Availability Zone
Snapshot
REL7.
どのようにしてシ
ステムがコンポー
ネントのエラーに
耐えるか?
?複数の場所にワークロードをデプロイする。
?修復を自動化する。
Region
Availability Zone
7.AZレベル、HWレベルの障害時にデータベースにアクセスできない #trainocate
Availability Zone Availability Zone
マスター スタンバイ
Snapshot
REL7.
どのようにしてシ
ステムがコンポー
ネントのエラーに
耐えるか?
?RDS マルチAZ
?自動フェイルオーバー(自己修復)
8. 障害発生時に初めて復旧手順を試して失敗した #trainocate
Template
Region
Availability Zone Availability Zone
Auto Scaling group
8. 障害発生時に初めて復旧手順を試して失敗した #trainocate
REL8.
弾力性をどのよう
にテストしていま
すか?
?障害を生成して回復力をテストする。
?定期的ゲームデーを実施する。
Template
Region
Availability Zone Availability Zone
Auto Scaling group
8. 障害発生時に初めて復旧手順を試して失敗した #trainocate
REL8.
弾力性をどのよう
にテストしていま
すか?
?テストアカウントでスタックを作成してテスト。
?オートスケーリングはインスタンスを停止してテスト。
?RDSは再起動フェイルオーバーをしてアプリケーションのテ
スト。
Template
Region
Availability Zone Availability Zone
Auto Scaling group
Region
Availability Zone
9. 災害発生時に、対策を考え始めたので復旧できなかった #trainocate
EC2インスタンス
Availability Zone Availability Zone
AMI
スタンバイマスター
Region
Availability Zone
9. 災害発生時に、対策を考え始めたので復旧できなかった #trainocate
EC2インスタンス
Availability Zone Availability Zone
AMI
REL9.
災害対策をどのよ
うに計画していま
すか?
?RTO(目標復旧時間)とRPO(目標復旧時点)を定義する。
?復旧を自動化する。
スタンバイマスター
Region
Availability Zone
9. 災害発生時に、対策を考え始めたので復旧できなかった #trainocate
EC2インスタンス
Availability Zone Availability Zone
AMI
REL9.
災害対策をどのよ
うに計画していま
すか?
コンポーネントレベルでは?
AZレベルでは?リージョンレベルでは?
スタンバイマスター
Auto Scaling
Template
Snapshot
9. 災害発生時に、対策を考え始めたので復旧できなかった #trainocate
REL9.
災害対策をどのよ
うに計画していま
すか?
コンポーネントレベルでは?
AZレベルでは?リージョンレベルでは?
Region
Availability Zone Availability Zone Availability Zone
Auto Scaling group
アンチパターンで気づく信頼性の柱 #trainocate
(1) 急遽新しいサーバーが必要になったがIPアドレスが使用できなかった。
REL1.サービス制限をどのように管理していますか?
(1) プライベートIPアドレスが不足した。
REL2. ネットワークトポロジをどのように管理していますか?
(1) アクセスが集中してWebサイトが停止した。
REL3. システムが需要の変化にどのように対応していますか?
(1) 「なんだか重い」と言われてインスタンスサイズを大きくしたが、解消しなかった。
REL4. リソースをどのようにモニタリングしていますか?
(1) すべてのアプリケーションサーバーにログインして変更している。
REL5. 変更をどのように実施していますか?
(1) 復旧しようとしたがバックアップデータにアクセスできなかった。
REL6. データをどうバックアップするか?
(1) AZレベル、HWレベルの障害時に、データベースにアクセスできなくなった。
REL7. どのようにしてシステムがコンポーネントのエラーに耐えるか?
(1) 障害対策をしてはいたが、発生時に初めて復旧手順を試して失敗した。
REL8. 弾力性をどのようにテストしていますか?
(1) 災害発生時に、対策を考え始めたので復旧できなかった。
REL9. 災害対策をどのように計画していますか?
信頼性(Reliability)
ご清聴ありがとうございました #trainocate
アンケートにご協力ください。
https://questant.jp/q/aws503

More Related Content

アンチパターンで気づくAWS Well-Architected Framework入門編 信頼性の柱 総集編