8.0-学習ノート

#80
#ネットワーク ACL ルール
ルールは、最も低い番号のルールから評価
#ユーザーポリシーの例
 IAM ユーザーポリシー

#8-1
#MySQL DB インスタンスで SSL を使用するには
<h4>
Amazon RDS では、MySQL データベースエンジンを実行する DB インスタンスとの Secure Sockets Layer (SSL) 接続がサポートされています。</h4>
→クライアントは公開鍵を使用する

#Amazon SWF とは何ですか?
アプリケーションの状態情報を保持する
ワークフロー実行をトラッキングしてその進行状況を記録する
タスクを保管して割り当てる
各アプリケーションホストにどのタスクを割り当てて実行するかを制御する

#EC2 インスタンスのオペレーティングシステムからメトリクスおよびログを収集
CloudWatch エージェントを使用

#AWS別アカウントにアクセスしてデータ取得したい時
別の AWS アカウントの VPC との VPC ピアリング接続を作成する

#アクセスコントロールリスト (ACL) を使用してS3 バケットとオブジェクトのアクセス許可を管理する
バケットに対するアクセス許可とオブジェクトに対するアクセス許可は相互に独立

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/managing-acls.html

#Application Load BalancerがServer Name Indication (SNI)をサポートする
Server Name Indication (SNI)は１台のサーバーで異なる証明を出せる

#82
#VPN経由でネットワークトラフィック記録する
VPC フローログ
#独自のファイルシステム作成する
EBS
#84
#IPアドレスごとの可用性を向上できる ゾーンごとの負荷を平準化できる
NLBでのクロスゾーン負荷分散

https://dev.classmethod.jp/articles/cross-zone-load-balancing-for-nlb/
https://aws.amazon.com/jp/ebs/


#暗号化された EBS ボリュームを作成した時に暗号化される
ボリューム内の保存データ

ボリュームとインスタンスの間で移動されるすべてのデータ

ボリュームから作成されたすべてのスナップショット

それらのスナップショットから作成されたすべてのボリューム
#DynamoDB
グローバルセカンダリインデックス(GSI) :全データの中から PostId を指定して抽出
ローカルセカンダリインデックス(LSI) :ある UserId の中から PostId を指定して抽出


#Amazon RDS MySQLデータベースがボトルネックにならないようにする
Elastic Cache

https://qiita.com/avicii2314/items/5cede09f01ee7c3a132e

#86
#インターネット上のリソースは IPv6 アドレスを使用してインスタンスへの接続を開始
NATゲートウェイ  /  Egress-Only インターネットゲートウェイ　どちらか


→Egress-Only インターネットゲートウェイを使う
IPv6を使用してインターネットに出たいときに使用する。
しかし、IPv6はインターネットへのEgress(送信)のみでIngress(受信)はできません。
NATゲートウェイのIPv6バージョンのようなもの


NATゲートウェイとは？
プライベートIPとパブリックIPを 多対1 で変換するもの
プライベートサブネットからネットワークに通信したい際に使用する
※事前にVPCにインターネットゲートウェイがアタッチされてることを確認

インターネットゲートウェイとは？
プライベートIPとパブリックIPを 1対1 で変換するもの
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/04d58ebe-0912-0971-fe55-d8b63c8913c1.png)

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/egress-only-internet-gateway.html#egress-only-internet-gateway-basics

#デフォルトのAmazon EC2 セキュリティグループ はインバンドは[許可・拒否]

セキュリティグループルールは、セキュリティグループに関連付けられたインスタンスに到達することを許可するインバウンドトラフィックを制御します。また、このルールによって、インスタンスから送信されるアウトバウンドトラフィックも制御されます。
インバンドは[拒否]

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-security-groups.html#default-security-group

#87
#データベースにおける分割手法の１つで、データを複数のノードのディスクに分割配置することで、データベースへのリクエストを分散し全体のスループットを上げる目的で利用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/31168c2d-710d-b0c4-0b20-9752a1801cb2.png)

シャーディング

https://qiita.com/hharu/items/15627d2058bffe1fadf0

#オートスケーリングを使用したアプリケーション

セキュリティグループにセキュリティグループを関連付ける

#アプリケーションのエンドユーザーは SMS ベースの MFA でサインインするとき
Amazon Cognitoを使用する
#88
#ストリーミングデータソースされるイベントをリアルタイムで分析する、高い可用性、耐障害性を備えた長時間の実行に対応するストリーミングデータパイプラインを構築
EMR
#S3バケットへのアクセス許可するには
EC2でプロキシ設定し、**S3 VPCエンドポイント**を設定する
#オンプレ-VPC接続方法
Direct connect

#オンプレのインフラをクラウドに移行
API GatewayとLambdaを使う
コードの実行にはLambdaを利用することで、EC2などのサーバをあらかじめ用意することなく、それらの管理からも解放された状態でアプリを実行することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/5034416d-a23f-cb04-3e95-f7be7a279fbc.png)

https://www.isoroot.jp/blog/2958/


Amazon Elastic Container Service(ECS)とElastic Load Balancing(ELB)を利用した
コンテナを採用した、高い信頼性と拡張性を兼ね備えたサーバレスアーキテクチャ
Fargateであればローカルで開発に利用したコンテナをそのままサービスに利用できます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/6f1cd1cb-6728-eadc-8db3-c93135fdeb5e.png)

