AWS認定 - クラウドプラクティショナー -

#### ◼️概要
AWS認定のクラウドプラクティショナーの
資格取得に向けて、復習に見返せるようにと
自分用の学習用メモです。

##### ▶︎ 学習に使用したもの
▪︎ [AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー](https://aws.amazon.com/jp/application-discovery/)という緑色の参考書
▪︎ Udemyで出している[この問題だけで合格可能！AWS 認定クラウドプラクティショナー 模擬試験問題集](https://www.udemy.com/course/aws-4260/)

##### ▶︎ 学習期間
３週間くらい
1日の学習時間は平日が 3~4時間、土日は頑張れるだけです（笑）


##### ▶︎ 試験
2021年4月24日に取得
試験のレベルとしては巷では比較的イージーと言われていましたが、
個人的には結構迷う問題が多々あり…正直にいうと落ちたかなぁっと思っていました。

僕のようにAWSほぼ触った事がありませんって方という初見の方には、
参考書のみでの合格は難しいかもです。

---


#### ◼️コンピューティングサービス
##### ▶︎ Amazon EC2
ー Amazon EC2は、Amazon Elastic Compute Cloud の略で頭文字が Eと2つのCなので、
EC2と呼ばれています。AWSクラウドでサイズが変更出来るコンピューティングキャパシティー/
仮想サーバー領域を提供します。サイズが変更出来るというのは、需要に応じて性能も台数も
伸縮自在に柔軟に使う事が出来るという事です。
>
作成した仮想サーバーを <font color="red"><b>1インスタンス</b></font>といい、ユーザーは Amazon EC2の使用により、
ハードウェアに事前投資する必要がなくなり、アプリケーションをより速く開発及びデプロイ
出来ます。

###### ◻️ インスタンスの種類
▪︎ オンデマンドインスタンス
通常のEC2インスタンス
長期的なコミットメントなしで1時間ごとの単位でコンピューティング容量を支払う事が
出来る為、必要な時に必要なインスタンスを起動出来ます。

▪︎ リザーブドインスタンス
１年間または３年間の長期使用をする場合に、オンデマンド料金に比べて大幅な割引価格(最大75%)が
適用され、特定のアベイラビリティーゾーンで使用するキャパシティーを予約出来ます。

▪︎ Dedicated host
EC2インスタンス容量を完全に一つのアカウントのユーザー専用として利用できる物理サーバー

▪︎ ハードウェア専有インスタンス
同じAWSアカウント内で部署ごとにグループでハードウェアを共有される可能性があるインスタンス

▪︎ ベアメタル
アプリケーションは基盤となるサーバーのプロセッサーとメモリーに直接アクセス可能なインスタンス

<br>
##### ▶︎ AWS ADS
ー AWS ADSは、[AWS Application Discovery Service](https://aws.amazon.com/jp/application-discovery/)の略で、オンプレミスデータセンターに
関する情報を収集する事により、移行プロジェクト計画を支援するサービスです。

提供されるデータとして、サーバーの設定データ、使用状況データ、動作データが収集され、
提供されます。これにより、移行の為のワークロードを十分に把握する事が出来ます。
>
収集されたデータが暗号化によって保護されて、AWSで稼働した場合の
総所有コスト（TCO）の見積もりや、AWSへの移行計画に使用出来ます。



##### ▶︎ AWS SMS
ー AWS SMSは、[AWS Server Migration Service](https://aws.amazon.com/jp/server-migration-service/)の略で、サーバーの移行を支援する
サービスです。オンプレミスの VMware vSphere、Microsoft Hyper-V/SCVMM、または
Azure仮想マシンの、AWSクラウドへ移行を自動化します。

また、サーバー仮想マシンをクラウドホストの Amazonマシンイメージ（AMI）として
段階的にレプリケートし、Amazon EC2にデプロイします。AMIを使用すると、クラウドベースの
イメージを簡単にテストして更新した上で、本番稼働環境にデプロイできます。
>
AWS SMSは、ライブサーバーのボリュームを AWSに自動的にレプリケートし、
AWSマネジメントコンソールを介して数回クリックするだけで、大規模なサーバーの
移行作業を簡単に調整出来ます。


##### ▶︎ Amazon ECS
ー Amazon ECSは、Amazon Elastic Container Service の略で、
Dockerコンテナ※ をサポートする拡張性とパフォーマンスに優れた完全マネージド型の
コンテナオーケストレーションサービスです。これにより、コンテナ化されたアプリケーション
を AWSで簡単に実行及びスケールする事が出来ます。
>
※ Dockerコンテナ
それぞれにOSを動かさなくてはならない仮想マシンと異なり、1つのOSで稼働するので、
プロセッサやメモリの消費量は少なく、ストレージの使用もわずかです。その為、仮想マシン
に比べて起動時間が短く、同じ性能のハードウェアであれば、より多くのコンテナを同時に
動かす事が出来ます。

###### ◻️ その他のAmazonコンテナサービス
▪︎ Amazon Elastic Container Registry（Amazon ECR） 
開発者がDockerコンテナイメージを、AWSクラウドに保存・管理する機能
ECR は ECSに統合されているため、開発から本稼働までのワークフローを簡略化出来ます。

▪︎ Amazon Elastic Kubernetes Service（Amazon EKS）
コンテナ化されたアプリケーションのデプロイ、管理、スケール機能

<br>
##### ▶︎ AWS Lambda
###### ◻️ 概要
ー AWS Lambdaは、インフラの設定なしに、直接コードを記述して設定する事で
アプリケーションを容易に構築できるコンピューティングサービスです。
Lambdaは、ソースコードをさえあればプログラムを容易に実行出来る為、サーバー構築や
環境の準備をする事なくアプリケーションの構築をする事が出来ます。
>
必要なのは、コードを書いてLambdaにアップロードするだけです。
そうする事でアプリケーションを構築出来ます。

ー サーバーを常にプロビジョニングせず、必要な時にアプリケーションを実行出来る
<b>サーバレスコンピューティングエンジン</b>となれるマネージドサービスです。
>
これはサーバレスアプリケーションを利用する際にEC2の代わりに
利用出来るサービスです。

###### ◻️ Lambdaの課金要因
AWS Lambdaでは、消費したコンピューティング<font color="red"><b>時間に対しての使用料金<b></font>と、
コードが実行されるミリ秒ごと、およびコードが<font color="red"><b>トリガーされた回数<b></font>に対して課金されます。
なので、過剰にプロビジョニングされたインフラストラクチャに料金を支払う事はありません。

<br>
##### ▶︎ AWS Fargate
ー [AWS Fargate](https://aws.amazon.com/jp/fargate/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc&fargate-blogs.sort-by=item.additionalFields.createdDate&fargate-blogs.sort-order=desc)は、Amazon Elastic Container Service（ECS）と
Amazon Elastic Kubernetes Service（EKS）の両方で動作する、<b>コンテナ向け
サーバーレスコンピューティングエンジン</b>です。

Fargate ではサーバーのプロビジョンと管理が不要となり、設計段階からの、
アプリケーション分離によりセキュリティを強化します。また、インスタンスの選択や
クラスター容量のスケーリングなしに、適切なコンピューティング容量が割り当てられます。
>
基本操作が必要なのはコンテナのみで、料金もコンテナの分のみです。
その為、アプリケーションの構築および運用に集中することができます。

##### ▶︎ スティッキーセッション
ー スティッキーセッションは、ELBがサーバ（インスタンス）にリクエストを振り分ける際、
特定のCookieを確認する事で、特定のクライアントからのリクエストを特定のサーバに
紐付ける事が出来る機能です。

つまり、Cookieに割り振り先を記録させる事でELBは、ユーザー毎に紐付けるサーバを特定し
アクセスさせ続ける事が出来ます。
>
スティッキーセッションは、AWS専門用語では無く､ロードバランサーが
持つ一般的な機能の名称です｡

##### ▶︎ Amazon Elastic Transcoder
ー Amazon Elastic Transcoderは、Amazon S3に保存したメディアファイルをユーザーの
再生デバイスに対応した形式のメディアファイルに変換するサービスです。

Amazon Elastic Transcoderを使用しする事で、高度なスケーラビリティ、使いやすさ、
高い費用効率性を実現する設計で、開発者や企業はメディアファイルをその元のソース形式から
スマートフォン、タブレット、PCなどのデバイスで再生可能できるバージョンに変換できます。
>
Amazon Elastic Transcoderの料金モデルはコンテンツの再生時間をベースとしており、
変換対象メディアの出力の長さ（分単位）で課金されます。例えば、ビデオ変換後の出力が
30分である場合は、30分の変換処理に対して課金されます。
また、フルマネージドサービスなのでストレージの管理やソフトウェアの管理も不要です。

##### ▶︎ AWS Global Accelerator
ー AWS Global Acceleratorは、世界中の顧客に提供するアプリケーションの
可用性とパフォーマンスを改善するネットワークサービスです。

ネットワークのレイテンシーは、ユーザーデータがホップする必要のあるネットワークの数と、
AWSアプリケーションオリジンへのパスに沿って利用可能な帯域幅によって決まります。
これらのネットワーク変数のために、インターネットの混雑状況による接続の遅延やデータの
損失が発生します。AWS Global Acceleratorは、高度なネットワーキング機能と専用の
AWSグローバルネットワークを組み合わせ、アプリケーションネットワークのパフォーマンスを
最大60％向上させます。
　　　　　　　<img width="500" alt="ファイル名" src="https://i.gyazo.com/188b9adbbf7288030a8da5ec06657c97.png">
　　　　　　　<img width="500" alt="ファイル名" src="https://i.gyazo.com/be16c071c9dd1d93e5abfb1c7967651b.png">
　　　　　　　引用元：AWS認定公式


TCP接続では、エンドポイントではなく、ユーザーに最も近い AWSエッジロケーションで終了する為、
データ転送がグローバルで加速します。AWSネットワークに接続すると、自動ルーティングにより、
ユーザーのトラフィックはリージョンやアベイラビリティーゾーンの中で最もパフォーマンスの高い
AWSオリジンに転送されます。UDPワークロードの場合、AWSネットワークはトラフィックが急増中に
発生するパケット損失とジッターを回避する為に必要なグローバル規模での容量を提供します。


<br>
##### ▶︎ Amazon Kinesis 
ー Amazon Kinesis では、ストリーミングデータをリアルタイムで収集、処理、分析する事が
簡単になる為、インサイトを適時に取得して新しい情報に迅速に対応出来ます。

Amazon Kinesis は、アプリケーションの要件に最適なツールを柔軟に選択出来るだけでなく、
あらゆる規模のストリーミングデータをコスト効率良く処理する為の主要機能を提供します。
機能は以下の通りです。
###### □ Amazon Kinesis Video Streams
Amazon Kinesis Video Streamsを使用すると、分析、機械学習、及びその他の処理の為に、
接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングできるようになります。


###### □ Amazon Kinesis Data Streams
Amazon Kinesis Data Streamsは、数十万規模のソースから、秒あたり数ギガバイトものデータを
継続的にキャプチャできる、スケーラブルで耐久性に優れたデータストリーミングサービスです。


###### □ Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehoseは、データストリームを AWS データストアにキャプチャ、変換、
ロードし、既存のビジネスインテリジェンスツールを使って準リアルタイムで分析できる最も容易
な方法です。


###### □ Amazon Kinesis Data Analytics
Amazon Kinesis Data Analyticsは、新しいプログラミング言語や処理フレームワークを習得する事なく、
SQL や Apache Flinkでデータストリームをリアルタイムで処理できる最も簡単な方法です。


<br>
---
<br>


#### ◼️ネットワークサービス
##### ▶︎ Amazon VPC
ー Amazon VPCは、Amazon Virtual Private Cloudの略で、
AWS クラウドの論理的に分離されたセクションをプロビジョニングし、ユーザーが定義した
仮想ネットワーク内の AWSリソースを起動する事が出来ます。 


<br>
##### ▶︎ CloudFront
ー Amazon CloudFrontは、開発者にとって使いやすい環境で、低レイテンシーの高速転送により
世界中の視聴者に安全に配信する高速コンテンツ配信ネットワーク（CDN）サービスです。

###### □ リクエスト時の処理
1、ユーザーがウェブサイトまたはアプリケーションにアクセスして、イメージファイルや 
HTMLファイルなどの 1つまたは複数のファイルをリクエストします。

2、DNSは、リクエストを最良の方法でそのリクエストに対応出来る
CloudFront POP（Point Of Presence）エッジロケーション (通常はレイテンシーの点から
最寄りの CloudFront POP) にルーティングします。

3、その POPで、CloudFrontはリクエストされたファイルがキャッシュにあるかどうかを
チェックします。ファイルがキャッシュにある場合、CloudFrontはそのファイルをユーザーに返します。
ファイルがキャッシュにない場合は、次のように処理します。

4、CloudFrontはリクエストを、ディストリビューションで指定されている内容と照合し、
ファイルのリクエストを、対応するファイルタイプに応じてオリジンサーバーに転送します。
たとえば、イメージファイルであれば Amazon S3バケットに、HTMLファイルであれば
HTTPサーバーに転送します。

5、そのオリジンサーバーが、エッジロケーションにファイルを返します。

6、オリジンサーバーから最初のバイトが到着した直後に、CloudFrontはそのファイルを
ユーザーに転送し始めます。また、CloudFrontは、そのファイルに対する
次回のリクエストに備えて、そのファイルをエッジロケーションのキャッシュに追加します。

###### □ コストに影響する要素
▪︎ データ転送アウト (GB 単位)
Amazon CloudFrontエッジロケーションから転送されたデータの量

▪︎ リクエスト料金 (1 万件あたり)
リクエスト（HTTPまたはHTTPS）の数と種類、およびリクエストが行われた地域位によって決定

▪︎ トラフィックの分散

###### □ セキュリティ
CloudFrontにはAWS Shield Standardが組み込まれており、
常時稼働で DDoS 防御を提供しています。


<br>
##### ▶︎ AWS Storage Gateway
ー AWS Storage Gatewayは、オンプレミスアプリケーションのデータを、
AWSクラウドストレージとシームレスに接続する事が出来るハイブリッドストレージサービスです。 
つまり、オンプレミスのデータをAWS上に拡張させることが出来るようになる為、AWSの
高い可用性を享受でき、バックアップや災害復旧などを使用する事が出来ます。
>
データは、標準で暗号化されて転送されます。
AWSの環境下にある為、AWSのモニタリング、セキュリティ等のツールを
活用する事が出来ます。

ー ストレージゲートウェイの種類（ファイルゲートウェイ、ボリュームゲートウェイ、
テープゲートウェイ）によって S3、EBS、Glacierと格納先が異なる。

<img width="600" alt="ファイル名" src="https://i.gyazo.com/8c35eac664848cdcef6630af0eb448e5.png">


<br>
##### ▶︎ AWS Direct Connect
ー AWS Direct Connectとは、AWSが提供する専用接続サービスであり、
ユーザーのネットワーク環境からAWSまでインターネットを経由せずプライベートな接続を
確立する事が出来ます。

AWSに接続するといっても、直接AWSのデータセンターに接続するとい訳ではなく、
ユーザーがAWSのパートナーの設備に用意された相互接続ポイント（AWS Direct Connectロケーション）
つまりアクセスの中継地を介してAWSと間接的に接続する、という仕組みになっています。

　<img width="600" alt="ファイル名" src="https://i.gyazo.com/e9ab663a5b52cc3178dc4b27658c2da4.png">
　　引用元：AWS認定公式

<br>
--
<br>

#### ◼️管理サービス
##### ▶︎ AWS Systems Manager
ー AWS Systems Managerは、オンプレミス環境とAWSリソースの統合運用サービスです。
AWSでご利用のインフラストラクチャを可視化し制御します。Systems Managerを使用すると、
統合ユーザーインターフェイスでAWSの様々なサービスの運用データを確認でき、AWSリソース全体に
関わる運用タスクを自動化出来ます。

###### □ 運用作業項目を一元的に表示
AWS Systems Managerでは、リソースグループの運用データが 1つのダッシュボードに
表示される為、複数の AWSコンソールを行き来する必要がないので、リソースグループごとの
運用データをすばやく確認出来る。その為、アプリケーションに影響を与える可能性のあるリソースの
問題をすばやく特定出来ます。

リソースは、アプリケーション、アプリケーションレイヤー、本番環境及び開発環境など任意の
グループ種別で作成出来ます。

###### □ 容易なオートメーション
AWS Systems Managerは、様々なAWSリソースの管理及びデプロイなどタスクを自動化
またはスケジュールします。また、安全な制御を提供する仕組みが組み込まれている為、
新しい変更を段階的にロールアウトし、エラーが発生時には自動的に停止出来ます。

###### □ 可視性と制御性の向上
AWS Systems Managerを使用すると、アプリケーションを検出し、
運用データ (デプロイステータス、CloudWatchアラーム、リソース設定、運用上の問題など)を
表示し、アプリケーションのコンテキストで修復アクションを実行出来ます。



<br>
##### ▶︎ Amazon CloudWatch
ー Amazon CloudWatchは、AWSリソースと AWSで実行するアプリケーションの
モニタリングサービスです。様々なメトリクスやログを収集・追跡する事が出来ます。

また、EC2インスタンスのモニタリングを有効化する事で、
CPU使用率を監視する事が出来ます。
>
Amazon CloudWatchは、EC2インスタンスを起動しただけで、CPU使用率のような
メトリクスデータの収集やログの情報を収集する事が出来ます。また、各サービスから
収集したメトリクス値に対してアラームを設定する事が出来ます。


##### ▶︎ AWS CloudTrail 
ー AWS CloudTrailは、アカウント内全てのAPI呼び出しのログ（<font color="red"><b>ユーザアクティビティログ</b></font>）
を取得ツールです。なので、ユーザー、ロール、または AWSのサービスによって実行された
アクションは、全てイベントとして記録されます。
イベントには、AWSマネジメントコンソール、AWS CLI、及びAWS SDK と APIで実行された
アクションが含まれます。

ー AWSアカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行う為の
サービスです。
>
AWSインフラストラクチャ全体でアカウントアクティビティをログに記録し、
継続的に監視し、保持出来ます。 
>
ユーザーごとのアクティビティを確認するもので、リソースメトリクスのモニタリングは
出来ません（それを行うのはAmazon CloudWatch）


##### ▶︎ AWS Config
ー AWS Configは、AWSリソースの<font color="red"><b>設定変更の評価、監査、審査</b></font>出来るサービスです。
Configでは、AWSリソースの設定が継続的にモニタリング及び記録され、望まれる設定に
対する記録された設定の評価を自動的に実行出来ます。なので、Config を利用する事で
リソース間の関連性を追跡し、変更する前に、リソースの依存関係を確認出来ます。 

AWS Configは、コンプライアンスと脆弱性のリアルタイム監査を提供するサービスの1つです。
>
リソース単位の監視であり、ユーザー事のアクティビティを確認するものではありません。

<br>
##### ▶︎ Amazon SNS
ー Amazon SNSは、Amazon Simple Notification Serviceの略で、
マイクロサービス、分散型システム、及びサーバーレスアプリケーションの分離を可能にする
高可用性で耐久性に優れたセキュアな完全マネージド型 pub / subメッセージングサービスです。
商品の購入、アカウント情報の変更、コンテンツ更新の通知など、ユーザーアクションを
トリガーにしたメッセージ通知が行えます。

ー Amazon SNSは、高スループット、プッシュベース、多対多のメッセージングの為の
トピックを提供します。Amazon SNSは、送信側がトピックを作成して受信側をポリシー指定
する事で制御された非同期通信を実現する事が出来ます。
>
能動的に情報を送信するフルマネージド型のプッシュ型通知サービスで、
コンポーネント間のメッセージングを処理をする事が出来ます。

<br>
##### ▶︎ Amazon SQS
ー Amazon SQSは、Amazon Simple Queue Serviceの略で、
完全マネージド型の<font color="red"><b>メッセージキューイング</b></font>サービスです。Amazon SNS同様<font color="DarkBlue"><b>サーバーを
用意しなくても</b></font>アプリケーションからの通知を可能にします。

ー SQSを使用すると、あらゆる量のソフトウェアコンポーネント間でメッセージを送信、保存、
受信が出来ます。メッセージが失われる事はなく（<font color="green"><b>永続性があり</b></font>）、アプリケーションコンポーネントを
切り離して独立して実行（<font color="green"><b>疎結合化</b></font>）できる為、システム全体のフォールトトレランスが向上し、
安全で耐久性があるホストされたキューを提供します。

ー 全てのメッセージの複数のコピーは、必要な時にいつでも利用出来るように、
複数のアベイラビリティーゾーンにわたって冗長的に保存されています。
>
プッシュ方式ではなくポーリング処理（プル型）による通知を実施する為、
メッセージを送信するというよりも、受け取ったメッセージ（キュー）を処理する
サービスです。


##### ▶︎ Amazon SES
ー Amazon SESは、Amazon Simple Email Serviceの略で、
Eメールの送信が得意で、Eメールで充実したコンテンツを届けたい場合に利用する
Eメール送信サービスです。Eメール以外の通知手段は選択出来ません。

<br>
##### ▶︎ Amazon EMR
ー Amazon EMRは、Amazon Elastic Map Reduceの略で、
ビッグデータのクラウドプラットフォームで、Apache Hadoop や Apache Sparkなどの
ビッグデータフレームワークを使用して大量のデータを処理及び分析する<b>マネージド型</b>
クラスタープラットフォームです。

また、キャパシティのプロビジョニングやクラスターの調整などの時間の掛かるタスクを
自動化する事で、ビックデータ環境の設定、運用、スケーリングが簡単に行えます。
>
EMRでは、従来のオンプレミスソリューションの半分以下のコスト、
標準的な Apache Sparkの 3 倍以上の速さで、ペタバイト規模の分析を実行できます。


<br>
##### ▶︎ Amazon Athena
ー Amazon Athenaは、インタラクティブなクエリサービスで、Amazon S3内のデータを
標準SQLを使用して簡単に分析出来ます。


<br>
##### ▶︎ Amazon Cognito 
ー [Amazon Cognito](https://aws.amazon.com/jp/cognito/)を使用すれば、ウェブアプリケーション及びモバイルアプリに、
ユーザーのサインアップ / サインイン機能とアクセスコントロール機能を追加出来ます。

これにより、ユーザーはモバイル等からAWSリソースにアクセスして利用する事が
可能となります。ウェブアプリケーションやモバイルアプリケーションの認証、許可、
ユーザー管理をサポートしています。
>
ユーザーは、ユーザー名とパスワードを使用して直接サインインするか、
Facebook、Amazon、Google などのソーシャルIDプロバイダーを通じて
サインインする事が出来るようになります。

<br>
##### ▶︎ CloudFormation
ー CloudFormationは、クラウド環境内の全てのインフラストラクチャリソースを
コードに記述してプロビジョニングする環境自動化サービスです。

CloudFormationでは、プログラミング言語またはシンプルなテキストファイルを使用して、
あらゆるリージョンとアカウントで、アプリケーションに必要とされるすべてのリソースを、
自動化された安全な方法でモデル化し、プロビジョニング出来ます。
<br>
CloudFormationの使用する利点
###### □ テキストファイル化
インフラストラクチャ全体をテキストファイルでモデル化出来ます。
このテンプレートは、インフラストラクチャの唯一の真実の情報源になります。
これにより、組織全体で使用されるインフラストラクチャコンポーネントを標準化する事ができ、
構成のコンプライアンスと迅速なトラブルシューティングが可能になります。

###### □ オートメーション
リソースを安全で繰り返し可能な方法でプロビジョニングし手動のアクションを実行したり、
カスタムスクリプトを記述したりする事なく、インフラストラクチャとアプリケーションを構築
及び再構築できるようにします。CloudFormationは、スタックを管理する時に実行する
適切な操作を決定し、エラーが検出された場合に変更を自動的にロールバックします。

###### □ コード化
インフラストラクチャをコード化すると、インフラストラクチャを単なるコードとして扱う事が
出来ます。任意のコードエディターで作成し、バージョン管理システムにチェックインし、運用環境に
展開する前にチームメンバーとファイルを確認出来ます。

###### □ リソースの展開
すべての地域とアカウントにわたってアプリケーションに必要なすべてのリソースを、
自動化された安全な方法でモデリングしプロビジョニング出来ます。


<br>
--
<br>


#### ◼️データベースサービス

##### ▶︎ AWS DMS
ー [AWS DMS](https://aws.amazon.com/jp/dms/)は、AWS Database Migration Serviceの略で
AWS DMSを利用する事で、データベースの機能に悪影響を与えず、
オンプレミスからAWSへデータベースの移行が出来ます。

移行中でも、ソースデータベースで行われる全ての変更はターゲットに継続的に
レプリケートされる為、移行プロセスの間もソースデータベースは完全に利用可能な
状態に保たれ、データベースを利用するアプリケーションのダウンタイムを最小限に
抑えられます。
>
データベースの移行は、Oracle から Oracle といった同種間の移行や、
Oracle から Amazon Aurora のような、異なるデータベースプラットフォーム間の
移行をサポートしています。

<br>
##### ▶︎ Amazon ElastiCache
ー ElastiCacheは、クラウド内のインメモリデータストア、またはキャッシュを簡単に
デプロイ、操作、及びスケーリング出来るようにする完全マネージド型の Redis及び Memcache
を提供するウェブサービスです。 
>
⚫️ [Redis](https://aws.amazon.com/jp/dms/)
データベース、キャッシュ、メッセージブローカー、キューとして使用できる高速の
オープンソースインメモリデータストア。
特徴は以下の通り
▪︎ pub/sub 機能を提供
▪︎ 全てのデータ操作は排他的
▪︎ バックアップと復元の機能がある
▪︎ シングルスレッドで動作するインメモリキャッシュデータベース
>
⚫️ [Memcache](https://aws.amazon.com/jp/redis/)
高パフォーマンスキャッシュやセッションストアとして使用できる、使いやすい
分散型インメモリ key-valueストア。
特徴は以下の通り
▪︎ データベースなどのオブジェクトをキャッシュする
▪︎ キーストアに永続性がない
▪︎ バックアップと復元の機能がない
▪︎ 複数のデータベースを利用できない
▪︎ マルチスレッドで動作するインメモリキャッシュデータベース
>
詳細な機能比較については、[Redis 対 Memcached](https://aws.amazon.com/jp/elasticache/redis-vs-memcached/) を参照

このサービスは、ディスクや SSDに保存するデータベースに依存するのではなく、
データストレージ用のメモリ内のデータストアから情報を取得出来るようにする事で、
ディスクにアクセスする必要性を省き、ミリ秒未満での応答時間を可能させるように
設計されました。

最も頻繁にアクセスされるデータをキャッシュとしてインメモリデータベースで処理する事で、
1秒あたり、数百万リクエストに対してミリ秒以下の応答時間を提供します。


>
Elasticacheは、インメモリ型のキャッシュDBであり、NoSQL型のデータベース


<br>
##### ▶︎ Amazon Aurora
ー [Amazon Aurora](https://aws.amazon.com/jp/rds/aurora/?aurora-whats-new.sort-by=item.additionalFields.postDateTime&aurora-whats-new.sort-order=desc)は、AWSがクラウドに最適化して再設計した
MySQL及びPostgreSQLデータモデルをサポートしているクラウド専用の
<b>分散型</b>のリレーショナルデータベースです。
>
標準的なMySQLデータベースと比べて最大で 5 倍、
標準的なPostgreSQLデータベースと比べて最大で 3 倍高速で、
商用データベースと同等のセキュリティ、可用性、信頼性を 10 分の 1の
コストで実現します。


ー Amazon Auroraは、分散型で耐障害性を備えているので、リードレプリカを作成する事が
出来ます。リードレプリカにより読み込みの負荷をマスターデータベースから軽減出来ます。また、
<font color="green"><b>最大でリードレプリカを<font color="red"><b>15台まで</b></font>作成</b></font>（RDSではリードレプリカは5台まで）できたり、3つの
アベイラビリティーゾーン（AZ）間でのレプリケーション作成や他のリージョンにリードレプリカを
作成する事でにより、優れたパフォーマンスと可用性を発揮します。

>
リードレプリカとは、更新用データベース（マスター）からレプリケーションされた
参照専用のデータベースです。アプリケーション側で更新用データベースと
参照用データベース（リードレプリカ）を使い分けることにより負荷分散を実現します。
　　　　<img width="400" alt="ファイル名" src="https://i.gyazo.com/ffcce1eb5ae0879c98d9befedd955a38.png">

これらの理由から、AWSでは大規模で高性能なRDBを構築したい場合は、Auroraを
使用する事が推奨されています。


<br>
##### ▶︎ Amazon Redshift
Amazon Redshiftは、高速でシンプルかつ費用対効果の高いデータウェアハウスサービスです。
小規模利用からペタバイト単位の構造化データまで、複雑な分析クエリを実行でき、
スケールアウトも容易に行う事が出来ます。形式はリレーショナルデータベースとなります。


<br>
##### ▶︎ DynamoDB
グローバルに展開されたアプリケーションに対して高速の読み取り/書き込み処理を提供するDynamoDBのレプリケーションの仕組み
Amazon DynamoDB グローバルテーブル は、マルチリージョンにマルチマスターデータベースをデプロイするソリューションです。
どこにいても、低レイテンシーでデータにアクセスすることができます。
>
読み込み処理にデフォルトでは、結果整合性モデルです
しかし、オプション機能で追加する事で、強い整合性モデルも利用出来ます。





<br>
--
<br>

#### ◼️ストレージサービス
##### ▶︎ Amazon EBS
ー Amazon EBSは、Amazon Elastic Block Storeの略で、
AWS クラウド内で Amazon EC2インスタンスと組み合わせて使用できる、
高性能で可用性に優れたブロックストレージボリュームです。
>
ストレージとは、インターネット上でファイル保管用のディスクスペースにデータを
保存する事で、ボリュームとは コンピュータから見た外部記憶装置の数え方または
管理するときの単位を表します。
>
例えば、PCから見た外部記憶装置とはハードディスクやCD-Rの事を指します。
なので、EBSとは EC2インスタンスから見たインターネット上のファイル保管外部記憶装置
という事です。

###### □ EBSの機能
▪︎ 機能として、ポイントインタイムスナップショットの作成をします。
もしEBSが使えなくなってしまった場合、EBSの中のデータも消失してしまいます。
そうならない為に、EBSでは EBSボリュームのデータを Amazon S3にバックアップして、
データ消失を防ぐ事が出来ます。これは自動的にレプリケートされます。
>
スナップショットは増分バックアップです。つまり、最後にスナップショットを作成した
時点から、ボリューム上で変更のあるブロックだけが保存されます。

▪︎ EBSは、インターネットからアクセスができない、完全な内部サーバー向けの
ストレージとしてセキュリティを強化する事が出来ます。<b>複数のEC2インスタンス
から共有して利用する事は出来ません。</b>

###### □ EBSのコスト
▪︎ ボリューム
すべてのEBSボリュームタイプのボリュームストレージは、ストレージを解放するまで、
月ごとにプロビジョニングするGBの量によって課金されます。

▪︎ スナップショット
スナップショットストレージは、Amazon S3に保存するデータ容量に基づいています。 
また、EBSスナップショットのコピーは、リージョン間で転送されるデータの量に基づいて
課金されます。スナップショットがコピーされると、標準のEBSスナップショット料金が
宛先リージョンのストレージに適用されます。

▪︎ アウトバウンドのデータ転送量
アプリケーションから転送されるデータ量に基づいて課金されます。
発信データ転送料金は階層化されています。


<br>
##### ▶︎ Amazon EFS
ー Amazon EFSは、Amazon Elastic File Systemの略で、
<b>複数のEC2インスタンスで共有してして使用出来る</b>ファイル
ストレージサービスです。
>
S3と、異なるのはインターネットからアクセスが出来ず、EBSと同様に完全な
内部サーバー向けのストレージで、基本はEC2インスタンスからアクセスして利用します。


<br>
##### ▶︎ AWS DataSync
ー AWS DataSyncは、オンプレミスストレージと AWS ストレージサービス間（Amazon EFS）の
間でデータを迅速かつ簡単に移動する事が出来るマネージド型のデータ転送サービスです。
DataSync を使用する事で、AWS との間でアクティブなデータセットの移行が可能になります。

また、DataSync を使用すれば、オープンソースツールと比べて最大 10倍の速度で、アクティブな
データセットを AWS Direct Connect またはインターネット経由で転送できます。
アプリケーションを変更したり、API に書き込む必要はありません。


<br>
##### ▶︎ Amazon S3
ー Amazon S3は、Amazon Simple Storage Serviceの略で、S3つ並ぶ事から
S3と呼ばれています。インターネット対応の完全マネージド型の大量データの保存向け
ストレージサービスです。

ー また、ユーザー側で設定しなくても、AWS側でストレージリソースを
スケールアップ / ダウンして、変動する需要に対応しますので、先行投資やリソースの
調達サイクルが不要です。


###### □ ストレージ容量
S3では、保存したいデータ容量を決めておく費用がありません。
データを入れる為の<font color="red"><b>バケット</b></font>を生成しデータを<font color="red"><b>オブジェクト</b></font>としてアップロードする事で
<font color="green"><b>無制限にデータを保存</b></font>する事が出来ます。その為、残りのストレージの空き容量を気にする事、
容量が足りないという理由でデータを削除するといった事も起こりません。
>
1つファイルについては、<font color="red"><b>5TB</b></font>までという制限は存在します

###### □ 耐久性
オブジェクトは複数のアベイラビリティゾーンに自動的に冗長化して保存される為、
99.999999999%（イレブンナイン） のデータ耐久性を実現するように設計されています。


###### □ アクセス
インターネット経由（HTTP / HTTPS）でモバイルアプリケーションやデバイスからの
データなど、どこからの、どのような量のデータでも保存と取得が可能で世界中何処からでも
アクセスする事が出来ます。


###### □ S3の機能
▪︎ Amazon S3 Transfer Acceleration
エッジロケーションを利用してクライアントと S3バケットの間で、長距離にわたる
ファイル転送を高速、簡単、安全に行えるようにする機能

▪︎ S3マルチパートアップロード
大きなファイルを複数の部分に分割して、S3パケットにアップロードする機能

▪︎ S3パブリックアクセス
S3内に保存したオブジェクトを公開する機能

▪︎ S3 Select
シンプルなSQL文を用いて、オブジェクトからデータの一部分のみを取り出す事が
出来る機能

▪︎ S3 イベント通知
S3 バケットで特定のイベントが発生した時に通知を受け取ることができる機能
>
S3イベントに、Lambda関数を設定して、ファイルがアップロードされるたびに
Lambda関数を呼び出し、DynamoDBテーブルにファイル名を追加するコードを実行させる
というような使い方が出来る

###### □ S3のコスト
▪︎ Amazon S3 Standard
ストレージクラスを指定しないと場合の<b>デフォルト</b>のストレージクラス。
アクセス頻度の高いデータ向けに高い耐久性、可用性、パフォーマンスの
オブジェクトストレージを提供します。
低レイテンシと高スループットを実現する為、クラウドアプリケーション、動的Webサイト、
コンテンツ配信、モバイルおよびゲームアプリケーション、ビッグデータ分析など、
様々なユースケースに適しています。

▪︎ Amazon S3 Standard IA
アクセス頻度が少ないオブジェクトを格納するストレージ。 
<b>低頻度アクセス用ですが、読み込みはすぐに出来る為、突然の利用にも対応できます。</b>
コストは標準ストレージよりも安価になりますが、リクエスト料金（データをアップロード）が
標準ストレージよりも高くなります。

▪︎ Amazon S3 One Zone-IA
アクセス頻度が少ないオブジェクトを格納するストレージ。
<b>単一アベイラビリティーゾーンに保存する事によってコストを節約します。</b>
オンプレミスデータのセカンダリバックアップコピーの保存や、コンプライアンスや
災害復旧の目的で別の AWSリージョンに、既にレプリケートされているストレージなど、
再作成可能なアクセス頻度の低いデータを保存するのに適しています。
コストは、S3 Standard-IA より 20%低コストで保存出来ます。

▪︎ Glacier
長期保管で、あまりアクセスされず、アーカイブするクリティカルなデータを
保存するのに適しています。

▪︎ Amazon S3 Intelligent-Tiering
このストレージクラスには、高頻度と低頻度という2つのアクセス階層が
組み込まれています。アクセスパターンをモニタし、連続30日間アクセスされていないデータを
低頻度のアクセス階層に移動します。もしそのデータが後にアクセスされた場合は、
高頻度アクセス階層に自動的に戻されます。すなわち、アクセスパターンが変化するような
状況でも性能の影響なく、運用のオーバーヘッドもなく、データ取り出しの為の料金もなく、
利用料金を節約する事が出来ます。


###### □ アクセス権限
▪︎ アクセスコントールリスト（ACL）
▪︎ パケットポリシー
▪︎ IAMポリシー

###### □ バケット命名規則
▪︎ 名前はすべてのAWSで一意である必要があります
▪︎ 名前の長さは3～63文字でなければなりません
▪︎ 名前には小文字、数字、ハイフンのみを含めることができます
▪︎ 名前はIPアドレスとしてフォーマットできません


<br>
##### ▶︎ AWS Snowball
AWS Snowballは、物理デバイスを使用して、ペタバイト級の大容量データの転送を
行う事が出来るサービスです。オンプレミスからAWSへのデータを転送する際に利用
されます。
※ Snowballは古いサービスであり、現在は他のサービス利用が推奨されています。
>
◻️ AWS Snowmobile
超大容量データを AWSに移動するために使用できるエクサバイト規模の
データ転送サービスで、100 PBまで転送可能です。
>
◻️ AWS Snowball edge
データ移行とエッジコンピューティングのデバイスです。2つのオプションがあります。
その中で、Snowball Edge Storage Optimizedは、ブロックストレージと Amazon S3と
互換性のあるオブジェクトストレージを提供し、80TBの容量があります。



<br>
--
<br>

#### ◼️セキュリティ機能

##### ▶︎ セキュリティグループ
ー セキュリティグループは、EC2インスタンスとの通信を行う際のトラフィックを
制御するファイアウォールです。<font color="red"><b>各インスタンス事</b></font>に個別のファイアウォールを設定出来ます。

ー VPC内でインスタンスを立ち上げた場合、<font color="green"><b>1つのインスタンスに対して同時に
<font color="red"><b>最大５つまで</b></font>のセキュリティグループを設定</b></font>する事が出来ます。

ー セキュリティグループは<font color="red"><b>ステートフル</b></font>です。なので、
許可されたインバウンドトラフィックに対応した戻りのトラフィック（アウトバウンドトラフィック）は、
<font color="DarkBlue"><b>アウトバウンドルールの有無にかかわらず、許可されます。</b></font>


###### □ セキュリティグループのルール
▪︎ 許可ルールの指定が可能
▪︎ 拒否ルールの指定は不可能
▪︎ インバウンドトラフィックとアウトバウンドトラフィックのルールを個別に指定可能
>
セキュリティグループには、デフォルトで全てのアウトバウンドトラフィックを許可する
アウトバウンドルールと、同じセキュリティグループに割り当てられたインスタンスからの
インバウンドトラフィックのみ許可されています。

<br>
##### ▶︎ AWS WAF
ー AWS WAFは、Web Application Firewallの略で、
セキュリティ侵害、リソースの過剰消費といった一般的なウェブの脆弱性から
ウェブアプリケーションまたは API を保護するマネージド型のWebアプリケーション
ファイアウォールです。

###### □ 利用料金
AWS WAFは、基本利用料金は無料ですが、どのトラフィックをWebアプリケーションに
許可、またはブロックするかなどの定義は入っていませんので、ルールをカスタムする場合は
下記のWebセキュリティルールに基づいて課金されます。

▪︎ Webアクセルコントールリスト数の基づく課金方法
▪︎ Web ACLごとの追加するルール数に基づく課金方法
▪︎ 受け取るWebリクエスト数に基づく課金方法
>
AWS Shield Advancedを利用する事で AWS WAFのサービスが
無償で無制限に使用可能になります。


###### □ 適用範囲
AWS WAFの適用範囲は、以下のサービスから選択します。

▪︎ CDN ソリューションの Amazon CloudFront
▪︎ 発生する負荷を分散する Application Load Balancer
▪︎ REST API を使用する為の Amazon API Gateway
▪︎ GraphQL API 用の AWS AppSync 



<br>
##### ▶︎ ネットワークACL
ー ネットワークACLは、1つ以上のサブネットの<font color="red"><b>インバウンドトラフィックとアウトバウンド
トラフィックを制御するファイアウォール</b></font>として動作する、VPC用のセキュリティの
オプションレイヤーです。サブネット内のEC2インスタンスへのネットワーク制御にも
利用できますが、あくまでもサブネット向けの制御であり、EC2インスタンス自体の
トラフィック制御にはセキュリティグループを利用します。 

ー　ネットワークACLは、デフォルトで全てのトラフィックを許可しています。
許可設定も拒否設定もする事が可能ですが、拒否するものを設定するブラックリストを作成して
使用するのが一般的です。

ー　ネットワークACLは、<font color="red"><b>ステートレス</b></font>です。
許可されているインバウンドトラフィックに対する応答は、アウトバウンドトラフィックのルールに
従います (その逆の場合も同様です)。

ー　ネットワークACLには、低い番号から順に評価される番号付きのルールリストが含まれ、
ネットワークACLに関連付けられたサブネットのインバウンドトラフィックまたはアウトバウンド
トラフィックが許可されるかどうかを指定します。ルールに使用できる最も高い番号は 32766 です。


<br>
##### ▶︎ IAM
ー IAMは、アクセス権限管理を行うサービスです。
AWSのサービスやリソースへのアクセスを安全に管理できます。IAMを使用すると、
AWSのユーザーとグループを作成および管理し、アクセス権を使用してAWSリソースへの
アクセスを許可および拒否できます。 

<br>
##### ▶︎ AWS Organizations
ー アカウントのグループを作成し、カスタムスクリプトや手動プロセスなしでも、
正しいポリシーがアカウント全体に適用されるように、グループにポリシーを適用できます。
個人ではなく、グループのAWSアカウントなどの組織単位での制御に利用します。


<br>
##### ▶︎ AWS STS
ー AWS STSは、AWS Security Token Serviceの略で、
AWS STSを使用する事で、AWSのサービスへのアクセスに使用出来る一時的な、
限定権限認証情報を取得できます。

その名前が示す通り、一時的な限定権限認証情報とは、使用期限が短くなっており、
有効期限は数分から数時間に設定出来ます。認証情報が失効すると、AWSはそれらを
認識しなくなり、またその認証情報によって作成された APIリクエストによるあらゆる
タイプのアクセスが許可されなくなります。
>
認証情報が有効な期間のみ使用出来るので、不要になった際に明示的に
取り消したりする必要がない点でメリットがあります。

<br>
##### ▶︎ AWS X-Ray
ー AWS X-Ray を使用する事で、開発中や本番環境、分散アプリケーション（マイクロサービス
アーキテクチャを使用して構築されたアプリケーションなど） を 分析及びバグの発見が出来ます。
また、アプリケーションやその基盤となるサービスの実行状況を把握し、パフォーマンスの問題や
エラーの根本原因を特定して、トラブルシューティングを行えます。

###### □ X-Rayの特徴
▪︎ リクエスト動作の確認
AWS X-Rayでは、アプリケーション全体で転送されるユーザーリクエストがトレースされます。
アプリケーションを構成する個々のサービスやリソースによって生成されるデータが集計される為、
アプリケーションの実行状況をエンドツーエンドで確認出来ます。

▪︎ アプリケーションの問題の検出
AWS X-Rayを使うと、アプリケーションの実行状況についてのインサイトを収集して、
問題の根本原因を調べる事が出来ます。X-Rayのトレース機能を使ってリクエストのパスをたどると、
パフォーマンスの問題の原因と、問題に関係するアプリケーション内の場所を特定出来ます。

▪︎ アプリケーションのパフォーマンスの向上
AWS X-Rayを使うと、パフォーマンスのボトルネックを特定出来ます。
X-Rayのサービスマップにより、アプリケーション内のサービスやリソースの関係を
リアルタイムで表示出来ます。高いレイテンシーが発生している場所を簡単に検出し、
サービスのノードとエッジのレイテンシーのディストリビューションを視覚化し、アプリケーションの
パフォーマンスに影響を与える特定のサービスやパスをドリルダウンする事が出来ます。

<br>
##### ▶︎ Amazon GuardDuty
ー Amazon GuardDuty は、悪意のある操作や不正な動作を継続的にモニタリングする
脅威検出サービスで、AWSアカウントとワークロードを保護します。Amazon GuardDutyでは、
VPCフローログ、AWS CloudTrail イベントログ、DNSログ、悪意のあるIP やドメインのリストなどの
脅威インテリジェンスフィード及び機械学習を使用して、AWS環境内の予期しない潜在的に
未許可なアクティビティや悪意のあるアクティビティを識別します。