AWS入門（よく使われるサービスまとめ）

#１：ネットワークおよびコンピューティング

##リージョン（Region）
クラウドコンピューティングにおける「リージョン」とは、リージョン毎に完全に独立しており、地理的に離れた地域になる。
各 Amazon EC2 リージョンは、他の Amazon EC2 リージョンと完全に分離されるように設計されている。
また、リージョンは最低２つのアベイラビリティゾーン（AZ）で構成される。

##アベイラビリティーゾーン（AZ = Availability Zone）

複数のアベイラビリティゾーンが存在することにより、一つのアベイラビリティゾーンが止まってもほかのアベイラビリティゾーンのおかげでシステムが止まらずに済む。
複数のアベイラビリティゾーンがある事により、AZレベルの障害の影響から保護され、システムの高可用性を確保することが出来る。

##ネットワークサービスについて
###VPC（Virtual Private Cloud）
- 仮想プライベートネットワーク

##コンピューティングサービスについて
###EC2
- 仮想サーバー
- 柔軟な構成と制御

###Lambda
- 使用した分のみ料金が発生
- 管理が不要

###Lightsail
- 下層プライベートサーバーを起動
- 単純なウェブサーバーとアプリケーションサーバーを管理

##EC2のインスタンスタイプとディストリビューション
- 様々なディストリビューションに対応
- OSによって単価は変わる

###インスタンスタイプ

**汎用型(T2、T3、T5、A1)**
迷ったらまずはこれ。
バランスのとれたパフォーマンスで、ウェブサイト、ウェブアプリケーションの開発などに向いている。

>汎用インスタンスは、バランスの取れたコンピューティング、メモリ、ネットワークのリソースを提供し、多様なワークロードに使用できます。>汎用インスタンスは、ウェブサーバーやコードリポジトリなど、インスタンスのリソースを同じ割合で使用するアプリケーションに最適です。 


**コンピューティング最適化(C5、C4)**
ハイCPUパフォーマンス

>コンピューティング最適化インスタンスは、高パフォーマンスプロセッサの恩恵を受けるコンピューティングバウンドなアプリケーションに最適>です。このファミリーに属するインスタンスは、バッチ処理ワークロード、メディアトランスコード、高性能ウェブサーバー、ハイパフォーマン>スウェブサーバー、ハイパフォーマンスコンピューティング (HPC)、科学モデリング、専用ゲームサーバーおよび広告サーバーエンジン、機械学>習推論などのコンピューティング集約型アプリケーションに最適です。



**メモリ最適化(R5、R4、X1)**

>メモリ最適化インスタンスは、メモリ内の大きいデータセットを処理するワークロードに対して高速なパフォーマンスを実現するように設計されています。


**高速コンピューティング(P3、G3)**
ハイエンドGPU

>高速コンピューティングインスタンスでは、ハードウェアアクセラレーター (コプロセッサ) を使用して、浮動小数点計算、グラフィックス処理、データパターン照合などの機能を、CPU で実行中のソフトウェアよりも効率的に実行します。


参考：主なインスタンスタイプ
https://aws.amazon.com/jp/ec2/instance-types/

##ロードバランサー

- 複数のインスタンスにトラフィックを分散
- 正常に動作していないEC2インスタンスを検知して除去するヘルスチェックをサポート
・EC2インスタンスへのHTTP、HTTPS、及びTCPトラフィックへのルーティングと負荷分散をサポート

###ロードバランサの種類
AWSのロードバランサは3種類用意されている。

####Application Load Balancer ( ALB )
- リクエストレベルで動作する（レイヤー7）
- 柔軟なアプリケーション管理
- HTTPとHTTPSトラフィックの高度なロードバランシング

####Network Load Balancer ( NLB )
- 接続レベルで動作する（レイヤー4）
- 卓越したパフォーマンスとアプリケーション用の静的IP
- TCP/UDPトラフィックのロードバランシング

####Classic Load Balancer ( CLB )
古いシステムなので基本的には使わない。


##EC2 Auto Scaling
アプリケーションをモニタリングし、需要に応じてリソース容量を自動で調整する。
耐障害性の向上とコスト削減が期待できる。

