【AWS】SAA対策

# 通知機能
- SNS
    - 指定したデバイスにSMSを送信する。
    - アプリケーションの以上発生時などを鳥がとしてアラームを生成する際などに用いる
- SES
    - Eメール機能をAWS上で提供するサービス
    - カスタマーにメールを送るなどが主な用途で、SNSのアラームのように使用することはしない

# インターネット接続
## インターネットGWとルートテーブル
- IGW
    - VPC へアタッチされるされ、インターネットとVPC結びつける
- ルートテーブル
    - サブネット内の通信がどの宛先のネットワークに対して、どのコンポーネント（IGWとかEC2とか）に転送されて欲しいかを設定する
        - 0.0.0.0/0 target=インターネットゲートウェイ
        - サイダー target=local(サブネットを指す)

## 大まかな区分け
- ルーティング
    - IGW → ルートテーブル（サブネットとIGWを繋ぐ）
- ファイアウォール
    - ACL（サブネットのファイアウォール） → セキュリティグループ（サービスのファイアウォール）

# セキュリティ

## セキュリティグループ
- インスタンス単位で設定するファイアウォール
    - インバウンド（デフォルト：すべて遮断）とアウトバウンド（デフォルト：すべて開放）設定がある
- `ステートフル`で、ルールで許可された通信の戻りの通信も自動的に許可されます。
- `セキュリティーIDを設定できるため、ACLより細かな設定が可能`
- 許可するIPを設定するため、特定のIPを弾くことができない

## ネットワークACL
- サブネット単位で設定するファイアウォール
- 各サブネットは必ずいずれか一つのネットワークACLと紐付ける必要がある
- `ステートレス`で、通信の行き（アウトバウンド）と戻り（インバウンド）で、ルールの設定が必要です。
- 許可・拒否するIPを設定できるため、特定のIPを弾くことができる


## IAM (Identity and Access Manegement)
- AWSのサービスにおいて「認証」と「認可」の設定を行う
    - ルートユーザー
    - パワーユーザー
    - IAMユーザー（グループ）
    - IAMポリシー
    - IAMロール

### ルートユーザー
- AWSアカウント作成時に最初に作成される、通常の管理には利用しないアカウント
- 全てのAWSサービスとリソースを使用できる権限を有するユーザー、日常的なタスクでは使用しない
- ルートユーザーにしかできないこと
    - AWSルートアカウントのメールアドレスやパスワードの変更
    - IAMユーザーの課金情報へのアクセスに関するactive/deactivate
    - 他のAWSアカウントへのRoute53のドメイン登録の移行
    - CloudFrontのキーペアの作成
    - AWSサービス（サポート等）のキャンセル
    - AWSアカウントの停止
    - コンソリデイテッドビリングの設定
    - 脆弱性診断フォームの提出
    - 逆引きDNS申請

### パワーユーザー
- IAMユーザーやグループの管理以外の全てのAWSサービスにフルアクセスできるユーザー

### IAMユーザー
- AWSを利用するアカウントに関する「認証」と「認可」

### IAMグループ
- AWSを利用するアカウントに付与できるグループとしての「認証」と「認可」

### IAMポリシー
- IAMユーザや後述のIAMロールにアタッチすることができる、AWSリソースへの操作権限を設定する機能
- JSONで記述する
    - `管理ポリシー`
        - スタンドアロン型
        - 「ポリシー」単体として存在できて、複数のプリンシパルエンティティにつけたり外したりできる
            - `AWS管理ポリシー`
                - 予めAWSによって用意されている管理ポリシー。大まかに各AWSサービスごとにフル権限と読み取り権限が用意されている。
            - `カスタマー管理ポリシー`
                - 利用者が独自に作成する管理ポリシー。ジェネレータで作成するか手書きで作成する。

    - `インラインポリシー`
        - 埋め込み型
        - 「ポリシー」単体では存在できず、プリンシパルエンティティと1対1の関係にある。

### IAMロール
- ユーザーやグループではなく、EC2などのAWSのサービスや他のアカウントに対してにAWS の操作権限を付与するための仕組


## Access Advisor
- IAMエンティティ(ユーザー、グループ、ロール) が最後にAWSサービスにアクセスした⽇付と時刻が表⽰されます

## AWS CloudTrail
- AWS アカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行うためのサービスです。CloudTrail を使用すると、AWS インフラストラクチャ全体でアカウントアクティビティをログに記録し、継続的に監視し、保持できる

## AWS Organization
- 複数のAWSアカウントを統合管理にもちいる
- IAMルートアカウントに実行権はなく、Organizationに用いるルートアカウントを用いることになる


## ACM (AWS Certificate Manager)
- AWSウェブサイトやアプリケーションを保護するパブリックおよびプライベートの SSL/TLS X.509 証明書とキーの作成、保存、更新を行う
- AWSサービスを利用してWEBサイトをSSL化する場合、EC2の手前に`ELBを設置`し、`ELBにSSL証明書をインストール`する


# ELB (Elastic Load Balancer)
- EC2インスタンスのみに対して、リクエスト数やコネクション数が均等になるようにトラフィックを分散
- 集中したアクセスが見込まれる場合には、`NLB以外`は事前申請（Pre-warming）が必要となる
- SSL Termination
    - SSL通信をクライアントとELB間で行うこと、ELBが通信内容を読み込み適切に通信を割り振ることができる
- Connection Draining
    - ELBからインスタンスを切断しても、設定時間の間はインスタンスでの処理を継続しするもの
        - 使用例：インスタンスに以上が発生した際に当該インスタンスを切断したが、切断時に行われていたセッションは事前に設定した時間は継続させる
- Application Load Balancer（ALB）
    - HTTP / HTTPS トラフィックの負荷分散に最適なロードバランサ。Webサイトのロードバランサとして使用するのであれば、このロードバランサを用いる。
    - コンテナ化されたアプリケーションをサポート
    - `L7レイヤー`で負荷分散
    - パスルーティングを用いて、機能別サーバーへの振り分けが可能
- Classic Load Balancer（CLB)  
    - 旧名 = Elastic Load Balancing（ELB）
    - 複数のAmazon EC2インスタンスにおける基本的な負荷分散を行うのに最適なロードバランサ
    - `L4レイヤーとL7レイヤー`で負荷分散
- Network Load Balancer（NLB）
    - `L4レイヤー`で負荷分散
    - かなりの高負荷が期待される場合に選択すると良いが、基本的んはALBを使用するのが一般的
