AWS クラウドプラティクショナー　流し見用 part3

●VPC peering
VPCピアリング接続は、２つのVPC間でプライベートなトラフィックのルーティングを可能にするネットワーキング接続
どちらのVPCのインスタンスも、同じネットワーク内に存在しているかのように、相互に通信できる
VPCピアリング接続は、自分のVPC間、別のAWSアカウントのVPCとの間、または別のAWSリージョンのVPCとの間に作成できる
リージョン間VPCピア接続を利用すると、シンプルで費用対効果のたかい方法により、リージョン間でリソースを共有したり、地理的な冗長性のためにデータをレプリケートしたりできる
しかし、中国リージョンでは利用できない

●ElasticCache
完全マネージド型のRedisおよびMemcachedを利用することができる
普及しているオープンソース互換のインメモリデータストアを、シームレスにデプロイ、運用、スケールできる
高速にリアルタイム処理が必要な場合はインメモリキャッシュを利用してデータ処理を高速化することが推奨されている

●ルーティングポリシーを設定方法
Route53では、複雑なルーティングはトラフィックフローを用いて順序を設定することで、ルーティングポリシーを設定することが可能

●CloudFront
世界中のエッジロケーションを利用してCDNとして利用できるグローバルなコンテンツ配信サービス
特徴：GZIPによる圧縮化によってより高速な処理が可能、独自ドメインをCloudFrontに設定することもできる
ユーザが明示的にリージョナルエッジキャッシュを選択することができない

●NATゲートウェイ　特徴
NATゲートウェイはプライベートサブネットへインターネットからアクセスを可能にするため、パブリックサブネットに設置します

●VPC(Virtual Private Cloud)は３つの機能を使用してセキュリティを強化する
・セキュリティグループ
関連づけられたEC2インスタンスのファイアウォールとして動作し、インバウンドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールする
・ネットワークアクセスコントロールリスト（ACL）
関連づけられたサブネットのファイアウォールとして動作し、インバウンドトラフィックとアウトバウンドトラフィックの両方をサブネットレベルでコントロールする
・フローフラグ
VPCのネットワークインターフェイスとの間で行き来するIPトラフィックに関する情報をキャプチャする

●RDS Storage Auto Scaling
RDS Storage Scalingでは、増加するデータベースのワークロードに応じてストレージ容量がダウンタイムなしで自動的にスケールする事が可能

●フェイルオーバー
壊れたときの備えとして予備も一緒に動かしているシステムにおいて、主となる方がぶっ壊れたときに自動的に予備の方に切り替えてくれる機能のこと
RDSの場合、それフェイルオーバーは手動で実施できる

●リードレプリカ
読み込み専用として利用することができるマスターの複製データベース
制限台数
RDS：５台
Aurora：15台

●ElasticCacheにおけるMemcachedの特徴
・シンプルなデータ型が必要
・複数のコアまたはスレッドを持つ大きなノードを実行する必要がある
・システムでの需要の増減に応じてノードを追加または削除するスケールアウトおよびスケールイン機能が必要
・データベースなどのオブジェクトをキャッシュする必要がある
・キーストアの永続性は必要ない
・バックアップと復元機能が必要ない
・複数のデータベースを利用できない

全体データ操作を排他的に行えるのはRedisの特徴

●DynamoDBデータ整合性モデルについて
DynamoDBはデフォルトで結果整合性モデル
データ読み取り時のGet,QueryのオプションでConsistentRead属性をtrueにすることで、強整合性の読み込みを行う事ができる。
アプリケーションがDynamoDBテーブルにデータを書き込み、HTTP200応答（通信OK)を受け取ると、書き込みが開始され、継続される
データはすべてのストレージの場所で結果的に整合性が保たれる（通常は1秒以内）
結果整合性のある読み込み（EventuallyConsistent Reads)と強整合性のある読み込み（Strongly Consistent Reads)では読み込み時のコストが約2倍ほど強整合性が高くなるため、状況に応じて最適なオプションを選択する必要がある
・結果整合性のある読み込み
DynamoDBテーブルからの読み込みオペレーションの応答には、最近書き込みオペレーションの結果が反映されていない事や応答に古いデータが含まれる場合がある
少し時間が経ってから読み込みリクエストを繰り返すと、応答で最新データが返される
・強い整合性のある読み込み
強い整合性のある読み込みをリクエストすると、DynamoDBは成功した以前の全ての書き込みオペレーションからの更新が反映された最新データの応答を返す
強力な整合性のある読み込みは、ネットワークの遅延または停止があった場合には利用できなくなる可能性がある
グローバルセカンダリインデックス（GSI）では、強力な生合成のある読み込みはサポートされていない

