SAP受かったのでDOPを受ける

## 出題範囲
1.  SDLC(ソフトウェア開発ライフサイクル) の自動化
1.  構成管理および Infrastructure as Code
1.  監視およびロギング
1.  ポリシーと標準の自動化
1.  インシデントおよびイベントへの対応
1.  高可用性、フォールトトレランス、およびディザスタリカバリ
1. その他

## 1. SDLC(ソフトウェア開発ライフサイクル) の自動化
- CI/CD パイプラインを自動化するために必要な概念を適用する。
  - パイプライン構築方法とCode *サービスとの統合方法を理解する
  -  パイプライン構造を理解する（runorderを使用してビルドを並行して実行する）
- ソース管理戦略の内容、およびソース管理戦略を実装する方法を決める。
  - サポートしてるプロバイダ(CodeCommit、GitHub等)
- テストを自動化および統合するために必要な概念を適用する。
- アーティファクトをセキュアに作成および管理するために必要な概念を適用する。
- 展開/配信戦略の内容 (例: A/B、ブルー/グリーン、カナリア、レッド/ブラック)
- AWS サービスを使用して展開/配信戦略を実装する方法

## 2. 構成管理および Infrastructure as Code

- 展開ニーズに基づいて展開サービスを決める。
- 業務ニーズに基づいて、アプリケーションとインフラストラクチャの展開モデルを決める。
- リソースプロビジョニングの自動化においてセキュリティ概念を適用する。
- 展開にライフサイクルフックを実装する方法を決める。
- AWS の構成管理ツールおよび構成管理サービスを使用してシステムを管理するために必要
な、概念を適用する。

- CloudFormationの各セクションに何を記述するか、どういうシーンで使うのか
- 各組み込み関数の機能、どういうシーンで使うのか
- リソース属性
- ヘルパースクリプトを使用してイベントの完了を示す方法を知っています。
- 展開戦略を理解します。更新をローリングしてAutoScalingに置き換え、起動構成を更新します
- CloudFormationポリシーを理解します。更新および削除ポリシー（ヒント：スタック削除時にリソースを保持します）
- CloudFormationのベストプラクティスを理解します。ネストされたスタックと論理グループ
- CloudFormationテンプレートの構造を理解する–パラメーター、出力、マッピング
- CloudFormationカスタムリソースとそのユースケースを理解する（ヒント：カスタムリソースを使用してAMI IDを取得したり、外部サービスとやり取りしたりできます）

## 3. 監視およびロギング
ログおよびメトリクスの集計処理、格納処理、および分析処理をセットアップする方法を決
める。
3.2 環境の監視および環境におけるイベント管理を自動化するために必要な概念を適用する。
3.3 オペレーティングシステム、インフラストラクチャ、およびアプリケーションを監査、ロギ
ング、および監視するために必要な概念を適用する。
3.4 タグ付けなどのメタデータ戦略を実装する方法を決める。

- AWS CloudWatch、AWS CloudTrail、AWS Configを理解すること
- AWS Trust Advisor、Systems Manager、AWS Inspectorを理解すること
- ユースケース
  - マルチアカウント、マルチリージョンでAWS Configを有効にする。
  - CloudTrailログの整合性を維持する方法
  - AWS configを複数アカウントで取りたい（アグリゲーター）
  - パーソナルヘルスダッシュボードとサービスヘルスダッシュボードを知る

## 4. ポリシーと標準の自動化
- ロギング、メトリクス、監視、テスト、およびセキュリティに関する標準を遂行するために必要な概念を適用する。
- 自動化によってコストを最適化する方法を決める。
- 統治戦略を実装するために必要な概念を適用する。

- CloudWatchイベントを理解すること
- CloudWatchがカスタムメトリクスをサポートしていることを理解すること
- CloudWatchサブスクリプションフィルターと他のサービスとの統合について理解すること
- CloudWatchのスケジュールされたイベントを使用してイベントをトリガーできることを理解すること
- CloudWatchLogsをElastciSearchへストリーミングする
- AWSマネージドインスタンスとオンプレミスインスタンスを監視する方法を理解すること

## 5.  インシデントおよびイベントへの対応
- 問題をトラブルシューティングし、また、運用復旧方法を決める。
  - アクセスまたはアクセス許可のトラブルシューティング
- イベント管理とアラート通知を自動化する方法を決める。
- 自動復旧を実装するために必要な概念を適用する。
- イベント駆動型自動アクションをセットアップするために必要な概念を適用する。

- NACLを理解する（NACLがステートレスであり、VPCフローログにどのように反映されるかを知っている）
- VPCフローログとそれが提供する情報を理解する　
- Route53のルーティングポリシー とそのユースケースを理解する加重遅延ルーティングポリシーに焦点を当てる
- CloudFront とユースケースを理解する（ヒント：S3キャッシング）
- 自動スケーリングを使用したELBを理解する
- GurdDuty、Inspector、AWS Application DiscoveryService
- DBパスワードを安全な読み込み→Secret Maneger
- IDおよびアクセス管理
- IAMの役割とユースケースを理解する
- IAMのベストプラクティスを知る
 
## 6. 高可用性、フォールトトレランス、およびディザスタリカバリ
- マルチ AZ アーキテクチャとマルチリージョンアーキテクチャのどちらが適切かを決める。
- 高可用性、拡張性、およびフォールトトレランスを実装する方法を決める。
- 業務ニーズ (例: RTO/RPO、コスト) に基づいて適切なサービスを決める。
- ディザスタリカバリ戦略を設計および自動化する方法を決める。
- 障害点の観点から展開を評価する。

