AWS SAA試験対策メモ

無事に合格しました！


<h3>SAA試験対策　メモ</h3>

ワンポイント
<b>S3</b>
・デフォルト設定でパフォーマンスの最大化が可能
・CORS(Cross-Origin Resource Sharing)
　別サーバのドメインに対して共有できるようにすること。
　　→Ajax通信を使用したアプリケーションの構築が可能
・特定のIPアドレスからのアクセスはIAMロールで設定。SGでの制御はできない！
・S3は書き込み後の読み取りの強い整合性モデルを利用しているため、反映に誤差が生じることはありません。
・デフォルトで高可用性であり1つのAZに依存していない
・S3のクロスリージョンレプリケーションとはS3のオブジェクトを別リージョンのバケットに自動複製するサービス。
　オブジェクトの登録と同時に実行される。バージョニングが有効化されている必要あり。
・サーバーサイドの暗号化はSSE-S3（暗号化方式はAES-256）。
　暗号化、復号化は自動。暗号化キーの管理に手間がかからない。
　バケットの暗号化によりログの暗号化も自動で実行される。
・Access Analyzerで不正アクセスの確認、アクセス権限の最小化構成のモニタリングが可能
・ストレージクラス分析で適切なデータをいつ適切なストレージクラスに移行するかを判断可能
・全てのデータに対するパブリックアクセスを拒否する場合、S3パブリックアクセス設定機能でブロックを有効化する
・Amazon S3のパフォーマンスを最大化することができる設定
　『日付ベースの順次命名を使用してオブジェクトを保存すること』でアクセス時のパフォーマンスを最大化。
・S3　イベント通知
　SNS、SQS、Lambda 
・マルチアップロード
　CLIでaws s3 cpコマンド


<b>ストレージクラス</b>
・S3 Standard
　標準。アクセス頻度の高いデータ向け
・S3 Intelligent-Tiering
　アクセスパターンが不明または変化するデータに対して自動的にコストを削減する。
　低頻度アクセスのオブジェクトを自動的に低頻度アクセス層に移動できる

・S3 Standard-Infrequent Access (S3 Standard-IA) 
　Infrequency Access＝まれなアクセス
　低頻度アクセス用のストリームタイプ
　IAは標準とOne-zoneの２つがありますが、重要なデータは標準IAを利用することになります。
　1Zoneは永続性なし。


<b>S3 Glacier</b>
アーカイブ最大容量250MB

データ取得時間
　迅速　　－　1～5分
　標準　　－　3～5時間
　大容量　－　5～12時間
※Glacier Deep Archive
　標準　　－　～12時間
　大容量　－　～48時間
　データ保持期間
　最低　　－　90日

<b>Amazon Athena</b>
データ解析が最も容易にコスト最適に実現。サーバレス。
Amazon S3 から直接データに対してSQLクエリ処理が可能

<b>CloudFront</b>
 ウェブアプリケーションのコンテンツ配信処理を向上させる
 ALIASコード 
 ＊S3との連携がポイント！HTTPベース

Amazon S3 Transfer AccelerationでクライアントとS3の間で長距離にわたるファイル転送を高速・簡単・安全に行う。
Transfer AccelerationはCroudFrontのエッジロケーションを利用
CloudFrontのディストリビューションにWAFで作成したWEB ACL（WAFの設定の塊）を関連づけることでアクセス制御が可能
　
　×　CroudFrontにおけるReferer制限を実施する
　○　AWS WAFでRefererによって制御する。
オリジンアクセスアイデンティティ (OAI) と呼ばれる特別な CloudFront ユーザーを作成してアクセス制限が可能

・コストはトラフィックの分散地域、リクエスト数、データ転送アウトにかかる

<b>・AWS Global Accelerator</b>
　1 つ以上の AWS リージョンで実行されているアプリケーションにエッジでパケットをプロキシすることにより、
TCP または UDP を介した幅広いアプリケーションのパフォーマンスを向上させます。
アプリケーションをエッジロケーションで実行。CDNのアプリケーション版。

<b>Amazon EKS</b>
Amazon Elastic Kubernetes Service (Amazon EKS) は、フルマネージド型の Kubernetes サービスです。
Amazon ECSはKubernetes を利用していません