###スケールアウトとスケールイン
Amazon Cloud Watchで検知する。
**負荷が増大** → **インスタンスの起動**
**負荷が減少** → **インスタンスの削除**

#２：ストレージとデータベース
データストアとは、「データを溜めておく場所」に該当する何かを指します。
データの種類に応じて適切なデータストアを選択する必要があります。

##Elastic Block Store ( EBS ) 
外付けストレージでSSDまたはHDDが選択できる。
ニーズに合わせて最適なストレージを選択する事ができる。

一貫性のある低レイテンシーのパフォーマンスを提供する。
永続的なブロックレベルのストレージボリューム

- アベイラビリティゾーン内で自動的にレプリケート
- S3にスナップショットを安全に保存

###EBSのボリュームタイプ

- 汎用SSD ( ← 迷ったらこれ )
- プロビジョンド　IOPS SSD
- スループット HDD(st1)
- コールドHDD


##S3 (Amazon Simple Storage Service)

###S3とは
データをオブジェクトとしてバケットに保存する。世界的に一意のバケット名がつけられている。

- PUT/GETその他メソッドで使用する
- HTTPSでアクセスする
- 容量無制限(１ファイル５TBまで)
- 高い堅牢性
- 耐久性 99.999999999%を達成するように設計されている。（イレブンナイン）

###一般的なユースケース

- 静的コンテンツの保存と配信
- 静的ウェブサイトのホスティング
- バックアップと災害対策（DR）
- ビッグデータにおけるデータレイクとして
- その他

##RDS (Amazon Relational Database Service)

- RDB＝リレーショナルデータベース
- データは行と列を持つテーブルで保持
- データにはSQLでアクセス
- トランザクション処理を実行可能
- データベースを特定時点まで復元する(デフォルトで有効)
- マルチAZ配置によってレプリケートできる。

世の中のRDBMSはMySQL、PostgreSQL,MariaDB等だが
RDSを利用する場合、アプリケーションの最適化以外は自動化される。


#3：AWSのセキュリティの基本

##AWS責任共有モデル（重要）
**AWS**
基盤サービス
AWSグローバルインフラストラクチャ
**ユーザー**
顧客情報、プラットフォーム、アプリケーション
オペレーションシステム、ネットワーク、ファイアウォール

##ネットワークセキュリティ
###VPCのネットワーク制御

- ファイアウォール
- ネットワークの経路制御
　VPCもしくはVCCの内外の通信経路を設定する

###セキュリティグループ
特定のセキュリティグループ毎で指定が出来る

##IAM (AWS Identity and Access Management) 

AWS のサービスやリソースへのアクセスを安全に管理するツール。
IAMを使用すると、AWS のユーザーとグループを作成および管理し、アクセス権を使用しアクセスを許可・拒否の設定が可能になる。


###認証と認可の分離

**認証（Authentication）**
・その人が申請した本人か確認

**認可（Authorization）**
・その人がどんなことをしても良いか

#４：AWS Well-Architected フレームワークと料金

##AWS Well-Architected フレームワーク
・クラウド最適化のためのフレームワーク

###クラウド最適化への課題と不安
・既存構成のリフト・シフトで以降するが、クラウド最適化が出来るだろうか。

###AWS Well-Architected フレームワークとは
10年以上の経験、数多くのお客様と作り上げたクラウド設計・運用のベストプラクティス集

- ベストプラクティスを理解ししたうえでビジネス的な判断を実施する為の材料
- 定期的なレビューと改善。

##AWSの料金モデルについて

- 従量課金
高額な前払い費用なしにサービスに対して使った分のみ支払い
- 予約による値引き　など

###AWSの見積もりツール
- AWS Pricing Calculator
https://calculator.aws/
- TCO計算ツール
https://aws.amazon.com/jp/tco-calculator/

##AWSの認定試験について
まずはクラウドプラクティショナー試験から。
数あるAWS試験の中で、いわゆる入門編に位置付けられている認定資格となる。

#参考資料
AWSドキュメント
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/concepts.html
無料デジタルトレーニング
https://aws.amazon.com/jp/training/course-descriptions/
https://www.aws.training/LearningLibrary?filters=language%3A1&tab=digital_courses