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

Trainocate Japan, Ltd.
Trainocate Japan, Ltd.Trainocate Japan, Ltd.
アンチパターンで気づく
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 Lambdaは2019年9月のUpdateで改善されている。
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
1 von 46

Más contenido relacionado

Was ist angesagt?(20)

Aws first step_v2Aws first step_v2
Aws first step_v2
Trainocate Japan, Ltd.356 views
20190314 aws first_stepv220190314 aws first_stepv2
20190314 aws first_stepv2
Trainocate Japan, Ltd.595 views
運用視点でのAWSサポート利用Tips運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips
Noritaka Sekiyama11.6K views
20150901 ops jaws_araya_v220150901 ops jaws_araya_v2
20150901 ops jaws_araya_v2
Mitsuru Araya5.4K views
JAWS-UG-Chiba_Vol14_kitaharaJAWS-UG-Chiba_Vol14_kitahara
JAWS-UG-Chiba_Vol14_kitahara
Masato Kitahara300 views
エンジニアの為のAWS実践講座エンジニアの為のAWS実践講座
エンジニアの為のAWS実践講座
Eiji Shinohara2.1K views
20160608 JAWS-UG磐田20160608 JAWS-UG磐田
20160608 JAWS-UG磐田
Serverworks Co.,Ltd.1.3K views

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

AWS CAF & Well-Architected FrameworkAWS CAF & Well-Architected Framework
AWS CAF & Well-Architected Framework
真吾 吉田3.2K views
20160629 aws well-architected20160629 aws well-architected
20160629 aws well-architected
Takashi Koyanagawa247 views
Alexaスキルを作ろうAlexaスキルを作ろう
Alexaスキルを作ろう
真吾 吉田1.3K views
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi7.1K views
skyarch2023.pptxskyarch2023.pptx
skyarch2023.pptx
スカイアーチ 採用チーム2.2K views
VUXデザイナーVUXデザイナー
VUXデザイナー
真吾 吉田1.8K views
May the FaaS be with us!!May the FaaS be with us!!
May the FaaS be with us!!
真吾 吉田2K views

Más de Trainocate Japan, Ltd.(20)

今こそ知りたい!Microsoft Azureの基礎今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎
Trainocate Japan, Ltd.933 views
LPI認定の概要LPI認定の概要
LPI認定の概要
Trainocate Japan, Ltd.507 views
セキュアなテレワークの実現セキュアなテレワークの実現
セキュアなテレワークの実現
Trainocate Japan, Ltd.499 views
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
Trainocate Japan, Ltd.485 views
Microsoft Teams 管理のススメMicrosoft Teams 管理のススメ
Microsoft Teams 管理のススメ
Trainocate Japan, Ltd.587 views
20191024 dx trainocate20191024 dx trainocate
20191024 dx trainocate
Trainocate Japan, Ltd.857 views
IoTセキュリティの課題IoTセキュリティの課題
IoTセキュリティの課題
Trainocate Japan, Ltd.1.1K views
パネルディスカッションパネルディスカッション
パネルディスカッション
Trainocate Japan, Ltd.290 views
20191015 cloud-for-manager-seminor20191015 cloud-for-manager-seminor
20191015 cloud-for-manager-seminor
Trainocate Japan, Ltd.253 views
20190924 cer-nagoya-ppt20190924 cer-nagoya-ppt
20190924 cer-nagoya-ppt
Trainocate Japan, Ltd.244 views
20190917 cer-kyoto20190917 cer-kyoto
20190917 cer-kyoto
Trainocate Japan, Ltd.250 views

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