<b>Amazon ECS</b>
Amazon Elastic Container Service (ECS) は、非常にスケーラブルで高性能なコンテナ管理サービスで、Docker コンテナのみ対応。Dockerコンテナサービスです。

<b>AWS Fargate</b>
Amazon ECS と Amazon EKS の両方で動作するフルマネージドサービス(サーバレス)。
管理はAWS側となるため、ユーザーでは不要。

<b>Lambda</b>
最大一時実行ボリューム　512MB
デフォルトアイムアウト時間3秒。最大実行時間は15分
APIゲートウェイはURL(APIエンドポイント)を用意できる
環境変数によって、機密情報を保存できる。

<b>SQS</b>
・メッセージサイズ
　最大　　　　　－　256KB
　※拡張クライアントライブラリを利用すると最大2GBまで
・メッセージ保存期間
　デフォルト　　－　4日
　最小　　　　　－　60秒
　最大　　　　　－　14日
　優先度の設定が可能
　Auto Scalingトリガーを構成する場合はSQSのキューサイズを確認する
・メッセージ上限数
　無制限
・可視性タイムアウト
　重複を無くすことができる。

<b>EBS</b>
・DLM(Data Lifecycle Manager)を使用すると定時バックアップが可能
　EBS自体には、SnapShotのライフサイクル機能、レプリケーションという機能はない
・バックアップは最初はフルバックアップでその後は増分バックアップ
・プロビジョンドIOPSのみ複数のEC2インスタンスをアタッチできる（2020/02～）何百は無理。
・アクセス頻度の低いが大切なデータの保存のストレージにはEBSのコールドHDDを選択
・レガシーアプリの独自のファイルシステムも対応可能。

<b>Amazon KMS</b>
　AWS Key Management Service (KMS) を使用することで、キーを簡単に作成・管理し、幅広い AWS のサービスやアプリケーションで暗号化の使用を制御できるようになります。EBSに対応しており、KMSによりEBSに保存されたデータを暗号化することができます。

<b>S3 における暗号化方式</b>
SSE-S3・・・Amazon S3 がキーを管理。キーは定期的に更新される。（暗号化方式はAES-256）
SSE-KMS・・・ユーザがKMSでキーを生成して管理。
SSE-C・・・ユーザーがキーを準備し管理。

<b>AWS CloudHSM</b>
EUなどの各国の厳しいセキュリティ基準を満たす。

<b>RDS</b>
・マルチAZ配置を有効化することでDBインスタンスの高可用性及びフェイルオーバーサポートを提供
　※RedshiftはマルチAZ構成は不可
・自動的にバックアップを取得しS3に保存
・スナップショットを元にDBインスタンスを作成してリストアが可能。データ復旧、災害対策、システム拡張に利用できる。
・フェールオーバーするとDBインスタンスのCNAMEレコードを自動で切り替える
・RDS Proxy(プロキシ)がアプリ(lambdaとか)とRDSを仲介する
　LambdaをRDSと連携させたいときに利用。利用しないとデータセッションを効率的に継続できない
・RDSの拡張モニタリングを有効化するとCPUの使用率がCloudWatchLogsで表示できる
・シャーディングが可能
・データベースの暗号化はサーバサイド暗号化を有効にする。
・RDS のPostgreSQLはAuroraに比較すると性能が劣る(RDS PostgreSQL＜Aurora)
・Storage Auto Scaling 可能。

<b>AWS Secrets Manager</b>
パスワード保存に使用。パスワードの自動ローテションも可能。

<b>Redshift</b>
・Redshiftを暗号化する。
　AWS KMS と HSM

・WLM(Work Load Management)
　Redshiftのクエリ処理に対して割り当てるRedshiftのリソースを指定する機能。RedshiftのSQSみたいなもの。

<b>DynamoDB</b>
・メタデータ・ユーザー設定・セッションデータや一連のストリームデータを蓄積することでビッグデータ解析に利用できる。シームレス。フルマネージドサービス。強力な整合性。集中管理。
・DynamoDBストリームの有効化により、イベントによるLambda関数起動などが可能（※DynamoDBイベントという機能は無い）S3内は解析不可。
・DynamoDB Accelerator(DAX)はコスト高い！リードレプリカを増設する際はDAXを有効化する必要がある
・Auto Scaling可能
・グローバルセカンダリインデックス
　テーブルとはパーティションキー　または　パーティション/ソートキーが異なるインデックス。
・ローカルセカンダリインデックス
　テーブルとパーティションキーは同じですが、ソートキーが異なるインデックス