Amazon Elastic Compute Cloud(EC2)とElastic Load Balancing(ELB)
は仮想サーバをそのまま利用した、一般的なWebサービスアーキテクチャ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/899273f6-76e5-f9a2-025b-d684737634d5.png)

#89
#URLパスに基づいてルーティングして負荷分散する
Application Load Balancer 
Application Load Balancer は、受信アプリケーショントラフィックを複数のアベイラビリティーゾーンの複数のターゲット(EC2 インスタンスなど) に分散します。これにより、アプリケーションの可用性が向上します。
#複雑なクエリデータベースの改善
**Amazon ElastiCache**

https://aws.amazon.com/jp/elasticache/


#90

#NATインスタンス経由でインターネットに接続する場合 「送信元/送信先」機能を[無効or有効]にする
**NAT**の場合はパケットを転送する必要があるためこの機能を**無効化**する必要があります。
トラフィックの送信元、送信先のIPはどちらもENIのIPアドレスではない場合、自分自身と関係ないと判断し、パケットが破棄されます。



#91

#フェイルオーバーを確実に実行させるには（　）を使う
セカンダリプライベート

https://community.oracle.com/tech/welcome/discussion/4474282/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%AB%E3%82%BB%E3%82%AB%E3%83%B3%E3%83%80%E3%83%AAip%E3%82%92%E4%BB%98%E4%B8%8E%E3%81%99%E3%82%8B-oracle-cloud-infrastructure%E3%82%A2%E3%83%89%E3%83%90%E3%83%B3%E3%82%B9%E3%83%89


セカンダリ・プライベートIPアドレスは、インスタンスの仮想NICに対してプライマリのIPアドレスとは別のIPアドレスをアサインする機能です。この機能によって、複数のIPアドレスを単一のネットワーク・インタフェースに対して割り振る、いわいるIPエイリアス機能が使えるようになります。

インスタンスに障害が起きた場合、セカンダリIPアドレスを同じサブネットに存在する別のインスタンスに再アサインすることによって、IPアドレスのフェイルオーバー (いわいるVIPのフェイルオーバーのようなイメージです) を実現することができます。もしそのプライベートIPアドレスにパブリックIPアドレス(NAT IP)がアサインされていた場合には、そのパブリックIPアドレスも一緒にスタンバイ・インスタンスに移動します。

#頻繁/同時に上書き・消されるのに対応できるストレージ(S3/RDS/Redshift) 
RDS
S3:PUT と DELETE　書き込み後読み取り　同時に書き込みは×

#92
#LambdaがRDSにアクセスできるようにする
RDSがあるVPCにlambdaを作る
RDSセキュリティグループにlambdaからのアクセス許可をする
Lambda 関数を VPC に接続すると、プライベートリソースにアクセス。Lambda のセキュリティグループからのインバウンドを許可するように RDS のセキュリティグループを構成する。

VPCのプライベートサブネットに接続するように関数を設定することができ、データベース、キャッシュインスタンスなどのリソースのプライベートネットワークを作成。

Lambda は、関数の VPC 設定内のセキュリティグループとサブネットの組み合わせごとに Elastic Network Interface を作成。

#93
#複雑なクエリテーブル結合　高可用性
Amazon RDS のマルチ AZ 配置　Amazon RDS for MySQL

#94
#帯域幅(速度制限)の制約なくインターネットに接続する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/8f4c6274-bbbe-e5d4-5f79-69992e6b821b.png)

インターネットゲートウェイ
インターネット GW は Static NAT を行います。つまり、パブリック IP を割り当てられた EC2 インスタンス等は、プライベート IP とパブリック IP が 1 対 1 で変換

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html

NAT-GW の使い道は主に「インターネットからはアクセスされたくないけどインターネットへのアクセスは実施したい」というケース
なお、NAT-GW だけではインターネットとの接続性がありませんので、NAT-GW は「パブリックサブネット」に配置

https://milestone-of-se.nesuke.com/sv-advanced/aws/internet-nat-gateway/

#95
#96
#アプリケーションサーバーは、インターネットにアクセスできないプライベートサブネットにあり、データを取得して DynamoDB テーブルにアップロードしたい

→
VPC エンドポイント：アプリケーションはインターネットを経由せずに Amazon ネットワーク経由で DynamoDB にアクセスできる。

#NAT ゲートウェイを使うときにフロントエンドに置くのは？


ELB Classic Load Balancer はスケーラブルなフロントエンドとして機能。NAT ゲートウェイはプライベートサブネットでホストするアプリケーション層とデータベース層からインターネットアクセスへの通信のみを許可してパッチの更新をダウンロードできます。
**ELB Classic Load Balancer**

#AWS Trusted Advisorの役割
https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/

**コストを削減、パフォーマンスを向上、セキュリティを強化**
耐障害性　サービス制限

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/c0f18356-bcf9-3ad7-bb27-820dc7f6817a.png)

#97
#RDSのIOPS値を送る
Cloud WatchとSNS
#RDSforMYSQLをインターネットからアクセスできないようにウェブサーバー用の（　）を設置
プライベートサブネット
#完全なスナップショットをとる
インスタンス停止させる
#ユーザーが増えたときにパフィーマンスを維持するには
追加のリードレプリカを使用しRDSを設定する
#98
#可用性をあげるにはEC2 or Dynamoを２つのa-zに配置する
#99
#サーバーの負荷を軽減する
署名付きURLを用いる