- S3パーミッション（ACL認証済みユーザーはすべての認証済みユーザーにアクセスを提供。アクセスを制御する方法）
- 地域全体のS3ディザスタリカバリ（クロスリージョンレプリケーション）
- パフォーマンスを向上させるためのCloudFrontキャッシュについて
- HA(High Availability)およびディザスタリカバリのスナップショットを使用したEBSバックアップ
- リードレプリカとグローバルデータベースを使用してAurora DR＆HAを知る
- 障害発生時にフェイルオーバーとレイテンシーに基づいてルーティングさせるのをRoute53でどう設定するのか。
- 指定のRPO/RTOでセカンダリリージョンでサービスを展開する。
- ENI for HA、ユーザーデータ、プリベイクされたAMIを理解して、インスタンスの開始時間を短縮します
- Amazon Linux 2イメージ（ヒント：オンプレミスでのAmazon Linuxの動作の複製が可能になります）
- スナップショットと共有
- AutoScalingライフサイクルイベント
- 自動スケーリングを使用したブルー/グリーンの展開　
- 新しい起動構成、新しい自動スケーリンググループ、またはCloudFormation更新ポリシーを使用
- ECS イメージの更新による監視と展開を理解する
- 統合ツール CloudWatchとSNSおよびLambdaの統合が通知にどのように役立つか
- 特定のデプロイid スキップされる原因はなにか
- リージョンで持ちたいデータとグローバルで持ちたいデータがAuroraにあるけどどう対応するか
- バケットに変更があったけどStorage Gateway ファイル共有に反映されてない。
- カスタムスクリプトを実行しているがCREATE_COMPLETEにならない何を確認したらいいか
- ファイルの入ったS3バケットが定義されたCloudFromationがあるけど削除できない何故
- RDSのイベント通知をSNSでサブスクライブして、Lambdaでスナップショットをコピーする方法は知っておく。クロスリージョンレプリカが選択肢にない場合はこれが正解になることがある。
- ECSで最新のイメージを利用する。
- SystemsManagerでEC2とオンプレのマシンを管理する。
- オンプレミス側でどのような設定が必要なのか理解しておく

## サービスカット

# BlackBlet
- AWS CloudFormation　https://www.youtube.com/watch?v=Viyqh9fNBjw
- AWS CloudFormation deep dive　
- Amazon EC2 Auto Scaling and AWS Auto Scaling　
- AWS CodeStar & AWS CodePipeline　https://www.youtube.com/watch?v=31-w23SdOAs
- CodeCommit & CodeArtifact https://www.youtube.com/watch?v=rqy_wluHDe0
- Elastic Beanstalk　
- OpsWorks　
- Trusted Advisor
- GurdDuty　
- Inspector　
- Systems Manager　 https://www.youtube.com/watch?v=UXSbh4Wsp7c
- Storage Gateway　
 
## CodeCommit
- コードのデプロイメントを処理する方法。（ヒント：プロジェクトと環境の同じリポジトリとブランチ）
- 機密性の高い情報をpushしてしまった際に、セキュリティチームへ通知し、漏洩した機密情報を自動で削除する
- 権限設定　

## CodeBuild
- パフォーマンス
- buildspec.yaml
- 出力物の暗号化

## CodeDeploy
- ライフサイクルイベントフックを理解する
- デプロイメント構成を理解する（ヒント：カナリアおよびリニアデプロイメントをサポート）
- 再デプロイとロールバックを理解する
- Blue/Green
- AppSpec.yamlの各セクションに何を書くか
- ValidateServiceは聞かれるかも
- Auto Scaling Groupへのデプロイ
 
## DynamoDB
- パフォーマンスの向上–ベストプラクティス（ヒント：キーの選択に関する1つの質問）
- キャッシュ用のDynamoDBAuto Scaling＆DAX
- DynamoDBでTTLが過ぎたデータを自動でアーカイブする方法

## AutoScaling
- ライフサイクルフック
- 終了ポリシー、スケールイン保護
- CodeDeployとの連携

## ElasticBeanstalk
- Elastic Beanstalk全体を理解する–アプリケーション、バージョン、および環境
- カスタムAMI
- .ebextension/に含めるファイル内で記述できるキーについての理解
- デプロイ戦略
- CNAMEの入れ替えによるBlue/Green Deploy
- CFnのスタックセットを使用する。
- Dockerサポートを提供

## OpsWorks
- OpsWorks全体を理解する　スタック、レイヤー、レシピなど
- OpsWorksライフサイクルイベントを理解する。Configureイベントとその使用方法。
- OpsWorksの展開戦略を理解する
- OpsWorksの自動修復とその通知方法を理解する

## Lambda
- Lambda関数のエイリアス
- Lambda AliasはRouting Configを使用したカナリアデプロイメントをサポートすること
- APIGateway＋Lambdaで新しいバージョンに対して徐々にトラフィックを流す
- 設定を偶発的に変更されたときに自動修復方法はCloudWatchEventで拾ってLambdaで設定変更
- Lambda沢山動かして遅い場合にrunoder指定デ並列実行

## Service Catalog
- Service CatalogによるAWS利用制限

## Systems Manager
- AWS Systems Manager 
- パラメーターストア
- パッチマネージャー

## 結果
合格