<b>CloudWatch</b>
CloudWatchエージェントのインストールによりEC2とオンプレミスサーバーのログの詳細なログを収集し、CloudWatchLogsで取得したログを集約できる。
・カスタムメトリックス・・・メモリ使用率

<b>CloudFormation</b>
テンプレート
例）
NetworkACL
RuleNumber:100
RuleAction:allow
Egress:true　※アウトバウンドトラフィック設定。falseだとインバウンド。
･･･
（以下略）
※port番号
80/HTTP
20/FTP
22/SSH
3389/TCP&UDP リモートデスクトップ接続

・CloudFormation スタックセット
　複数の AWS アカウントやリージョンにリソースを展開
・CloudFormationドリフト
　リソースとCloudFormationテンプレートの内容に乖離があることをドリフトという。

<b>Amazon EMR</b>
  Amazon EMR は、オープンソースのフレームワークである Apache Spark と Hadoop を使用して、膨大な量のデータを迅速かつコスト効率よく処理して分析するサービス。
活用例：マシーンラーニング、データ抽出、変換、読み込み (ETL)、ストリーム分析、リアルタイムストリーミングデータ蓄積、
　　　　インタラクティブ分析（チャート表示など）、ゲノミクス（ゲノム、遺伝子研究のための分析）

<b>ElastiCache</b>
RDSなどのDB（NoSQL型）の読み込み処理を高速化する
可用性、性能は、Memcached　＜　Redis
Redisは静的コンテンツはキャッシュできない。

<b>AWS Elastic Beanstalk</b>
Dockerの仕組みを利用して構成したアプリケーションを展開する
アプリケーションのバージョン管理や状態の監視の詳細を自動化する。運用ダッシュボードとLinux OSのバッチ配布も可能。
ウェブアプリケーションやワーカー環境の構築に利用される
RDSと長時間実行ワーカーに適している。

<b>AWS STS</b>
高セキュリティ。AWSセキュリティトークンサービス（AWS STS）を使用して、信頼されたユーザーを作成し、AWSリソースへのアクセスを制御できる一時的なセキュリティ認証情報を提供することが可能。 一時的な認証情報は、「アクセスキー」と「シークレットアクセスキー」、「セッショントークン」の3つから成立。OpenID Connect互換は、ウェブ ID フェデレーション（ID連携）によるアクセス認証。

<b>Amazon SES</b>
・SNSでもメール通知は可能ですが、特定IAMユーザーへのメール通知に向いており、不特定多数の一般ユーザーへのメール通知にはSESを利用する。

<b>ウェブ ID フェデレーション（ID連携）</b>
必要に応じて一時的な AWS セキュリティ認証情報を動的に要求するようにアプリを構築します。提供される一時的な認証情報は、モバイルアプリケーションで必要とされるタスクの実行に必要なアクセス許可のみを持つ AWS ロールにマッピングされます。

<b>AWS Storage Gateway</b>
オンプレミスから実質無制限のクラウドストレージへのアクセスを提供するハイブリッドクラウドストレージサービス
iSCSI、SMB、NFS

<b>・Amazon S3 ファイルゲートウェイ</b>
　NFSやSMBプロトコルを使用して、S3 でオブジェクトの保存と取得を実行。

<b>・Amazon FSx ファイルゲートウェイ</b>
　SMB プロトコルを使用して Amazon FSx for Windows ファイルサーバーでファイルを保存および取得
　AD統合可能。

<b>・ボリュームゲートウェイ</b>
<b>　＞キャッシュ型ボリュームゲートウェイ(iSCSI)</b>
　　プライマリデータはS3に格納。アクセス頻度の高いデータはローカルにキャッシュする。
<b>　＞保管型ボリュームゲートウェイ(iSCSI)</b>
　　プライマリデータはオンプレに格納。データ全体が低レイテンシーアクセス可能。



