AWSを始める
AWSを始めるにあたり、券捻転があります。以下の部分です。
- AWSは1年無料だが、その後どうなるかわからない。
- AWSの使い方と料金体系がわからない
- 根本的によくわからない
これらに対して儀門弟を解決、使い方などをまとめます。
AWSの1年無料に関して
1年無料は良いが、そのあとはどうなるのか?これに関して調べました。
参考サイト
<結論>
料金を発生させたくない場合は、アカウントのリソースを削除、停止、終了する必要があります。必要であれば、いつでもアカウントを解約できます。
ということなので、終了したらサービスの停止、解約をすればよいということでした。
しかし、2021-08-15現在では、「常に無料」という枠があるようです。
AWS CloudFoundationを学ぶ
<学習内容>
- クラウドコンピューティングについて
- AWSの料金体系
クラウドコンピューティングについて
クラウドコンピューティングとは
- コンピューティング能力
- データベース
- ストレージ(記憶領域)
- アプリケーション
- その他のITリソース
上記の、機能をオンデマンド、かつ、インターネット経由で提供する。従量制の料金で提供するサービス
クラウドサービスモデル
-
IaaS(Infra structure as a Service): サービスとしてのインフラストラクチャ(PC本体、ネットワークの機能)
ITリソースの制御性が最も高い、セットアップ済みのPCとLAN(ネットワーク)が利用できるイメージ
-
Paas(Platform as a Service): サービスとしてのプラットフォーム、加えて開発環境、実行環境が利用できるイメージ
基盤インフラストラクチャ(ハードウェア、OS)の管理が必要ないのでアプリケーションのデプロイや管理に集中できる。
-
SaaS(Softwere as a Service): サービスとしてのソフトウェア、出来上がったアプリケーション(Soft were)を利用できるイメージ
特定のソフトウェアの使用方法のみを考慮するだけでよい、出来上がったソフトウェアの管理のみでよい
クラウドコンピューティングのデプロイモデル
<デプロイモデル>
- クラウド: アプリケーションを実行するすべてがクラウド上で実行される、クラウド上でアプリケーションの作成、リソースの拡張、変更が可能な、デプロイ方法
- ハイブリッド: 既存のインフラストラクチャとアプリケーションを、クラウドベースのリソースに接続する、デプロイ方法
- オンプレミス(プライベートクラウド): 物理的なシステムをAWSクラウドに接続し、機能を提供する、デプロイ方法
これらのデプロイモデルは、ユーザーに合わせてデプロイ(ITリソースの配置(インストール))方法をAWSが用意しているということ。
<具体例>
- クラウドを利用する: ITリソース(サーバー、ネットワークなど)を持っていないがウェブサービスを提供したいと思う人が利用するケース
- ハイブリッド: ITリソースは持っているが、AWSのクラウドと連携したい時
- オンプレミス: 自前のITリソースをクラウド上にアップして、自前のサービスを提供する。プライベートクラウドとも呼ばれるのは、AWSクラウドからほぼ独立しているから。
AWSの料金体系
<基本3要素>
- コンピューティング: 時間(秒単位)で課金する。インスタンスタイプによって料金が違う
- ストレージ: GB(ギガバイト)単位で課金する
- データ転送: 送信料によって課金する、受信に関しては課金しない。基本的にはGB単位で課金する
<支払方法>
- 従量課金制
- 予約支払い
※ 使用量が増えるほど割引になる
AWSでの無料サービス
- Amazon VPC
- Elastic Beanstalk**
- Auto Scaling**
- AWS CloudFoundation**
- AWS Identity and Access Management(IAM)※日本では「アイアム」と呼んでいるらしい
※「**」のついているサービスに関しては、併せて使用する他のサービスで料金が発生する
AWSの操作・テクニカルサポート
- AWS Management Console: 管理画面
- Billing Cost Management Console: 使用した料金の詳細から概要までわかる
- テクニカルアカウントマネージャー(TAM): エンターブライズサポートプランのみで使用可能
ベーシック(無料)、デベロッパー、ビジネス、エンターブライズの4サポートがある - AWS Trusted Advisor: 利用方法が適切かどうか判定してくれるサービス
AWS Organizationについて
AWSのアカウント管理サービス:組織でAWSのアカウントを複数使用するときに便利なサービス
AWS グローバルインフラストラクチャ
2021-08-17現在では世界に22のリージョンがある。
<AWSグローバルインフラストラクチャの構成要素>
・リージョン
・アベイラビリティーゾーン
・POP(Point Of Presence)
リージョン
物理的、地理的エリアを示すもの。以下のもので構成される。
耐震性、安定性の観点からリージョンは互いに分離されている。
・2以上のアベイラビリティーゾーンで構成
・リージョン間の通信はAWSのバックボーンネットワークを使用
・レプリケート:複製するという意味
アベイラビリティーゾーン
1つ以上のデータセンターで構成される
リージョンの選択
・データガバナンスと法的要件に注意
・アクセスする速度は地理的に近い方がよい
・CloundPingなどのウェブサイトでテストできる
・全てのリージョンで全てのAWSサービスが使用できるわけではない
POP(Point Of Presence)
世界中に展開されたAWS用のDNSでサービスとしては以下のものがある。
・Amazon Route 53
・AWS Shield
・AWS Web Application Firewall
AWSグローバルインフラストラクチャの特徴
・伸縮自在(スケーラブル)、要件に応じて使用したい容量を動的に使用できる
・耐障害性、団長性が組み込まれているので、一つ壊れても予備が動く形で保全する
AWSサービスとカテゴリ
<ルートカテゴリ>
AWSの基盤サービス | プラットフォームサービス | アプリケーション |
---|---|---|
コンピューティング | データベース | 仮想デスクトップ |
ネットワーク | 分析 | コラボレーションと共有 |
ストレージ | アプリケーションサービス | - |
- | デプロイとマネジメント | - |
- | モバイルサービス | - |
<カテゴリ>
分析 | アプリケーション統合 | AR及びVR | ブロックチェーン | ビジネスアプリケーション | コンピューティング |
コスト管理 | カスタマーとのつながり | データベース | 管理者用ツール | エンドユーザーコンピューティング | Game Tech |
IoT | Machine Learning | マネジメントとガバナンス | メディアサービス | 以降と転送 | モバイル |
ネットワークとコンテンツ配信 | ロボット工学 | 人工衛星 | セキュリティアイデンティティ、コンプライアンス | ストレージ |
※ガバナンス:統治・支配・管理を示す
ストレージサービス
・Amazon S3(Simple Strage Service): 代表的なストレージサービス
・Amazon EBS(Elastic Block Store): EC2で書するためのブロックストレージ
・Amazon EFS(Elastic File System): 動的なネットワークファイルシステム(NFS)
コンピューティングサービス
<EC2> ※「Amazon ~」とはじまるものは省略している、下のものは「Amazon Auto Scaling」になる。
・Auto Scaling: EC2インスタンス(作成した仮想PC)の容量を動的に追加・削除してくれる
・Elastic Container Service: Dockerコンテナをサポートしている。Dockerコンテナを使用できるということ
・EC2 Container Registory: Dockerコンテナの保存・管理・デプロイといった開発プロセスを簡易化する
・AWS Elastic Beanstalk: Apache, IISなどのウェブサーバーにアプリケーションをデプロイするサービス
・AWS Lamda : 細かい管理をせずにコードが実行されたときにのみ課金される ※使ってみないとわからない
データベースサービス
※「Amazon ~」とはじまるものは省略している
・Relational Database Service(RDS): データサイズなどの容量を自動で調整してくれる。バッチなども自動で行ってくれる
・Aurora: MySQL, PostgreSQLと互換性がある
・Red Shift: AWS内に保存されているデータを検索できる
・DynamoDB: NoSQL DB
ネットワークサービス
※「Amazon ~」とはじまるものは省略している
サービス名 | 概要 |
---|---|
VPC | ユーザー定義の仮想ネットワークでAWSリソースを起動することができる |
Elastic Load Balancing | AWS用のロードバランサ、負荷を減らすための仕組みのこと |
Cloud Front | コンテンツ配信ネットワーク(CDN)、データ、動画、アプリケーション、APIを全世界に配信 |
AWS Transit Gateway | オンプレミス環境と「Amazon VPC」を接続するプライベートクラウド |
Route 53 | エンドユーザーを適切なページに導くためのDNS。 |
AWS Direct Connect | データセンター、オフィスからAWSまでの専用プライベートネットワークを確立する方法 |
AWS VPN | 安全なプライベートネットワークトンネルを提供する |
セキュリティ アイデンティティ コンプライアンス
※「Amazon ~」とはじまるものは省略している
サービス名 | 概要 |
---|---|
AWS Identity and Access Management(IAM) | サービスとリソースの安全な管理を提供する |
AWS Organization | アカウントで使用できるサービスを制限することができる |
Congnit | ユーザー認証、アクセスコントロールをウェブ、モバイルに追加できる |
AWS Artifact | セキュリティレポート |
AWS Key Management Service | 暗号化キーの作成管理ができる |
AWS Shield | AWSで実行中のサービスを保護する |
AWSのコスト管理
・AWSのコストと使用状況レポート
・AWS Badgets: 予算を超えそうなときに警告などを出してくれる
・AWS Const Explorer: 使用コストを可視化してくれる
AWSのマネジメントとガバナンスサービス
※「Amazon ~」とはじまるものは省略している
サービス名 | 概要 |
---|---|
AWS マネジメントコンソール | 管理用画面を提供する |
AWS Config | リソースのイベントリ、変更、追跡に役立つ |
Cloud Watch | リソースとアプリケーションを監視できる |
AWS Auto Scaling | リソースの拡大縮小を自動で行ってくれる |
AWS コマンドラインインターフェース | AWSサービスを管理する統合サービス |
AWS Trusted Advisor | パフォーマンスとセキュリティを最適化するオンラインツール |
AWS Wel-Architected Tool | ワークロードの確認と改善に役立つ |
AWS Clound Trail | ユーザーアクティビティとAPIの使用状況をAWSアカウント全体で追跡する |
AWSの責任共有モデル
共有する責任は以下の二つ
- セキュリティ
- コンプライアンス
①具体的に以下のようなところはAWSが責任を持つ
- コンピューティング
- ストレージ
- データベース
- ネットワーク
【注意】
これらの責任を持つ部分は、物理的なところ、つまりは、
グローバルインフラストラクチャの部分に責任を持つというところです。
②「お客様」=「AWSユーザー」が責任を持つところ
まとめると、使用している環境、設定可能な部分全てというところです。
サービスとして使用している部分は、AWSが責任を持ちますが、以下のようなユーザーが設定する部分は
ユーザーが責任を持ちます。
- 顧客データ(暗号化など)
- アプリケーション
- OS(ファイルシステムを含む), ネットワーク, ファイヤーウォール
ただし、AWSサービスの中にこれらのデータを保護するものもあるので、適当なサービスを使用することができる。
AWSアカウントの保護
使用するべきサービス
- Identity and Access Management service(IAM)
- Muti-Factor Authentication(MFA)
- Cloud Trail
AWS Identity and Access Management service(IAM)
AWSアカウントの保護するためのサービス無料で使用できる
- できるだけ早くルートユーザーの使用を停止する
- IAMユーザーを作成し、アクセスキーを保持
- IAMグループを作成しグループに管理者権限を与える
- アカウントのルートユーザーにアクセスキーがある場合は削除する
※アカウントのルートユーザーの認証情報を保護した後 - ユーザーに対してパスワードポリシーを適用する
- 新しいIAMユーザーの認証情報を使用してログインする
- アカウントのルートユーザーの認証情報を保護する
※サインインリンクをコピーしておくのを忘れないようにする
Muti-Factor Authentication(MFA)
物理的な認証ツールと連携し、認証処理を行うことができる、他にも機能がある。
Cloud Trail
※デフォルトで有効になっている
- ユーザーアクティビティを追跡(ログにする事)を行う。90日分のアクティビティ(操作)を保管できる
- セキュリティ、フォレンジック調査の基礎資料となる
- コンプライアンスの文書化にも役立てることができる
請求レポート
※レポートを有効にする必要がある
- AWSリソースの使用状況
- AWS料金(コスト)と使用状況を一覧できる
AWS Organizations
アカウントを統合して一元管理できる。
例:会社組織でAWSを使う場合、代表者が社員のアカウントを管理できるようにこれを使用する。
ユーザーグループを作成し、各ユーザーに対し、可能な操作を設定することができる。
データの暗号化
- シークレットキーを作成、管理することで暗号化、データの保護を行う。使用できるサービスとしては
AWS KMS - 転送中のデータ暗号化はAWS Certificate Managerを使用してTLS(旧SSL)または、SSLの証明書を管理する
コンプライアンス
- 認証、設定
第三者機関による、評価 - 法律、帰省、プライバシー
AWSはコンプライアンスをサポートするための、セキュリティ機能と法的契約を提供する - 準拠とフレームワーク
業種や機能固有のセキュリティまたはコンプライアンス要件
AWS Config
AWSリソースの設定を診断、監査、評価する。モニタリングや設定履歴を参照することもできる
ネットワーク
【前提】
Amazonの提供するネットワークは、クラウド上に展開されているネットワークなので、
仮想環境上にて設定、運用する。
VPC内は、ユーザー(AWS利用者)独自のプライベートネットワーク空間になるので、仮想マシンやそのほかのリソースを配置する
Amazon VPC
本家のサイトはこちらです。
VPC=Virtual Private Cloud
仮想ネットワーク環境にて以下の項目を設定することができる。
- IPアドレスの範囲
- サブネットの作成
- ルートテーブルとネットワークゲートウェイの設定
【特徴】
- ほかのVPCから独立している
- AWSアカウント専用
- 1つのAWSリージョンに属し、複数のアベイラビリティーゾーンにまたがることが可能
サブネット
- VPCを分割するIPアドレスの範囲
- 1つのアベイラビリティーゾーンに属する
- パブリック、プライベートに分類される
IPアドレス
VPC作成時にIPアドレスの範囲を指定します。
- 「X.X.X.X/16」=65536個のIPを割り当てることが可能
- 「X.X.X.X/28」=16個のIPを割り当てることが可能
CIDRブロックとは
CIDRは原則としてビット単位のプレフィックスに基づいてIPアドレスを解釈する規格である。 これによりルーティングではルーティングテーブル上の1エントリにアドレスをグループ化して格納できる。 このようなアドレスのグループをCIDRブロックと呼び、IPアドレスを二進法で表したときの先頭の何ビットかが共通になっている。
AWSコンピューティングサービス
Amazon EC2
<主な用途>
- アプリケーション・サーバー(「APサーバー」とも呼ぶ, Tomcat, JBossなど)
- データベース・サーバー(「DB」と呼ぶこともある、というかこちらの方が多い, MySQL, Postgres, H2など)
- ウェブサーバー(HTMLを表示するためのサーバー、Apache, Nginxなどが有名名)
<言葉の使い方> | 呼び名 | 意味 |
---|---|---|
EC2インスタンス | AWSユーザーがEC2のサーバーを起動している状態が1つあるという意味で使用する。 | |
仮想マシン(VM) | クラウド上にある。EC2インスタンスのこと。またこのインスタンス上でWindows, LinuxなどのOSを起動数 ※アベイラビリティーゾーンに作成する |
|
Amazon Machine Image(AMI) | EC2インスタンスのテンプレートになるもの、そして、AWS管理コンソールからインスタンス作成ウィザードを使用する | |
EC2インスタンスの作成
AWS管理コンソールからインスタンス作詞ウィザードを使用
- デフォルト設定を選択することもできる
AWS管理コンソールからインスタンス作成ウィザード
以下の手順を踏んで作成する
- AMIの選択
※本家のサイトにあるAMI作成資料
選択する要素カテゴリ:①クイックスタート, ②マイAMI, ③AWS Marketplace, ④コミニティAMI
作成例:ウェブサーバーになるAMIを選択作成、それからAPサーバーになるAMIを選択作成する。また複数のインスタンスを作成することもできる。 - インスタンスタイプ
※本家のサイトにあるインスタンスタイプの資料- メモリ
- CPU
- ストレージ
- ネットワークキャパシティー(パフォーマンス)
インスタンスタイプカテゴリ - 汎用
- コンピューティング最適化
- メモリ最適化
- ストレージ最適化
- 高速コンピューティング
<院スタンタイプの詳細>
命名ルール
例:「t3.learge」- 「t」はファミリー名(カテゴリの名前)
- 「3」は世代番号
- 「learge」はサイズ
- ネットワーク設定
EC2インスタンスをデプロイするネットワークの場所が必要になる、リージョンの選択はインスタンス作成前に行う - IAMロールをEC2インスタンスに割り当てることができる(AWSのAPIを使用するときなど)
※AWS認証情報はEC2インスタンスに保存しない - ユーザーデータスクリプト
バッチ、Shellどちらかのスクリプトのこと、デフォルトでは、初回起動時のみに起動する。 - ストレージオプション:一時的に保存するようなストレージもあるので注意が必要
- タグ: AWSリソースに着けるラベルのこと、「タグ付け」はメタデータをEC2インスタンスにアタッチする事
タグは、「キー」と「オプションの値」のセットになっている。つまりタグの名前でオプションの値を取得できるということ
使用例:フィルタリング、自動化、コスト割り当て、アクセスコントロール - セキュリティグループ: インスタンスのトラフィックを制御するファイヤーウォールのルールセット
- キーペア: パブリックキー(公開鍵)とプライベートキー(秘密鍵)を作成,SSLなどを使用するときに使用(グローバルスタンダードなので設定はした方がよい)
Amazon EBS(Elastic Block Store)
ブロック・ストレージのこと
これがAWSで提供されているので、つまりはクラウド上にあるブロックストレージを使用することができて使用量の分だけ課金されるというところ
<主な用途>
- ファイルシステム
- データベースホスト
- ストレージ
呼び名 | 意味 |
---|---|
ブロックストレージ | ブロックごとに使用領域を確保するので、細かい調整が効き、最低限の利用領域でストレージを使用できる |
オブジェクトストレージ | オブジェクト単位で使用領域を確保するので、ブロックストレージに比べ、最低限の利用領域が大きくなる |
スナップショット | Amazon EBSのバックアップのこと、初めのバックアップを「ベースライン」と呼び、それ以降は差分が記録される |
Amazon Simle Strage Service(Amazon S3)
様々なユースケースに向けたオブジェクトレベルのストレージクラスがある
※「Amazon S3」は省略
No | 呼び名 | 意味 |
---|---|---|
01 | 標準 | よく使用する(アクセスする)データを保存するのに適している。コンテンツ配信やビックデータ分析などにも向いている |
02 | 標準-低頻度アクセス(標準-IA) | 災害対策ファイル、長期的なストレージ、データストア、バックアップ向け |
03 | 1ゾーン-低頻度アクセス(1ゾーン-IA) | アクセス頻度は低いが、必要な時にはすぐにアクセスできるデータ向け。 02程度のパフォーマンスを要求しないときにもよい |
04 | Inteligent-Tiering | データへのアクセスパターンが不明、予測不能な長期データの管理に適している。つまり高頻度で使用するときデータのアクセス数に応じてデータの保存領域(高アクセス or 低アクセス)を切り替えてくれる (詳細はこちら) |
05 | Glacier | 3つのぷしょんが設定できる 1. 高速取得は、通常 1~5 分でデータを取得できる 2. 標準取得は、通常 3~5 時間で完了し、バックアップデータ、メディア編集、または長期分析といった時間的制約が少ないニーズに最も適しています 3. 一括取得は最も低コストのオプションで、大量のデータを 5~12 時間で返します |
06 | Glaciaer Deep Archive | 年に1~2回程度のアクセス数のデータを保存するのに適している |
Amazon S3バケット
Amazon S3 にデータ (写真、動画、ドキュメントなど) をアップロードするには、いずれかの AWS リージョン に S3 バケットを作成する必要があります。その後、バケットにオブジェクトをいくつでもアップロードできます。
バケットのURLサンプル: <bucket-name>はバケット名を示す
- (非推奨) https://s3.ap-notheast-1.amazon.com/<buket-name>
- https://https://<bucket-name>.s3.ap-notheast-1.amazon.com
- アカウントにはバケットを複数作成できる
- リージョン毎にバケットを作成する
- バケット名は「全て小文字」「文字、数字、ダッシュのみ」が使用可能
料金の違いについて
- ストレージクラスの種類
- ストレージの使用料
- リクエスト
- GET: バケットからデータの取得
- PUT: バケットにオブジェクト追加
- COPY: GETとPUTを行う
- データ転送
- リージョンを基準にして送信データは有料、受信データは無料
Amazon RDS(Relational Database Service)
<サービスの種類>
- アンマネージド型: エラーや障害に対して、サービスをどのように対応させるか管理する必要がある
つまり、対応方法を細かくコントロールすることができるということ。 - マネージド型: 色々と便利に使える以下参照
<リレーショナル・データベースの課題>※自分(自社でやる場合)
- サーバーメンテナンス、エネルギープットプリント
※「フットプリント」=プログラムが動作する際のメモリ使用量の多さ - ソフトウェアのインストールとパッチ適用
- データベースのバックアップと高可用性
- 限られたスケーラビリティ
- データセキュリティ
- OSのインストールとバッチ適用
<マネージド型の便利なところと役割分担>
AWSユーザー
- アプリケーションの最適化
AWSによる管理
- OSのインストールとバッチ適用
- ソフトウェア(DB)のインストールとパッチ適用
- データベースのバックアップと高可用性
- スケーリング
- 電源。ラックサーバー、スタックサーバー ※物理的な部分
- サーバーメンテナンス
Amazon RDS DBインスタンス
呼び名 | 意味 |
---|---|
レプリケーション | リアルタイムに複製を作成する機能のこと |
ユースケース | 使用時の流れを示すもの、例えば買い物のユースケースであれば、「買うものを選択」→「買い物かごに入れる」→「会計をする」 |
シャード | シャードは、ストリーム内の一意に識別されたデータレコードのシーケンスです。ストリームは複数のシャードで構成され 各シャードが容量の 1 単位になります。各シャードは、 読み取りに対して最大 5 トランザクション/秒をサポートし、最大合計データ読み取りレートは 2 MB /秒、最大合計データ読み取りレートは 1,000 レコード 最大合計データ書き込みレートは 1 秒あたり 1 MB(パーティションキーを含む)までサポートできます。ストリームのデータ容量は、ストリームに指定したシャードの数によって決まります。ストリームの総容量はシャードの容量の合計です。 |
<適切なユースケース>
- 複雑なトランザクションやクエリ(Select文の実行)
- 1500/s(秒)以上の読み書き処理
- 単一のワーカー、シャード
- 高い耐久性が必要な時
DBインスタンスクラス
- CPU
- メモリ
- ネットワークパフォーマンス
DBインスタンスストレージ
- マグネティック
- 汎用機(SSD)
- プロビジョンドIOPS
<選択できるDBソフト>
- MySQL
- Amazon Aurora
- Microsof SQL Server
- PostgreSQL
- Oracle
- MariaDB
Amazon DynamoDB
<特徴>
- NoSQLデータベース
- 事実上無制限のストレージ
- 項目ごとに異なる属性を設定可能
- 低レイテンシーのクエリ
- スケーラブルな読み書き
プロビジョニングとは
必要に応じてネットワークやコンピュータの設備などのリソースを提供できるよう予測し、準備しておくことです。
NoSQLについて
通常のRDB(リレーショナルDB)と比べると下のようなデータモデル(テーブル)があったとき
<通常のRDB>
※DEVICEテーブルとUSERテーブル
DVICE | == | USER |
---|---|---|
deviceId | == | userId |
deviceType | == | firstName |
deviceName | == | lastName |
<NoSQLの場合>
USERDIVICEテーブル | == | 値 |
---|---|---|
Partition Key | == | firstId( userId ) |
Sort Key | == | secondId( deviceId ) |
Value | == | ユーザーのデバイス |
まとめると、RDBだとユーザーとデバイスの2テーブルを作成するが、NoSQLの場合はまとめてしまうというところが大きく違う。
一つのテーブルに単一のキー(プライマリキー)、複数のプライマリキーを指定することができる
自動スケーリングとモニタリング
沢山のリクエスト(自分のAWSサイト)を受けるときに、沢山のトラフィックを分散する必要があります。
いわゆる負荷分散を行う必要があるということです。
その負荷分散を行うために使用するのが「ロードバランサー」と呼ばれるカテゴリに属するアプリケーションです。
AWSではElastic Load Balancingというサービスがあります。
Elastic Load Balancing
AWSのロードバランサの種類
- Application Load Blancer
- HTTP, HTTPSトラフィックの負荷分散
- リクエストの内容の基づいてトラフィックをルーティング
- マイクロサービスやコンテナといった最新のアプリケーションアーキテクチャの配信を対象とした高度なリクエストルーティングを実現
- アプリケーションレイヤー(OSIモデルレイヤー7)で動作する
- Network Load Blancer
- 極めて高いパフォーマンスが要求されるTCP、UDP、TLSのトラフィックの負荷分散
- IPプロトコルデータに基づいてトラフィックをルーティング
- 極めて低いレイテンシーを維持しながら、1秒に何百万券ものリクエストを処理可能
- 突発的で変動しやすいトラフィックパターンに対応できるよう設計されている
- ネットワークトランスポートレイヤー(OSIモデルレイヤー4)で動作する
- Classic Load Blancer
- HTTP, HTTPS, TCP, SSLトラフィックの負荷分散
- 複数のEC2インスタンス間でのトラフィック分散
- ネットワークトランスポートレイヤー(OSIモデルレイヤー4)とアプリケーションレイヤー(OSIモデルレイヤー7)で動作する
AWSのロードバランサとは
- リクエストを1つまたは複数のアベイラビリティーゾーンの登録済みターゲットにルーティングする。
- ロードバランサで受信トラフィックを許可するには、リスナーを1つ以上登録する必要がある。
- リスナーとは接続リクエストを確認するプロセスのこと
- ヘルスチェックなどを実行すると、正常なターゲットのみにリクエストを送信する、また、異常なターゲットが検出されるとそのターゲットにはリクエストが送信されない。逆に正常に戻ったときにはリクエストが送信される
- 「Application Load Blancer」「Network Load Blancer」はターゲットをターゲットグループに登録してルーティングします。
- 「Classic Load Blancer」はインスタンスをロードバランサに登録します。
Elastic Load Blancingのユースケース
- 可用性と耐障害性に優れたアプリケーション
- コンテナ化されたアプリケーション
- Amazon Elastic Container Serviceとの密接な統合により、コンテナを完全に管理できるようになりました。
ロードバランサにサービスを登録するだけでDockerの登録、解除ができる
- Amazon Elastic Container Serviceとの密接な統合により、コンテナを完全に管理できるようになりました。
- 伸縮性とスケーラビリティ
- Virtual Private Cloud(VPC)
- ハイブリット環境
- HTTP(S)で呼び出すLamda関数
ロードバランサのモニタリング
Amazon Cloud Watchメトリクスを使う
- 監視の結果(ログ)を順序次の時系列データセット(メトリクス)として取得できる
Cloud Watchアラームを作成してメトリクスを監視する => メトリクスの許容範囲を超えるとメッセージが送信される - 通常のアクセスログ: 独自に分析など行うことができる
- AWS Cloud Trailログ: Elastic Load Blancing APIの呼び出しの詳細情報をログとして保存できる
Amazon Cloud Watch
アプリケーション監視者向けの監視ツール
- オペレーションの変更が発生するとCloud Watchイベントが認識して応答、必要な修正アクションを起こす
- 使用料金は従量課金制
- しきい値を設定することで、アラームを送信したりできる
Cloud Watchアラームの作成
以下の項目を入力、設定する
<アラーム作成>
- 静的(固定値ということ)なしきい値: XXより大きい(以上)、XXより小さい(以下)を指定
- 異常検出:
- メトリクスに基づく数式
<アラームの設定項目>
- 名前空間:
- メトリクス:
- 統計:
- 期間:
- 条件:
- 追加設定:
- アクション: Amazon SNSトピックに送信することもできる
Amazon Elstic AutoScaling
必要なコンピュータ資源(リソースのこと,メモリ、ストレージなど)を自動で変動させて、かかる費用を抑えることができる機能
<具体的に>
- アプリケーションの火曜性を維持するのに役立つ
- 定義した条件により、EC2インスタンスの自動的に追加・削除できる
- 障害のあるEC2インスタンスと異常なアプリケーションを検出しユーザーの介入なくインスタンスを入れ替える
-
複数のスケーリングオプション(以下に示す)を提供する
- 手動
- スケジュール設定
- 動的
- オンデマンド
- 予測
<Auto Scalingの概要>
- 起動設定(何を?)
- AMI
- インスタンス
- IAMロール
- セキュリティグループ
- EBS
- Auto Scalingグループ(どこで?)
- VCPとサブネット
- ロードバランサ
- タイミング(いつ?)
- 現在の数を維持する(ヘルスチェック)
- 手動スケーリング(最小、最大、必要なキャパシティー)
- スケジュールに基づくスケーリング(スケジュールに基づくアクション)
- 動的スケーリング(スケーリングポリシー)
- Elastic Load Balancerが作成されて、フリーと全体のCPU使用率が60%を超えた場合に自動スケーリングポリシーが実行される
- 予測スケーリング(AWS Auto Scaling)