- スティッキーセッション
    - 接続先を維持する
        - 例えば、クッキー等を保持している際にELBによって最初のアクセスしたインスタンスではないインスタンスに振り分けられると、当該クッキーが失われてしまう。これを防ぐ。

## ALB (Application Load Balancer)
- 高可用性の実現をサポート
- 加重ルーティングが可能
- `パスルーティング（URLで振り分け）が可能`
- 証明書管理やユーザー認証のようなセキュリティ
- さまざまなレベルにおけるアプリケーション負荷への柔軟な対応
- アプリケーションの細かなモニタリングと監査


## Classic Load Balancer（CLB)  
- いまとなっては使われるメリットがなさそう

## NLB（Network Load Balancer）
- 高パフォーマンスが必要な環境においての負荷分散に最適とされるロードバランサーモデル

## ELBのアクセスログ収集
- Elastic Load Balancing のオプション機能で、デフォルトでは無効化されている。ロードバランサーのアクセスログの作成を有効にすると、Elastic Load Balancing はログをキャプチャし、圧縮ファイルとして指定した `Amazon S3 バケット内に保存`します。

# Amazon EMR (Amazon Elastic MapReduce ) 
- 大量のデータを迅速、容易に、かつコスト効果よく処理するためのウェブサービス
- 分散処理基盤であるHadoopクラスタの構築と運用、およびHadoopクラスタ上での分散アプリケーションの実行を行う

# Route 53
- ELBと違い、S3やELB、CloudFrontなどをルート先に選択することができる。さらに、Routing Policyの選択も可能(加重ルーティングやシンプルルーティングなと)
- 新規ドメイン名の登録や、ドメインの DNS レコードの管理が行える
- 権威DNSのため、設定したドメイン名以外の名前解決をリクエストしても応答しない
- 機能
    - シンプルルーティング
        - 何も意図せずルーティングを行う
    - 加重ルーティング
        - 複数のインスタンスに対して重み付けをし、その割合で分散する
    - レイテンシーに基づくルーティング
        - レイテンシーが最小になるルーティングを行う
    - DNSヘルスチェック
        - リソースのヘルスチェック状況に基づいてそれぞれ実行するアクションを設定する
    - DNSフェイルオーバー
        - プライマリとセカンダリを分けて、ヘルスチェックに失敗するとセカンダリにルーティングする（なお、セカンダリにはS3に保存した静的ページなどを表示させられる）
    - 位置情報ルーティング
        - 位置情報に基づいてルーティングを行う
- 解決機能
    - ドメイン名からIPアドレスを解決するのはAレコードです。
    - CNAMEレコードは、ドメイン名から別のドメイン名を参照します。
    - MXレコードは、対象ドメイン宛のメール配送先ホスト名を定義するレコードです。
    - NSレコードは、DNSで定義されるそのドメインについての情報の種類の一つで、ドメインのゾーン情報を管理するDNSサーバを定義するものです。


# AMI (Amazon Macine Image)
- インスタンスで使用するOSやEBSなどをイメージ化したもの
- 自身で作成したAMIを使用する
- 上記がなければ、OSから順にAWSのGUIを用いて1から構成していく

# EC2インスタンスのバックアップ
- AMI（Amazon Machine Images）を使用したEC2のバックアップを取得
    - EC2の構成情報やドライブの情報なども再現できる
    - インスタンス作成時にAMIから情報がEBSにコピーされる
- EBSを使用したスナップショット
    - インスタンスを停止し、静止点を設けることが望ましい
    - EC2データのみバックアップ

# EC2インスタンスの起動設定の要素
- AMIのID
- インスタンスタイプ
- キーペア
- 1 つ以上のセキュリティグループ
- ブロックデバイスマッピング

# EC2インスタンスに付与できるタグ数
- 50


# Amazon Inspector
- AWSのEC2 インスタンスにおいて脆弱性診断を自動で行ってくれるサービス

# EC2インスタンスの料金
- オンデマンドインスタンス
    - Amazon EC2上で構築した仮想サーバーの数に応じて料金が発生する、最も基本的なAmazon EC2の料金体系です。
    - 必要となるCPUやメモリ、ストレージに応じて「a1.medium」や「a1.large」といった仮想サーバーを選択します。各サーバーには、時間単位や秒単位で金額が設定されています。こうした金額に応じて、使った分だけ料金が発生するのです。

- リザーブドインスタンス
    - あらかじめ1年分または3年分を支払うことで、割引を受けることができる料金体系です。
    - オンデマンドインスタンスと比較し、最大で75%の割引を受けることができます。
    - 種類
        - スタンダード
            - オンデマンドインスタンス料金に比べて大幅な割引【最大 72%】が適用されます。ただしスタンダードは別の`インスタンスファミリー／OS／テナンシー／支払オプション`にの変更ができません。
        - コンバーチブル
            - オンデマンドインスタンス料金に比べて【最大 54%】の割引が適用されます。
スタンダードに比べると割引率は低くなりますが、同等価格以上のインスタンスへ変更ができるというメリットがあります！

- スポットインスタンス
    - Amazon EC2上で使われていない仮想サーバーをオークション形式で入札し、低価格で利用することができる料金体系
    - 入札した価格より高い価格を提示したユーザーが出た場合などに利用できなくなりますが、オンデマンドインスタンスと比較し、最大90%の割引を受けることができます。

- Dedicated Hosts
    - 物理的なサーバーを占有したいユーザー向けのライセンス形態
    - 強固なセキュリティや企業コンプライアンスが求められるユーザーは、Dedicated Hostsを選択して物理的なサーバーを占有する


# サーバレスアプリケーション
- Amazon Lambda
    - サーバーを必要とせず、実行したい処理（関数など）の実行環境が用意される
    - 一時ボリュームの最大数512MB
    - 実行トリガーとしてAPI GatewayやS3、CloudWatch Eventsなどを指定することができ
    - ユーザーはJava、Node.js、C#、Python, ruby等でコードのみ記述すればよく、サーバーの設定等は必要ない
    - タイムアウト時間や割り当てられるメモリの上限など、いくつか制限がある
    - リクエストの数とコードの実行時間に基づいて課金
    - pushモデル
        - AWSサービスや独自アプリケーションから、AWS Lambda へイベント通知して、コードを実行する
        - コード実行の順序は保証されない
        - 3回リトライする
    - pullモデル
        - アプリケーションなどがイベントをストリームに流し、AWS Lambda はストリームからイベントを取り出し、コードを実行する
        - 一度ストリームに入れることによって、イベントの順序を保たれる
    - LambdaのIAM権限
        - Invocation Roleは誰がファンクションを実行できるかを決定
        - Execution Roleはファンクションができること（どのAWSのリソースにどういったアクションを行えるか）を決定づけます
        - 実際の細かい権限はそれぞれIAMロールとして用意し、割り当てることで実現しています。細やかな権限管理を可能にするため、それぞれ別個のIAMロールを割り当てることが可能となっています。