_____________________________________________
<b>用語集</b>
<b>・RedShiftの拡張VPCルーティング</b>
　インターネットを介さず、VPC内の全てのデータ移動のトラフィック制御・モニタリングが可能
<b>・プレイスメントグループ</b>
　単一のAZ内のEC2間の通信を高速化。拡張ネットワーキングを選択する必要アリ。
<b>・Amazon FSx for Windows</b>
　ファイルシステムあたり最大2GB/秒のスループット、数百万のIOPS、一貫したミリ秒未満のレイテンシーという高速パフォーマンスが可能な高性能なストレージ。SMBプロトコルで転送を行う。AD統合可能。DFSRをサポート。

　HPC(ハイパフォーマンスコンピューティング)→Amazon FSx for Lustre

<b>・Amazon EFS</b>
　NFSv4プロトコル。POSIX準拠。
<b>・AWS Storage Gateway</b>
　オンプレミスアプリケーションによる AWS クラウドストレージのシームレスな使用を可能にするハイブリッドストレージサービス
　NFS、SMB、iSCSI などの標準ストレージプロトコルを使用
<b>・AWS Cognito</b>
　Webアプリの認証許可、MFA、ユーザー管理をサポート
<b>・AWS Certificate manager(ACM)</b>
　SSL証明書を集中管理する
<b>・AWS DataPipeline</b>
　定期的なデータ移動やデータ処理といったアクティビティのスケジュールを簡単に設定できるウェブサービス
<b>・Snowball Edge Storage Optimized</b>
　AWSとオンプレミス間でのデータ転送。利用可能な領域ー80TB
<b>・Aurora Serverless　(サーバレス)</b>
　Aurora 用のオンデマンドの Auto Scaling 設定。アプリケーションの使用状況に合わせて自動的に起動・シャットダウンを行う
<b>・カスタマーゲートウェイ</b>
　オンプレミス環境とのサイト間VPN接続を利用して、AWSとを接続する際に利用する（カスタマーゲートウェイに静的ルートテーブルを構成）
<b>・AWS Transit Gateway</b>
　VPCが増えたらこちらを使用する。ネットワーク間の連携・管理を効率化する。
<b>・SAML（Security Assertion Markup Language）</b>
　ユーザー情報を一元管理するActiveDirectoryやクラウドサービスとの連携、シングルサインオンを実現
<b>・AWS CloudTrail</b>
　ユーザーのアクティビティ、APIコールのログの取得。AWSアカウントのガバナンス・コンプライアンス・運用監査・リスク監査に利用する。
S3とCloudwatchLogsに配信。すべてのリージョンの証跡を有効可能。IAMを含めるにはグローバルで作成する必要あり。
<b>・AWS Config</b>
　AWS リソースの設定を評価、監査、審査できる構成管理のサービス。AWS ConfigはEC2インスタンスのログは取得できません。
<b>・VPCフローログ</b>
　EC2インスタンスとネットワークインターフェイスとの間で行き来する IP トラフィック情報をキャプチャできる。このデータをCloudWacthlogs またはS3に発行可能。

<b>・AWS Step Functions</b>
　個々のサーバーレスの関数（Lambda、SQSなど）を簡単につないでプロセス処理を実行するアプリケーションを構築する。人間による操作を必要とするような半自動化されたワークフローの作成が可能。SWFは古い。
<b>・AWS Trusted Advisor</b>
　AWS Trusted AdvisorはAWS 環境を最適化することで、コスト削減、パフォーマンスの向上、セキュリティの向上に役立つオンラインリソースです。
<b>・Amazon Inspector</b>
　自動化されたセキュリティ評価サービス
<b>・パイロットライト</b>
　利用可能であるアプリケーションの最小バージョンを準備しておくこと。DBは継続し、残りはAMIやCloud Formationを使用する。
<b>・Route Origin Authorization (ROA) </b>
　既存のホワイトリストを移行
<b>・AWS AppSync</b>
　ビッグデータ解析処理（リアルタイム分析、ランキング処理）
<b>・AWS SAM</b>
　サーバーレスアプリケーション構築用のデプロイツール
<b>・AWS Shield</b>
　マネージド型のDDoS攻撃に対する保護サービス

<b>・AWS Server Migration Service (SMS)</b>
オンプレミスワークロードを従来よりも簡単に、かつ短時間で AWS に移行できるエージェントレスサービス
<b>・AWS Database Migration Service(DMS)</b>
データベースの移行ツール