●DataSync
Aws DataSyncはオンプレミスストレージとAmazon EFSの間でデータを迅速かつ簡単に移動する事ができるマネージド型のデータ転送サービス
DataSyncを使用すればオープンソースツールと比べて最大10倍の速度で、アクティブなデータセットをAWS Direct Connectまたはインターネット経由で転送できる
データ移行のためにアプリケーションを変更したり、APIに書き込む必要がない
DataSyncはネットワークファイルシステム（NFS)共有、Server Message Block(SMB)共有、セルフマネージドオブジェクトストレージ、AWS Snowcone,Amazon SimpleStorageService(s3)バケット、Amazon ElasticFileSystem(EFS)ファイルシステム、そしてAmazon FSx for Windows ファイルサーバーファイルシステムの間でデータをコピーできる

●Amazon kinesis Data Firehose
Amazon kinesis Data Firehoseはデータ蓄積に向けてデータ変換や配信を行う
ストリーミングデータをデータレイクやデータストア、分析ツールに確実にロードする最も簡単な方法
ストリーミングデータをキャプチャして変換し、Amazon S3,Amazon Redshift, Amazon Elasticsearch Service,Splunkにロードして、現在使っているビジネスインテリジェンスツールやダッシュボードでほぼリアルタイムに分析する事ができる

●AWS LambdaのPullモデルとpushモデルについて
・pullモデル
アプリケーションからストリーム（DynamoDBストリームなど）へイベントを発行し、AWS Lambdaはそのストリームからイベントを取り出した上で、コードを実行する
・pushモデル
ユーザのアプリケーションからAWS Lambdaへ向けてイベントを発行しコードを実行する
例えば、S3でバケット通知をAWS Lambdaへ向けて設定し、その後Lambdaでコードを実行できる

●Amazon ElasticCache
Amazon ElasticCacheはインメモリデータストアやインメモリキャッシュとして機能し、ミリ秒単位の応答時間が必要とされるような要求の厳しいアプリケーションへ対応する事ができる
webアプリケーションの場合は行動データの高速解析などの高性能なデータ処理が必要な場合に利用する
・Webアプリケーションのセッションデータ等の高速解析処理にはNoSQL型のデータベースによる高速処理が最適となる
・ELT処理はGlue,Kinesis,EMRなどのサービスが最適

●インメモリデータストア
専用データベースのこと
データをディスクやSSDに保存するデータベースではなく、データストレージ用のメモリに主に依存する
インメモリデータストアは、ディスクにアクセスする必要性を除くことによって最小限の応答時間で済むように設計されいている
全てのデータはメインメモリにのみ保存および管理されているので、インメモリデータベースは処理やサーバー障害によってデータが失われてしまうリスクがある
インメモリデータベースは、ゲームリーダーボード、セッションストア、リアルタイム分析などの、マイクロ秒の応答時間を必要としたり、トラフィクが急増する可能性があるアプリケーションに最適

●NoSQL
非リレーショナルデータベース
SQLだけでないデータベースのこと

●DynamoDBデータ転送の課金について
・同リージョン内の他のAmazon Webサービス間で転送されるデータには追加料金はかからない
・異なったリージョンにデータを転送すると両側が料金を課金することになる

●DynamoDB グローバルテーブル
DynamoDBグローバルテーブルはマルチリージョンにマルチマスターデータベースをデプロイするための完全マネージド型のソリューション
独自のレプリケーションソリューションを構築および管理する必要はない
グローバルテーブルを作成する際、そのテーブルの利用を許可するAWSリージョンをしているする
DynamoDBはこれらのリージョンに同一のテーブルを作成するのに必要なすべてのタスクを実行し、変更中のデータをすべてのテーブルに伝達する
DynamoDBグローバルテーブルは、グローバルに分散したユーザがいる場合などに、大規模にスケールされたアプリケーションを作成できる
グローバルテーブルでは、マルチマスターレプリケーションを世界中のAWSリージョンに自動的に行う事ができるため、ユーザーのロケーションに関わらず、低レイテンシーでデータにアクセスする事ができる
・レイテンシー：データ転送における指標の一つで、転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間のことを指す

●S3設置場所
S3は特定のリージョンを指定してそのリージョン内に直接設置されるため、特定のAZやVPCなどに設置することはできない
同様に特定のサブネットに配置することもできない