# API Gateway
- APIの生成から管理まですべてを行うマネージドサービス
    - AWS上でプログラムを実行できる機能であるAWS Lambdaで関数を定義し、API GatewayでAPI名を入力、create apiボタンを押下するとAPIが作成できる
- 最大数十万個のAPI同時呼び出し・受付が可能



# AWS CloudTrail
- AWSアカウントのガバナンス、コンプライアンス、監査を可能にするサービス
- AWS インフラストラクチャ全体でアカウントアクティビティをログに記録し、継続的に監視し、保持する

# 大容量データの移行サービス
- AWS Import/Export
- VM Import/Export

## AWS Import/Export
- AWSは、大容量ストレージを搭載した高性能の物理デバイスを貸し出し、コピーが終わったら返送して、中のデータをストレージサービスの「Amazon S3」に移行するサービス
- `Amazon Glacierからのエクスポート`のみ対象外
    - Snowball
        - クライアント側で暗号化する
    - Snowball Edge
        - コンピューティング能力があり、暗号化やAWS LambdaおよびEC2インスタンス起動による処理ができる

## VM Import/Export
- すでに稼働しているオンプレミスのVMwareなどの仮想マシンイメージを、AWSのコンピューティングサービスであるAmazon EC2インスタンス上に移行できる機能
- オンプレミス環境に構築したVMの環境からAmazon EC2インスタンスへ移行（インポート）する、逆にEC2インスタンスに構築したものをオンプレミス環境へ移す（エクスポート）ことができる


# AWS SDK
- コマンドラインを用いてAWSを操作する
- C++、Go、Java、JavaScript、.NET、Node.js、PHP、Python、Rubyの`9言語`をサポート
- プログラムにAWSのコマンドラインを用いて操作可能にするもの


# データベース
- マネージドサービス
    - ほぼいじることができない反面、パッチあてなどの工数がかからない
- `FSとの連帯はサポートされていない`ため、EC2インスタンスを利用してDBを構成する必要がある
- ストレージサイズの拡張はできるが、縮小はできない
    - データが入った状態なため、縮小ができないということ
- 暗号化対象
    - インスタンス
    - 自動バックアップ
    - リードレプリカ
    - スナップショット
    - ログ
- 暗号化方法
    - クライアントサイド暗号化はできないため、主に下記で暗号化を行う
        - AES-256
        - SSE
        - AWS KMS
- マルチAZ構成
    -` 同一AZ内`に同期的なバックアップを行ったレプリカを置く
- リードレプリカ
    - `5台`まで増設可能、ただし、Auroraは`15台`まで
    - `非同期`のレプリカを作成し、読み込み用として扱う
    - 非同期ではあるが、数msで動機を行う
    - 設置場所は同一AZでも別リージョンでも可能
- Amazon Aurora：RDS
    - `EC2インスタンスを必要とする`
    - クラスターは1つのプライマリと3つのAZに配置されたリードレプリカで構成
- DynamoDB：NoSQL（ドキュメントデータベース）
    - リージョンサービス(複数のAZにまたがって保存される)
    - 項目設定順はテーブル・項目・属性
    - Amazon DynamoDB Accelerator（DAX）
        - マルチAZクラスターにより、毎秒数百万件のリクエストを処理する
        - 「Consistent Read（読み取り一貫性）」のオプションを有効にしていない場合、データの読み取りのタイミングによっては書き込んだデータが反映されていない状態がある
    - 読み込み/書き込みキャパシティーモード（24時間ごとに変更可能）
        - オンデマンド(トラフィック予想ができない場合に用いる)(プロビジョニングより高い)
        - プロビジョニング (無料利用枠の対象)(トラフィックが予測可能な場合などに用いる)
    - DynamoDB Streams
        - クロスリージョンレプリケーションのため有効かが必要
        - DynamoDBに対する項目の追加、変更、削除をイベントとして検出できる機能
        - ログデータは24時間で自動削除されるため、容量を圧迫しない
    - インデックス処理
        - Global secondary index（GSI） は既存のテーブルに追加することが可能
        - local secondary index（LSI）はテーブルの作成時のみに作成
- Amazon S3：クラウドストレージ
- Amazon Redshift：列指向データベース
    - 列指向は大量のデータを高速に検索できる性能
    - `EC2インスタンスや、kinesisが必要`


# S3の同一生成ポリシー回避
- (CORS)Cross-Origin Resource Sharingを使用することで、異なるドメイン内のリソースと通信がおこなえるようになる


# S3(データレイク)に対するクエリ
- Amazon Athena
- Redshift Spectrum

|名称|サーバー|特徴|実行できるクエリ|ファイルフォーマット
|---|---|---|---|---|
|Amazon Athena|サーバレス|リトライ機構がなく、データを絞って高速にスキャンする。|標準のSQLクエリを使用してデータを分析する|TEXTFILEのほか、PARQUET、ORCなどの列指向フォーマットが利用可能|
|Redshift Spectrum|クラスタが必要|大規模データに対して、複数クラスタで動作するため、高速なレスポンスが期待できる。|多数のテーブル間で結合があるような複雑なクエリにも対応可能|Athenaで利用できるものと同様であるが、JSONには未対応