<b>・AWS DataSync</b>
既存のストレージからEFS,S3,FSxへのデータ移行を効率的に実施

<b>・拡張ネットワーキング</b>
複数のリージョン間の通信向上。HVM　AMIが必要。

<b>・AWS Directory Service</b>
マネージド型ADを作成する。IT管理も減る。


__________



<b>どっちか迷う問題</b>
<b>S3へのアクセス制御</b>
※バケット‥オブジェクトの保存場所
　オブジェクト‥ファイル

<b>トラフィック制御</b>
・セキュリティグループ
　インスタンス間。ステートフル。
　デフォルトはインは許可しない。アウトは許可。
　グループに関連付けられているインスタンス間は通信可能。
　ルールの許可のみ可能。
　全てのルールがすぐに適用
・ACL
　サブネット間　自動化。ステートレス。
　ルールの許可と拒否が可能。
　ルールは順番通りに適用

<b>Cloud formation</b>
 　容易　YAMLファイルまたはJSONファイル
<b>Opsworks</b>
　ムズイ。異なるレイヤーを用意するのに相応しい。ChefレシピやPuppetを利用した環境構築が可能

　
<b>署名付きURL</b>
　署名付きURLを利用する場合は、現在のオブジェクトURLが変更される
<b>署名付きcookie</b>
　現在のオブジェクトURLを変更したくない


<b>Amazon Kinesis</b>
・Streams
　ストリームデータ処理用を収集し、リアルタイム処理するサービス
　Lambda統合し、データ処理可能。

・Firehose
　Lambdaを組み込み、データ変換可能。
　ストリーミングデータをキャプチャして変換しつつ、Amazon S3、Amazon Redshiftに保存するサービス。
　DynamoDBに配信することはできません。

・Analytics
　SQL使用して、ストリーミングデータの分析、実用的なインサイトの取得やリアルタイムなデータ処理対応を実施

<b>DNSレコード</b>
・CNAME
　ドメインを別のドメインにマッピング！DBを自動的にセカンダリDBに切り替える。自動フェールオーバー。
・A (Address)
　IPv4アドレスとドメインをマッピング。グローバルIPアドレスの関連づけを定義するレコード
・AAAA レコード 
　IPv6アドレスとドメインをマッピング。
・ALIAS
　AWSサービスと連携(S3バケット、CloudFront、ELB、Elastic Beanstalk)のエンドポイントのIPアドレスを返答
　物理対応可能なインスタンス

・エイリアスコードを用いてZone Apex（頂上）を設定できる。

<b>ハードウェア専有インスタンス</b>
同じAWSアカウントのインスタンスとはHWを共有する可能性がある物理サーバー
Dedicated Host
完全に1アカウントのユーザー専用として利用できる物理サーバー

<b>VPCエンドポイント</b>
・ゲートウェイ型
　特殊なルーティングを設定し、VPC 内部から直接外のサービスと通信する
　対象サービス…S3/DynamoDB
・プライベートリンク型
　サブネットにエンドポイント用のプライベート IPアドレスを生成し、DNSが名前解決でルーティングする。
　RDSはない。

<b>リザーブド購入</b>
EFSとS3にはリザーブド購入方式はありません。
・EC2リザーブドインスタンス
・RDSリザーブドインスタンス
・ElastiCacheリザーブドキャッシュノード
・DynamoDBリザーブドキャパシティ
・Redshiftリザーブドノード

<b>スポットインスタンス</b>
・永続的　：　スポットリクエストをキャンセルしてからインスタンス終了。
・それ以外：　インスタンス終了のみ

---

<b>メモ</b>
VPC内のEC2インスタンスにアクセスできない要因
VPCのDNS hostnamesオプションが有効化されていない
IGW(インターネットゲートウェイ)がサブネットに設定されていない
パブリックIPアドレスが付与されていない
ネットワークACLの設定でインターネットアクセス許可がない
SG(セキュリティグループ)の設定でインターネットアクセス許可がない nat-gateway-diagram.png

本番環境のインスタンス削除防止法
1.開発者向けのアカウントを作成
2.インスタンスにタグを付与
3.開発環境とのVPCを分割

NATゲートウェイ
IPv4

Egee-Onlyゲートウェイ
IPv6


ALB　レイヤー7 (HTPPS、HTTP)
NLB　レイヤー4(UDP)