# ビッグデータの格納
- データレイク(S3など）
- データウェアハウス(Redshiftなど）

|名称|扱うデータ|用途|特徴|
|---|---|---|---|---|
|データレイク|ローデータ(手を加えられていないデータ)|データサイエンティスト|高度にアクセス可能、迅速な更新|
|データウェアハウス|処理済みデータ|ビジネス担当者|より複雑、変更のコストが高い

# EC2 Auto Scaling
- Auto Scalingグループに対して`１つの起動構成のみを指摘`でき、作成後に起動構成を変更することが出来ない
- - 手順
    - EC2起動設定(構成)を作成
    - Auto Scalingの作成
        - 上記のEC2起動設定、VPC、サブネット、ヘルスチェック方法、キャパシティ（立ち上げる台数の範囲）を設定して起動
- スケーリングタイプは水平スケーリングを採用し、処理する機器/サーバー台数を増減する
- 起動設定
    - AMI
    - インスタンスタイプ
    - セキュリティグループ
    - キーペア
    - IAMロール
- ヘルスチェック手段は以下のいづれか
    - EC2ステータス
        - インスタンスがrunningかどうかで判断
    - ELB
        - ELBのヘルスチェック機能を用いる
- ターミネーションポリシー
    - OldestInstance/NewestInstance
        - もっとも古いインスタンスや新しい起動時刻のインスタンスなどの順から終了
    - OldestLaunch Configuration
        - もっとも古いインスタンスから終了
    - ClosestToNextInstanceHour
        - 次の課金が始まるタイミングがもっとも近いインスタンスから終了
    - デフォルト
        - OldestLaunch Configuration　→　ClosestToNextInstanceHour　→　ランダムの順番で適用する
- アタッチするインスタンスの条件
    - インスタンスが running 状態であること。
    - インスタンスの起動に使用する AMI が引き続き存在していること。
    - インスタンスが他の Auto Scaling グループのメンバーではないこと。
    - インスタンスは、Auto Scaling グループで定義されているいずれかのアベイラビリティーゾーンに起動されます。
    - Auto Scaling グループにアタッチした標準ロードバランサーがある場合、インスタンスとロードバランサーが両方とも EC2- または同じ VPC にあることが必要です。Auto Scaling グループにアタッチしたターゲットグループがある場合は、インスタンスおよびロードバランサーは両方とも同じ VPC にあることが必要です。
- 機能
    - インスタンスの数を自動で増減できる
    - インスタンスの数は最少、最大を指定する
    - 増減のトリガーはCloudWatchのメトリックスを指定できる
    - 増減のトリガーは時間を指定できる
    - 具体的な利用効果
    - 耐障害性の向上。インスタンス異常時を検出し、インスタンスを終了、新しいインスタンスを起動できる
    - 可用性の向上。複数のAZでAuto Scalingを設定することにより、１つのAZが利用できなくなっても別AZで新しいインスタンスを起動できる
    - コスト効率の向上。EC2インスタンスをオンデマンドで必要な時に、必要なだけを自動で追加・削除できる。リソースが不要な期間はリソースを利用しないことにより、コスト効率が向上する。※オンプレミスでは、ピーク時に合わせたリソースを用意する必要がありましたが、AWSはピーク時リソースを自動で増やすことができます。
- スケーリングポリシー
    - ステップスケーリングポリシー
        - CPU使用率50%なら1台追加、60%なら2台追加、70%なら3台追加といった具合に、スケールする台数を指定できる
    - 簡易スケーリングポリシー
        - 通常のポリシー
    - スケジュールスケーリングポリシー
        - 時間帯などを指定してスケールする


# RDSのAuto Scaling
- DSはAuto-Scalingによるパフォーマンス拡張は実施出来ません。代わりにデータベース容量を拡張することができます。


# RDSのフェイルオーバー
- マルチAZ構成をとる


# AWS CloudFormation
- インフラとサービス環境を構築の際、リソースの設定やプロビジョニングをコード化したテンプレートを作成しておけば、そこからリソースを作成できる
- テンプレートは、JSON形式、またはYAML形式のテキストファイルで作成する
    - ただし、リージョンごとに条件が異なるため、リージョン毎にテンプレートを作成しなければならない場合もある（リージョンが違っても正常に動作する場合もある）
- 利用料金は無料
- スタック
    - テンプレートからプロビジョニングされたリソースの集合
    - リソースはスタック単位で管理しているので、スタックの追加／削除によって、リソースの追加／削除を行うことができる
- 記述内容 (Resourcesは必須項目)
    - Parameters
        - パラメーター設定を定義
    - Description
        - 記述してもしなくてもOK
    - Mappings
        - RegionMap
    - Resources
        - Cidrblock
        - Egress:(falseがインバウンド、trueがアウトバウンド)
        - RuleAction
    - Properties
        - リソースなどの詳細な設定内容を記述する
    - `ポート番号`
        - FTPは20番
        - SSHは22番
        - HTTPは80番
        - HTTPSは443番号

# AWS Data Pipeline
- データの移動と変換を自動化するSQLレベルでの変換は可能だが、細かい変換や集計はできない
    - 例）Amazon RDSからデータ取得し、加工した結果をS3へ保存し、Amazon RDSから取得したデータを消すという一連の処理を自動化する


# Amazon kinesis
- リアルタイムのストリーミングデータをS3やRedShift、Elasticsearchなどのデータストア、分析ツールに配信するAWSのマネージドサービス
- 以下どちらもdynamoDBへの配信はできない
    - Kinesis Data Firehose 
        - 次々と送られる大量のデータを`RedShiftやS3`に流し込むサービス
        - `lambdaと連帯してデータ変換処理を行う`、この内容は完全にAWSのマネージド
    - Kinesis Data Streams
        - 次々と送られる大量のデータをリアルタイムに収集、`次のサービス`に配送するためのサービス
        - シャードと呼ばれる単位で`並列処理`することで大量のストリーミングデータを高速に転送する


# Kinesis Data Analytics
- SQL や Java(Apache Flink) を使ってストリーミングデータに対してリアルタイム分析を行うことが出来るマネージドサービス
- 分析＝SQLクエリと認識して良さそう、データをうまくまとめ直すって感じっぽい


# Amazon Kinesisエージェント
- スタンドアロンの Java ソフトウェアアプリケーションで、データを収集してKinesis Data Firehoseに送信する簡単な方法を提供します。このエージェントは一連のファイルを継続的に監視し、新しいデータを Kinesis Data Firehose 配信ストリームに送信します

# KCL（Kinesis Client Library）
- 自動でAWS Kinesis Data Stream に流れるデータ（レコード）を受信して処理を行うコンシューマアプリケーションを実装するためのAWS謹製のライブラリ
- EC2上に常駐させるなどして処理を行う
-  Java、JavaScript(Node.js)、Python、.NET、Ruby の各言語向けにライブラリが提供されている

# CloudWatch
- フルマネージド運用監視サービス
- 無料で使用できる内容と有料で使用できる内容がある
- PollingではなくPush型
- 種類
    - CloudWatch
        - リソースを監視
        - アラーム状態
            - OK – メトリクスや式は、定義したしきい値を下回っている。
            - ALARM – メトリクスや式は、定義したしきい値を超えている
            - INSUFFICIENT_DATA – アラームが開始直後であるか、メトリクスが利用できないか、データが不足していてアラームの状態を判定できない。
    - CloudWatch Logs
        - インスタンスにエージェントを入れることで各種ログを取得します
        - OSに加えて、アプリケーションのログも対応していて、キーワードでアラート通知させることも可能
        - 「アプリケーションやOSがエラーログ吐いたら管理者のメールに通知」が実現できる
        - Cloudwatch Logsのサブスクリプション機能を利用して、全データをKinesis データストリーム、Kinesis Data Firehose、Lambdaなどに連携Kinesis Data Firehose と Lambda など2つのサービスに連携したり、Kinesis Data Firehose 経由で異なるS3バケットにログを出力したりできる    
    - CloudWatch Events
        - APIのイベントをトリガーに何らかのアクションを実行させる
        - インスタンスのterminate（削除）でアラート通知する、コンソールに特定のユーザがサインインしたときにアラート通知する、ということなんかができる


# Trusted Advisor 
-  AWS で利用している EC2 や RDS などのサービスをコストやセキュリティに関する Best Practice に基づいたアドバイスを自動的に行なってくれるサービス


# Elastic Beanstalk
- プロビジョニング（CloudFormation的な機能）とデプロイ（CodeDeploy的な機能）を実施する`PaaS`
- ELBと Auto Scalingを利用してスケーラブルな構成をデプロイ方式として自動設定することが可能です。ECSなどのDockerにホストされたWEBアプリケーションの展開もサポートしています。
- ELBと Auto Scalingを利用してスケーラブルな構成をデプロイ方式として自動設定することが可能です。また、AWS Elastic Beanstalkによりアプリケーションの展開を構成すれば、アプリケーションのバージョン管理を自動化することもできます。AWS Elastic BeanstalkはAmazon ECSなどのDockerにホストされたWEBアプリケーションの展開もサポートしています。


# Opsworks
- Opsworks for Chef Automate
    - Chefの設定管理や継続的デプロイを目的にした自動化ツール群である「Chef Automate」を実行するための構成管理サービス
- OpsWorks for Puppet Enterprise
    - Puppetのインフラとアプリケーションの管理を自動化できるツール「Puppet Enterprise」をホストする構成管理サービス。サーバーを自動的に修正、更新、バックアップしてPuppetのマスターサーバーを管理する。


# CloudFront
- CDNサービス
- キャッシュサーバがリクエストに応答するため、オリジンサイトはアクセスをアクセス集中を避けることができます。
- OAI(オリジンアクセスアイデンティティ:Amazon S3 コンテンツへのアクセスを制限)
    - 署名付き URL または署名付き Cookie を作成して Amazon S3 バケット内のファイルへのアクセスを制限してから、オリジンアクセスアイデンティティ (OAI) という特別な CloudFront ユーザーを作成して配布に関連付けます。次に、CloudFront が OAI を使用してファイルにアクセスしてユーザーに提供できるようにアクセス許可を構成します。たとえば、ユーザーがコンテンツにアクセスできなくなる日時の制御や、コンテンツへのアクセスに使用できる IP アドレスの制御が可能です。
- 地域制限
    - 有効化することで、特定の場所にいるユーザーからのアクセスを制限することができる

# ElastiCache
- `Memcached`と`Redis`のどちらかを選択
    - Redis
        - シングルスレッドで動作
        - データを永続化可能
        - スナップショットでバックアップを取れる
        - リアルタイムトランザクション、分析処理に向いている
    - Memcached
        - マルチスレッドで動作
        - データを永続化できない
        - フェイルオーバーも復元機能もない
        - 単純なデータトランザクションに向いている
- データをノードのメモリに保存するので非常に高速でデータの出し入れが可能


# AWS Direct Connect
- オンプレミス環境とAWSを専用線で接続するネットワークサービスです。

## Direct Connect gateway
- 複数VPCとのプライベート接続で、VPCは海外のリージョンでもOK

# EBS と EFS　および インスタンスストア
- インスタンスストア以外`有料`
- 全てにおいてバージョニング機能がない
- リージョンを跨いだアタッチはできないので、複製の際にはスナップショットが必要
- EBSはオブジェクトタイプストレージ
- EFSはファイルストレージ
- 接続台数
    - EBS：１台のEC2インスタンスと接続可能
    - EFS：複数のEC2インスタンスと接続可能
    - インスタンスストア：１台のEC2インスタンスと接続可能
- 耐久性
    - EBS：単一のAZ内で冗長化
    - EFS：複数のAZで冗長化
    - インスタンスストア：EC2の停止・終了と共にクリア
- 拡張性
    - EBS：手動でボリューム拡張可能
    - EFS：自動でボリューム拡張可能

- EBSの詳細
    - Gold HDD/スループット:250 MiB/IOPS:250
    - 汎用 SSD/スループット:250 MiB/IOPS:16000
    - スループット最適化 HDD/スループット:500 MiB/IOPS:500
    - プロビジョンド IOPS SSD/スループット:1000 MiB/IOPS:64,000 

- EBSの自動バックアップ（スナップショット）
    - Amazon Data Lifecycle Manager (Amazon DLM)を使用することで、スナップショット取得のライフサイクルポリシーを設定できる
        - スナップショットの作成、保存、削除を自動化する
- EFSの詳細
    - 10 GB/秒 を超えるパフォーマンス、および `500,000 超の IOPS`
    - AWS Backupを用いてバックアップ可能、2020年7月ごろに自動バックアップ機能が追加された様子


# プレイスメントグループ
- `単一AZ内`にEC2を論理的にグルーピングしたもので、インスタンス間の通信を広帯域幅・低レイテンシーで通信することができます。

# WEBサイトのSSL化
- ELBにAWS Certificate Manager（ACM）で発行したssh証明書をインストールする

# AWS Glue
- データの分類や消去、強化などが行える完全マネージド型のサービス
- 複数のシステムからデータを抽出し、抽出したデータを変換／加工した上でデータウェアハウス等へ渡す処理、およびそれを支援する
    - コードの生成ができる
    - データを消去し重複を防げる
    - 開発者のエンドポイント
    - 柔軟なジョブスケジューラーがある
    - データ処理を自動化できる

# セキュリティに関する方針
- OSより下のレイヤーについてはAWSが責任を持ち、OSより上のレイヤーについては利用者が責任を持ちます。

# SQS (Simple Queue Service)
- 受信側がメッセージをSQSに問い合わせてメッセージを取得するPull型のサービス
- 最大サイズは256KB
- ポーリング
    - Amazon SQS キューからメッセージを取得する方法
        - ショートポーリングは、ポーリングされたメッセージキューが空であっても直ちに応答を返します（複数キューを単一スレッドで使用する場合などでは、他のキューを待たせないために使用する）
        - ロングポーリングではメッセージがメッセージキューに達するか、ロングポーリングがタイムアウトになるまで応答を返さない（こちらの方がコストパフォーマンスが優れる）
- キュータイプは2種類
    - 標準キュー
        - 順番が補償されない
        - 1回以上配信されることもある
    - FIFOキュー(First in First out)
        - 配信順序を補償
        - 1回のみ配信
- メッセージ保持期間
    - デフォルトでは4日間
    -  60 秒から 1,209,600 秒 (14 日間) までの範囲で設定可能
- 可視性タイムアウト
    -  SQS のキューに入ったメッセージが処理開始直後に重複して処理されないように、処理中の場合、一時的に他のプロセスからは、メッセージが存在していることを見えないようにする設定（SQSでは、メッセージが受診されても自動的に削除されないため）
    -  メッセージのデフォルト可視性タイムアウトは30秒
        -  最小値は0秒
        -  最大スケールは12時間
-  デッドレターキュー
    -  ずっと残ったメッセージを別キューに移動し、正常に処理できなかったメッセージを隔離する


# SNS
- メッセージは永続でない
- 最大サイズは256KB
- 順番は補償されない
- プッシュ型配信方法
- プロデューサー（送信する側のアプリ）が発行
- コンシューマー（受信する側のアプリ）がサブスクライブする
- 送信側がトピックを作成して受信側をポリシー指定することで制御された非同期通信を実現することができます。


# AWS Trusted Advisor
- 以下についてベストプラクティスと推奨事項を提供する
    - コスト最適化
    - セキュリティ
    - フォールトトレランス
    - パフォーマンス

# VPCの上限
- リージョンにつき上限5
- ただし、AWSへ専用フォームからリクエストすれば、ニーズに応じてリージョンあたり 100 個の VPC を持つことができ


# Elastic IPの上限
- 上限5

# サブネットの上限数
- リージョンにつき上限200

# Amazon EKS
- AWS で Kubernetes を実行するために使用できるマネージド型サービス
    - Kubernetesを一言で言うと、自動デプロイ、スケーリング、アプリ・コンテナの運用自動化のために設計されたオープンソースのプラットフォームです。

# S3の設置場所
- 特定のリージョン

# S3へのアクセス
- バケットポリシー
    - 特定のユーザー単位でのアクセス制御に用いる
- IAMロール
    - 特定IPアドレスが付与されたサービスからのアクセス制御に用いる

# S3の冗長化
- 3箇所のAZでデータをレプリケーション

# S3のストレージクラス
- Standard (高頻度アクセスの汎用ストレージ用）
    - 可用性99.99％
    - 最低30日からの料金設定
- Standard - IA（Infrequency Access）
    - 可用性99.9%
    - 最低30日からの料金設定
- One-zone - IA (長期間使用するが低頻度アクセスのデータ用）
    - 1つのAZに保存するストレージクラス
    - standard及びstandard-IAと比べて一番安い
    - 最低30日からの料金設定
- Glacier（長期アーカイブおよびデジタル保存用）
    -  最低90日間からの料金設定
    -  取り出しタイプ
        -  迅速：通常 1～5 分以内
        -  標準：通常 3～5 時間以内
        -  大容量：通常 5〜12 時間
    -  ボールトロック
        -  編集を禁止する機能
-  Glacier Deep Archive
    -  最低180日からの料金設定
    -  取り出しに要する時間は以下の通り
        -  標準取り出し：12時間以内
        -  一括取り出し：48時間以内
-  RRS(Reduced Redundancy storage)低冗長化ストレージ（低冗長化ストレージ）
    -  2箇所のAZでのレプリケーションになる代わりに料金が安い
-  Intelligent-Tiering（未知のアクセスパターンのデータ、またはアクセスパターンが変化するデータ用）


# S3の暗号化
- 下記暗号化を実施すると、ログも自動的に暗号化される
- SSE-S3 (Server Side Encryption)
    - AmazonS3がデータ暗号化キーとマスター暗号化キーを管理
    - 暗号化の使用に追加料金はかかりません
- SSE-KMS (Server Side Encryption)
    - AWSマネージド型キーまたは、カスタマー管理型のキーがありKMSでキーを管理
    - AWS Key Management Service の料金が適用
- SSE-C (Server Side Encryption)
    - ユーザーが暗号化キーを管理
- CSE (Customer Side Encryption)
    - クライアント再度の暗号化方式
    - AWSとは一才関係なく、クライアント側で暗号化の全てを行う

# S3のアップロード機能
- マルチパートアップロード
    - 大容量オブジェクトをいくつかに分けてアップロードできる
    - 既存オブジェクトのコピーを作成

# S3の共有機能
- Transfer Acceleration
    - クライアントと S3 バケットの間で、長距離にわたるファイル転送を高速、簡単、安全に行える
    - Amazon CloudFront の世界中に分散したエッジロケーションを利用し、エッジロケーションに到着したデータは、最適化されたネットワークパスで Amazon S3 にルーティングされる

# AWS STS (Security Token Service )
- AWS リソースへのアクセスをコントロールできる一時的セキュリティ認証情報を持つ、信頼されたユーザーを作成および提供することができる

# 障害復旧モデル
- バックアップ＆リストア：バックアップファイルのみを別のリージョンに退避しておく考え
- パイロットライト：停止した状態のサーバーを別のリージョンに用意しておき、障害発生時に立ち上げる
- ホットスタンバイ：起動した状態のサーバーを別のリージョンに用意しておき、障害発生時に切り替える
- マルチサイト

# ECR (Elastic Container Registry)
-  AWS マネージドコンテナイメージレジストリサービス
-  AWS IAM を使用してリソースベースのアクセス権限を持つプライベートコンテナイメージリポジトリをサポート

# AWS Storage Gateway
- オンプレミスアプリケーションによる AWS クラウドストレージのシームレスな使用を可能にするハイブリッドストレージサービスです
- バックアップ、アーカイブ、災害対策、クラウドデータ処理、ストレージの階層化、および移行を行うことができる
- NFS、SMB、iSCSI などの標準ストレージプロトコルを使用して、仮想マシンまたはハードウェアゲートウェイアプライアンス経由でサービスに接続される

# エンドポイント
- インターネットゲートウェイを経由せずVPC外のAWSサービスにアクセスできる
    - ゲートウェイ型
        - パブリックIPをもつGWを作成し、接続する
        - S3およびDynamoDBに対応
        - 無料サービス
    - インターフェイス型
        - プライベートIPをもつGW作成し、環境接続する
        - 上記以外
        - 有料サービス
- 設定手順
    - VPCエンドポイントを設定
    - 拡張VPCルーティング(Enhanced VPC Routing)を有効化

# AWSアクセスキーIDとシークレットアクセスキーについて
- プログラムからAWSのAPIにアクセスする際に使用する認証情報
- AWS CLIやAWS SDKなどで使用
- IDと紐づくユーザ／ロールと同様の権限が与えられる

# CIDR設定
- VPCに対して設定できる範囲
    - /16 ~ /28まで 

# RDS Proxy
- アプリケーションとAWS RDS の間に配置され、Proxyとしてデータベースへの接続を効率的に管理してくれるサービス
    - データベースへのコネクションプールを管理し、アプリケーションからのデータベース接続を少なく抑えられる
    - データベースのフェイルオーバーによるダウンタイムを縮小することができる
    - RDSとの互換性があるためコードの変更が不要で使い始めることができる

# S3のホスティングコンテンツアドレス
- `http://udemybucket.s3.リージョン名.amazonaws.com/ファイル名`

# VPN接続
- AWS Site-to-Site VPN
    - VPC とリモートネットワーク間で、IPsec および VPN 接続を作成
    - オンプレミス機器とVPNを安全な回線で繋ぐことができ、アクセス、管理を行うことができます。特に支社やデータセンターなどオンプレミス機器の設置場所から、クラウド環境への接続を作り出します。
- AWS クライアント VPN
    - AWS リソースやオンプレミスネットワークに安全にアクセスできるようにする、クライアントベースのマネージド VPN サービス
    - 社内に機器を設置しクライアント管理を行う接続方法です。こちらは機器の設置や管理、運用に至るまで一体的に請け負ってもらうことができます。
- AWS VPN CloudHub
    - リモートネットワークが複数ある (たとえば、複数の支社がある) 場合は、仮想プライベートゲートウェイを通じて複数の AWS Site-to-Site VPN 接続を作成する
- サードパーティー製ソフトウェア VPN アプライアンス
    - サードパーティー製ソフトウェア VPN アプライアンスを実行する VPC の Amazon EC2 インスタンスを使用して、リモートネットワークへの VPN 接続を作成

# データの暗号化
- AWS KMS
    - AWS管理のサーバを共有で利用し、そこで暗号化キーを管理します。
    - システム的に他の組織へのアクセス制限はされていますが、物理的には同じサーバ上に存在します。
    - マスターキー
        - データキーを暗号化する
        - AWS内部で永続化され、ユーザーがローカルにエクスポートできない
        - ユーザーはマスターキーを作成・更新・無効化・有効化できるが、削除はできない
    - データキー
        - データを暗号化する
        - AWS内部に永続化されず、ユーザーがローカルにエクスポートできる
        - ユーザーはデータキーを生成・暗号化・複合できる
    - 暗号化の流れ
        - マスターキーのIDを指定してデータキーと暗号化されたデーターキーを入手
        - データーキーを用いてデータを暗号化し、データキーは廃棄する
        - 暗号化されたデーターキーをAWS上のマスターキーで復号し、復号したデータキーを受け取る
        - 複合したデータキーで暗号化したデータを復号し、復号したデータキーを廃棄する
- CloudHSM
    - 専用のハードウェアで暗号化キーを保管します。
    - CloudHSMの方がより安心してキーを管理することが可能です。
    - 不正使用防止策がとられている専用HWモジュール（HSM）

# AWS Transit Gateway
- 中央のゲートウェイからネットワーク上にある Amazon VPC、オンプレミスのデータセンター、リモートオフィスそれぞれに単一の接続を構築して管理する
- Transit Gateway がハブの役割を果たし、トラフィックがスポークのように接続されたネットワーク間をどのようにルーティングするかをすべて制御

# サービス制限数
- Elastic IP アドレス (IPv4)
    - リージョンあたり : 5
- VPC
    - リージョンあたりの VPC の数 : 5
- サブネット
    - VPC あたりのサブネットの数 : 200
- IAM
    - 1 AWS アカウントにつき作成できるユーザー数 : 5000
    - 1 AWS アカウントにつき作成できるロール数 : 1000
    - 1 AWS アカウントにつき作成できるグループ数 : 300
    - 1 IAM ユーザーが所属できるグループ数 : 10
    - 1 IAM ユーザー・ロール・グループにアタッチできる管理ポリシー : 10
    - 1 IAM ユーザー・ロールにアタッチできるタグの数 : 50
- EC2
    - オンデマンドインスタンス
        - vCPU (仮想中央演算処理装置)数に基づいて、各制限に対する使用料を測定
    - リザーブドインスタンス
        - 1 ヶ月あたり、AZごとに 20 個
    - スポットインスタンス
        - リージョンごとに 20 個

# CIDER簡易計算
 - 2の（32 - マスク値）乗 = IPアドレス数
    - 例： 10.0.0.0/23 = 512 = 2の9(32-23)乗

# VPC Flow Logs
- VPC内のIPトラフィックを監視
- 無料サービス
- キャプチャウィンドウと言われる時間枠（10分間）で収集・プロセッシング・保存を行う
- ネットワークインターフェイスを送信元/受診元とするトラフィックが対象となる

#スケーリングタイプ
- 水平スケーリング
    - スケールアウト
        - 処理する機器/サーバー台数を増加する
    - スケールイン
        - 処理する機器/サーバー台数を低減する
- 垂直スケーリング
    - スケールアップ
        - メモリやCPUを追加・増強
    - スケールダウン
        - メモリやCPUを追加・増強


# SWF (Simple Workflow Service)
- 複数のサーバーでバッチ等の自動処理を行う時に、その順番や振り分け先の管理を行うワークフローサービス

# Amazon Elastic Transcoder
- 動画ファイルをさまざまなデバイスに対応した動画ファイルへ変換できるサービス
- フルマネージドでストレージの管理やソフトウェアの管理も不要
- 初期費用無料、変換対象の動画の長さで課金
- GUIやAPIで実行しシンプル

# AWS Directory Service 
- Amazon Cloud Directory および Microsoft Active Directory (AD) を他の AWS サービスと併用するための複数の方法を提供します

# AWS Pricing Calculator
- ニーズに応じたコスト試算ができるサービス

# AWS Systems Manager (SSM)
- EC2などのリソースグループごとに運用データを確認
- EC2のパッチ、更新、設定変更・削除・停止およびデプロイを自動化
- 各リソースグループの最新状態を簡単に可視化できる
- AWSサーバーとオンプレミスのサーバーとを1つのインターフェイスで管理できる

# Amazon GuardDuty 
- AWSのアカウント、ワークロード、および　Amazon S3 に保存されたデータを保護するために、悪意のあるアクティビティや不正な動作を継続的にモニタリングする脅威検出サービス
- 機械学習を利用した不正検知をおこない、AWS CloudTrail、Amazon VPC フローログ、DNS ログを利用して、AWS上の異常な振る舞いを検出するサービス


# AWSのリポジトリサービス
- CodeCommit
    - Git ベースのリポジトリをセキュアにホストする完全マネージド型のソース管理サービス
- CodeDeploy
    - Amazon EC2、AWS Fargate、AWS Lambda、オンプレミスで実行されるサーバーなど、さまざまなコンピューティングサービスへのソフトウェアのデプロイを自動化する、フルマネージド型のサービス
- CodePipeline
    - Codeサービスを連結して処理するパイプラインを構成して管理することが出来る完全マネージド型の継続的デリバリーサービス


# AWS WAF (Web Application Firewall)
- 一般的なWebアプリケーションに対する攻撃手法としてSQLインジェクションやXSS(クロスサイトスクリプティング)などがありますが、これらの脅威から保護します
- HTTPリクエストに含まれている情報である直前に閲覧していたページのURLに基づいて、自分のサイトへのリクエストを制限すること。外部リンクから自分のサイトに置いてあるファイルをダウンロードされたくない時とかに使う。
- 主な保護対象
    - CloudFront
    - ALB
    - API Gateway


# AWS Config
- AWSリソースの利用において、いつ、誰が、何を使って何をしたかをすべて記録し、組織のルールに則ったルールの適用の手助けをするサービス
- たとえば、EC2 ボリュームは暗号化が必須であるルールがあるなら、それを適用して利用中のボリュームを評価します。ルールに反して暗号化されていなかった場合は、ルールの非準拠と判断して通知を送信できます。個々のリソースの変化だけでなく、システム全体で利用しているボリュームの合計容量など、アカウントで管理しているリソース全体への評価も可能


# VPN接続
- 仮想プライベートゲートウェイ(Virtual Private Gateway)
    - VPN接続においてのAmazon VPC側に配置するVPNコンセントレータ。複数のカスタマーゲートウェイからのVPN接続を受け付けることが可能。
- カスタマーゲートウェイ(Customer Gateway)
    - VPN 接続においてのユーザ側に配置されるVPN装置。


# ECS
- コンテナオーケストレーション
    - コンテナ上で動作しているアプリケーションを複数のサーバーへの展開、あるコンテナがダウンした時に別のコンテナを動作させるなどのクラスター管理、アプリケーションへ高負荷がかかった時にサーバーを増やす、負荷が減った時にサーバーを減らすなどのスケーリング管理
    - Fargate起動タイプ
        - コンテナを動かす EC2 インスタンスは AWS 管理なものを使用する
        - ホスト EC2 インスタンスが AWS 管理なので制限がある
        - ホストマシンについて管理すべき点が減るのでラク
    - EC2 起動タイプ
        - コンテナを動かす EC2 インスタンスを自分で管理する
        - スト EC2 インスタンスをいじれるのでいろいろできる
        - ホスト EC2 インスタンスを自分で管理しなければならないので、面倒くさい


# AWS Storage Gateway
- AWS Storage Gateway は、オンプレミスのソフトウェアアプライアンスをクラウドベースのストレージと接続し、お客様のオンプレミスの IT 環境と AWS のストレージインフラストラクチャとの間にデータセキュリティ機能を備えたシームレスな統合を実現するサービス
- キャッシュ型ボリューム
    - 頻繁にアクセスするデータへの低レイテンシーのアクセスを維持する手段
    - `プライマリデータを Amazon S3 に保管`し、頻繁にアクセスするデータをローカルに保持することでプライマリストレージのコストを大幅に削減し、ストレージをオンプレミスで拡張する必要性を最小にすることができる
- 保管型ボリューム
    - データセット全体への低レイテンシーアクセスを維持
    - `プライマリデータをローカルに保管`し、そのデータのポイントインタイムスナップショットを非同期にAmazon S3 にバックアップ。災害復旧のための代わりの容量が必要な場合などに、ローカルまたは Amazon EC2 から復元できる、耐久性が高く低コストのオフサイトバックアップを提供
- 仮想テープライブラリ
    - クラウド上にゲートウェイ1つにつき1500本もの仮想テープをコレクションできます。各仮想テープは、テープライブラリかテープシェルフに格納できます。仮想テープライブラリはAmazon S3によってバックアップされた仮想テープを格納出来ます。

# AWS Artifact
- 無料でセルフサービス型の、AWSコンプライアンスレポートのダウンロードサービス
- ISO、PCI、SOCなどの第三者による監査レポートをダウンロードできます。これにより、AWSがいかに安全で安心して使って頂けるか、NDA情報として利用者に共有します。

# AWS Service Catalog
- CloudFormationテンプレートを[製品]としてインポートする事ができる

# AWS Cognito
- MFAで他要素認証と保存データの転送と暗号化が実施できる


# ハンズオン手順系
## VPCの作成
- 作成時にAZおよびサブネットを定める
- プライベートサブネットがあれば、NATGWを定める
- ルートテーブル（VPC内のlocalとIGWへのルート）がきちんと設定されているか確認して、問題なければ作成完了

## ELBの作成
- スキームでインターネット向け/内部を選択（パブリックかプライベートかということ）
- ロードバランサープロトコルの選択
    - HTTP（通常）
    - HTTPS（SSL証明書を用いるケース）
- ロードバランシング先サブネットを選択
- セキュリティーグループの選択
- ルーティング先ターゲット（EC2、IP、Lambdaから選択できる）を選択
- ターゲットの登録でEC2などを個別に登録
- ヘルスチェックの設定をして完了