カテゴリー
2020年 AWS AWS Solutions Architect - Associate CDN キャッシュ クラウド コンピューター 技術一般 認定資格

AWS を学ぶ(18)CloudFront を使ってみる

この記事は、日本語で作成し、機械翻訳で外国語に訳しています。

AWS を学んでみる(8)CloudFront ってなんだろうで、CloudFront について調べてみましたが、今回は、CloudFront を実際に使ってみました。

今回の動作確認では、以下のようなイメージで、構成を作ってみます。

(1) の部分が、Web サーバーと ELB、(2) の部分が CloudFront です。

CloudFront を使ってみる

事前準備

まず、(1) の部分を作っていきます。

VPC やサブネットについては、AWS を学ぶ(1)VPC を理解するAWS を学ぶ(2)VPC を作ってみようで説明しています。

EC2 でのインスタンスの起動については、AWS を学ぶ(4)EC2 を理解するAWS を学ぶ(6)EC2 を使ってみようで説明しています。

EC2 上に、Web サーバーを起動させます。インターネットからアクセスできるように、パブリックサブネットに起動させて下さい。

Web サーバーのグローバルアドレスを確認し、ブラウザーに入力して下さい。

Web サーバーのコンテンツが表示されましたね。

次に、ELB を起動させます。

ELB の起動と設定については、AWS を学んでみる(9)ELB を使ってみようで説明しています。

今回は ALB を使ってみます。ターゲットを、ES2 上の Web サーバーで指定しておきます。

ターゲットのステータスが Healthy になりました。

ELB のDNS 名を確認し、それをブラウザーに入力してアクセスします。

Web サーバーのコンテンツが表示されましたね。ELB 経由で Web サーバーへのアクセスも成功です。

CloudFront の起動と設定

AWS 管理コンソールの検索テキストボックスに CloudFront と入力し、CloudFront を選択します。

CloudFront の管理コンソールが表示されます。

「Create Distribution」をクリックします。

今回試したいのは、Web サーバーのコンテンツキャッシュです。上の「Web」の方の「Get Started」をクリックします。

Create Distribution の画面が表示されます。

Origin Settings の中の「Origin Distribution Name」のテキストボックスをクリックし、プルダウンメニューを表示させます。

その中に、先ほどの事前準備で作成した ELB が表示されていますので、それを選択します。

これ以外の設定は、今回は特に変更しません。

画面下部の「Create Distribution」をクリックします。

CloudFront Distributions の画面に戻ります。

Statusのところが、「In Progress」になっているはずです。導入が完了するまでに、10 分くらいかかります。

Status が「Deployed」になりました。これで CloudFront の導入が完了です。

導入が完了した Distribution の「ID」をクリックして、詳細を表示させます。

「Domain Name」の箇所に表示されているのが、CloudFront を使う時のアクセス先になります。

CloudFront のドメイン名を、ブラウザーに入力してアクセスしてみます。

Web サーバーやELB経由の時と同じコンテンツが表示されましたね。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWS を学ぶ(17)CloudWatch を使ってみる

このページは、日本語で作成し、機械翻訳で外国語に変換しています。

今回は、CloudWatch について学んでみます。

例えば、何らかのしきい値を超えたらアラートを出し、Eメールで通知するということは、運用上必要だと思います。

この機能を、CloudWatch は、簡単に提供してくれます。

実際に使ってみることが早いですので使ってみました。

CloudWatch を使ってみる

AWS 管理コンソールにログインします。

検索テキストボックスで、CloudWatch と入力すると、CloudWatch が見つかるので、それをクリックします。

CloudWatch の管理コンソールが表示されます。

画面右側のメニューから、「アラーム」をクリックします。

アラーム設定画面が表示されます。

画面右上の「アラームの作成」をクリックします。

メトリクスの設定画面が表示されます。

「メトリクスの選択」をクリックします。

EBS、EC2、S3 などの項目が表示されます。表示される項目は、実際に使っている環境で異なります。

今回は、EC2 インスタンスに対して、アラームを設定したいと思います。EC2 をクリックします。

「インスタンス別メトリクス」をクリックします。

さまざまなメトリクスが表示されます。

とりあえず、分かりやすく、CPU 使用率でアラートを設定してみましょう。

一覧の中から、「CPU Utilization」をクリックします。

対象となるインスタンス ID が表示されています。これは EC2 の仮想インスタンスのインスタンスIDです。EC2 の管理コンソールも同時に開いて確認しましょう。

私の場合、テスト向けのインスタンスである、TEST-amz-linux があります。これのインスタンス名とインスタンス ID が同じであるかを確認します。

「CPU Utilization」を選択すると、現在の対象インスタンスの CPU 使用率が表示されます。

メトリクスの条件と指定の画面が表示されます。

今回は、CPU 使用率をメトリクスとして使用します。そのメトリクスは、AWS が用意しているので、メトリクス名は、そのまま使います。

今回は、CPU 使用率が 70% を超えたらアラートメールを出すようにしようと思います。「しきい値の種類」は、静的にします。

「より大きい」を選択し、「よりも」の項目で「70」を入力します。

まだトピックがありませんので、「新しいトピック」を選択し、「通知を受け取るEメールエンドポイント」に、メールの送信先になるEメールアドレスを入力します。このEメールアドレスが、アラートメールの受け取り先です。

名前と説明の画面が表示されます。

アラームの名前とその説明を入力します。

「次へ」を押すと、設定が完了します。

アクションのところを見ると、まだ「保留中の確認」になってますね。

先ほどメールの送信先に設定したメールを確認してみましょう。AWS からメールが届いているはずです。

メールの本文中にある「Confirm Subscription」をクリックします。

以下のような画面が表示されるはずです。これで、サブスクリプションは完了です。これからアラートメールが飛んできます。

CloudWatch の管理画面に戻ると、先ほど保留中だったステータス項目が、「確認済み」に変わります。

設定は、これで完了です。

CloudWatch のアラートを確認してみる

では、実際にアラートを発生させてみましょう。

今回設定しているのは、「CPU の使用率が 70% を超えたら、Eメールでアラートを出す」です。

Linux の top コマンドで、現在の CPU 使用率を確認してみます。テスト機を使ってますので、現在の CPU 使用率は 0% です。

top

次に、Linux の yes コマンドを使って、CPU 使用率を上げてみたいと思います。

これは不思議なコマンドです。Null にリダイレクトし続けると、CPU 使用率がどんどん上がっていきます。

yes > /dev/null

これを 4つ か 5つ 繰り返すと、すぐに CPU 使用率が上がります。今回は、5つ 繰り返してみましょう。

yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &

すぐに CPU 使用率が 99% まで上昇しました。

しかし、CloudWatch の方は、5分間の平均値で表示しています。すぐには結果が反映されませんので、5分から10分くらい待ってみましょう。

CloudWatch 側でも、CPU 使用率の上昇がみられるようになりました。

アラートメールが飛んでいるはずです。

メールボックスを確認してみると、70% のアラートのメールが届いてますね。動作確認は成功です。

今回は、CPU 使用率でアラートメールを飛ばすように設定してみましたが、CloudWatchは、いろいろなメトリクスが用意されています。いろんなアラートを飛ばして、試してみて下さい。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(15)Glacier とは何か?どの様に使うのか?

AWS Glacier

Amazon Glacier (以下、Glacier)は、99.999999999の耐久性を持ちながら、容量あたりの費用を抑えたアーカイブストレージサービスです。価格は安いのですが、データの取り出しの際には時間がかかってしまうという特徴があります。

ちなみに、Glacier というのは、グレイシアと読み、日本語で「氷河」という意味です。

オンプレミスの環境ですと、磁気テープを使って長期のデータ保存を行いますが、磁気テープでのバックアップには、「長期保存」、「取り出しに時間がかかる」、「アクセス頻度は低い」といった特徴があります。Glacierは、このイメージで使用されます。

S3の様に、保存するデータに対して名前を付ける事はできず、自動採番された「アーカイブID」で管理されます。

Glacierへのデータの保存は、APIによる操作、またはS3のライフサイクル管理により行われます。

余談ですが、私は以前、クラウドバックアップ関連の製品を取り扱っていたのですが、その製品がS3 やGlacier にデータを保存することができました。Glacier を保存先とする時に、設定にちょっと困ったのですが、ここがポイントでした。Glacier はS3 のバケットを経由しないと、データの保存ができないです(API を使えば別ですが)。

Glacier の価格

Glacier は非常に低コストと言われますが、具体的に価格を見てみましょう。S3と比較してみます。AWSの公式サイトに価格が掲載されています。

S3 標準GlacierS3 Glacier Deep Archive
条件最初の50TB/月      1分から12時間の取り出し     年に1、2回のアクセスで、12時間以内でのデータ取り出し
GBあたりのコスト(USD)0.0250.0050.002
S3 と Glacier のコスト比較

ちなみに私の自宅のNASには、約2TBのデータが保存されています。これをAWSのクラウドストレージ にバックアップして保存すると想定してみます。

S3 と Glacier のコストシミュレーション

1ドル120円換算で計算していますが、S3 Glacier Seep Archive だと月にして4ドル(日本円で480円)です。確かにすごく安いですね。これなら個人でも可能な金額です。

Glacier の構成要素

Glacierは、以下の4つの要素から構成されます。基本的にはS3と同じ(ただし呼び方は異なる)です。

ボールト(S3: バケット)

アーカイブを保存するための領域です。ボールトで使われる名前は、リージョン、及びアカウント内で一意であれば良いため、たのアカウントで使用されている名前も利用できます

アーカイブ(S3: オブジェクト)

Glaceirに保存されるデータのことです。各アーカイブには一意のアーカイブIDとオプションの説明が割り当てられます。アーカイブIDには、138バイトのランダムな文字列が自動的に割り当てられ、ユーザーが指定する事はできません。

インベントリ

各ボールトに保存されているアーカイブの情報(サイズ、作成日、アップロード時に指定された説明など)を収集します。1日に1回の頻度で更新されるため、最新の情報が反映されるまでに時間がかかります。マネージメントコンソールから確認する事で、リアルタイムで状況が見られます。また、ListVaults API を使用することもできます。

ジョブ

アーカイブやイベントリに対して検索をしたり、データをダウンロードするといった要求に対して処理を実施し、それらの処理状況を管理します。

Glacier を使ってみよう

ボールトの作成

AWS 管理コンソールの検索から、「Glacier」を入力し、Glacierの管理コンソールにアクセスします。

「ボールトの作成」をクリックします。

ボールトを作成するリージョンを選択し、ボールトの名前を付けます。

イベント通知の画面が表示されます。

今回は「通知を有効にしない」を選択します。

確認画面が表示されます。

設定内容を確認し、「送信」をクリックします。

ボールトが作成されました。

ボールト名をクリックしてみると、ボールトの中が見られます。まだデータ(アーカイブ)は何も保存していませんので、アーカイブ数は 0 のままです。

アーカイブデータの保存

Glacier のボールトには、上述の通り、直接アクセスができません。API または、S3 のライフサイクルを使用します。

S3 の使い方については、AWSを学んでみる14で調べてみましたので、そちらをご参照下さい。

S3 上の指定したバケツにデータを保存します。

ストレージクラスで、「Glacier」を選択します。

設定内容の確認をし、「アップロード」をクリックして、データを転送します。

転送したデータの名前の「ストレージクラス」を見てみると、Glacier になっています。これでデータがアーカイブとして、Glacier 上に保存されました。

データの取り出しオプション

Glacierにアーカイブしたデータを閲覧するためには、「データの取り出しリクエスト」を行う必要があります。取り出しリクエストを行ってから実際に取り出しができる様になるまでの待ち時間に応じて、高速、標準、バルクの3種類のリクエストオプションがあります。

高速

1−5分程度後でのデータ取得

標準

3−5時間程度後でのデータ取得

バルク

5−12時間後でのデータ取得。次の日に見られれば十分というケースに使用

データの取り出し設定オプション

データ取り出し時の設定オプションは3つあります。Glacier 上のボールトを指定し、「設定」をクリックして設定ができます。

  • 無料利用枠のみ: 無料枠の範囲でデータの取り出しができます。それを超えるデータ量になると、取得リクエストは拒否されます。
  • 最大取得率: 1時間あたりの最大取得率で価格が変わります。
  • 取得制限なし: 制限をかけません。

Glacier Select

Glacier Select は、アーカイブデータに対してSQL を実施し、条件にあったデータを抽出する機能です。つまり、Glacier に保存されているデータを直接検索することができ、アーカイブ全体を取得する必要がありません。

特定のデータだけをアーカイブから取り出せる便利な機能なのですが、使用には、対象のアーカイブデータは非圧縮のSCV形式出なければならばならないなどの条件があります。

Glacier Select は、まもなく Amazon Athena と Amazon Redshift Spectrum と統合される予定とのことです。

データの暗号化

Glacier にデータ保存する時は、SSLを使ったデータ転送が行われます。またGlacier に保存されるデータは、標準で暗号化されます。

もし独自の暗号化方式を使用したい場合は、Glacierに保存する前にその暗号化方式で暗号化を行い、そのデータをGlacierに転送します。

データのセキュリティーに関して、AWSの公式サイトでは、以下の様に記載されています。

AWS では、お客様のプライバシーに絶えず注意を払っています。弊社のお客様はデータのセキュリティを重視しています。そのため、弊社にはシステムを 24 時間体制でモニタリングしている世界トップクラスのセキュリティ専門家チームがおり、お客様のコンテンツを保護しています。AWS により、暗号化、移動、保管管理機能を含め、常にデータを保有しているという認識を持って、最も安全なグローバルインフラストラクチャを構築できます。データセンターとリージョンを相互接続する AWS グローバルネットワークを流れるすべてのデータは、安全性が保証された施設を離れる前に物理レイヤーで自動的に暗号化されます。すべての VPC クロスリージョンピアリングトラフィックや、カスタマーまたはサービス間の TLS 接続などといった追加の暗号化レイヤーもあります。AWS Key Management System (KMS) が管理するキーを使用する、あるいは FIPS 140-2 レベル 3 検証済み HSM を使って CloudHSM で独自の暗号化キーを管理することにより、転送中および保存中のデータを簡単に暗号化して、許可されたユーザーのみがアクセスできるようにするツールを提供しています。AWS では、地域および地方のデータプライバシー法や規制を順守していることを示すために必要な管理と可視性も提供しています。グローバルインフラストラクチャの設計により、データが物理的に配置されている地域を完全に制御し、データ常駐要件を満たします。

AWS 公式ウェブサイト

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)
カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(14)S3とは

AWS Simple Storage Service (以下、S3)は、AWS が提供する、安価で耐久性の高いオブジェクトストレージサービスです。容量は無制限(ただし、1つのオブジェクトの最大サイズは 5TB)です。

オブジェクトストレージとは?

ストレージとして一番メジャーなファイルストレージと比較すると、分かりやすいと思います。ファイルストレージはディレクトリ構造をもち、フォルダやファイルを管理しますが、オブジェクトストレージはディレクトリ構造を持ちません。フラットな構成で、ユーザーが独自にデータに対して情報(メタデータ)を付与することができます。このページが参考になります。

利用料とSLA

  • 1ヶ月あたり、0.025 USD/GB(月に 10GB 使っても30円程度。cf. EBS は、1ヶ月あたり 0.12 USD/GB)
  • データは複数のAZに保存され、その耐久性は、99.999999999%(イレブンナイン)

S3 の構成要素

バケット

オブジェクト( データ)を保存するための領域です。バケットは名前を付けて管理しますが、その名前は、AWS内でユニークである必要があります。

キー名

各オブジェクトに付けられる名前です。

オブジェクト

S3 上に保存あれるデータそのものです。各オブジェクトにはキーが付与され、「バケット名+キー名+バージョンID」で、必ずユニークになるURLが作成されます。

メタデータ

オブジェクトデータを管理するための情報です。オブジェクトの作成日時やサーズと言ったシステム定義情報以外にも、アプリケーションで必要となるユーザーが定義する情報をメタデータに保存することもできます。

S3 の使い方

REST や SOAP と言った HTTP ベースの Web API を使用して、S3 上のオブジェクトにアクセスします。

S3 はウェブの管理コンソールから、シンプルなオペレーションで使用することができます。やることは、バケット(フォルダ)を作り、その中にファイル(オブジェクト)やフォルダを保存していきます。

S3 上のバケットとその配下のフォルダ

S3 の機能

アクセス管理
  • ユーザーポリシー・アクセスポリシーなどでアクセスを管理
  • IAMで利用できるユーザーを管理
  • バケット単位で、ユーザーや送信元IPアドレスなどを制限
Webホスティング機能
  • 静的サイトであれば、S3だけで公開することが可能
  • ウェブサイトのラインディングページを保存したり、ウェイブサーバの障害時のSorry ページを置いておくなど
他のAWSサービスとの連携が豊富
  • Redshiftを使ってS3のデータを利用するSpectrum機能
  • S3にデータが保存されたらLumbdaを起動するFunction機能(起動トリガー)

S3 がよく使われるシーンの例

S3 は柔軟性に優れたサービスであるため、アイデア次第では使い方は無限大です。代表的な使われ方として、以下のものがあります。

  • バックアップデータの保存
  • ビッグデータ解析用のデータ一時保存
  • ETL (Extranc/Transform/ Load)の中間ファイルの保存
  • EC2インスタンスやコンテナからのログの転送
  • 静的コンテンツのホスティング

具体例:

1. 静的コンテンツの配置
  • 今、ご覧になっているこのブログのページで使っているイメージファイルも、S3 上に保存してあり、そこから配信しています。
2. ログなどのエクスポート先
3. バッチ連携用ファイルの保存先
4. 静的ウェブホスティング

静的ウェブホスティング機能を行う場合、注意点があります。

  • 静的コンテンツに限る
  • サーバサードの動的なコンテンツをホスティングすることはできない
  • 使用する独自ドメインとバケット名を一致させておく必要がある

ストレージクラス

S3 では、用途に応じて7つのランクを設けています。これをストレージクラスと呼びます。ストレージクラスにより、SLAが設定されます。

STANDARD(スタンダード)

これがデフォルトのストレージクラスです、低遅延と高スループットを兼ね備え、S3 の性能が最も発揮されるクラスとなります。

  • 耐久性:99.999999999%
  • 可用性:99.99%
STANDARD-IA(標準 IA)

STANDARDよりは保存にかかるコストが安価になるストレージクラスです。参照頻度の低いデータ向けとなるため、アクセスが必要のないデータ、それほど頻繁にアクセスしないデータ、といったデータを保存する時に向いています。

  • 耐久性:99.999999999%
  • 可用性:99.99%
ONEZONE-IA(1ゾーン IA)

単一AZ内のみでデータを複製するストレージクラスです。1つのAZ内でのみ複製を行うため、AZ単位で障害が発生した場合、データの復元ができない可能性が高いです。この点以外は、STANDARD-IAと同等のサービスレベルが提供されます。

  • 耐久性:99.999999999%
  • 可用性:99.5%
INTELLIGENT-TIERING(インテリジェントな階層型)

参照頻度の高低を明確に決めることができないデータ向けのストレージクラスです。STANDARDとSTANDARD-IAの2層構成となっており、30日以上参照されなかったデータは、自動的にSTANDARD-IAに移動されます。データの移動が発生するため、頻繁に移動は発生するとコストが高くなります。

  • 耐久性:99.999999999%
  • 可用性:99.9%
Glacier

ほとんど参照されない、アーカイブ目的のデータを保存するストレージクラスです。このクラスに保存されたデータにアクセスする場合、事前にアクセスリクエストする必要があります。またアクセスできるようになるまでに、数分から数時間かかるという特徴があります。

  • 耐久性:99.999999999%
  • 可用性:99.99%

上記5つのストレージクラス以外に、更に2つのストレージクラスが追加されているようです(2020年8月30日時点)。

Glacier Deep Archive

ほとんど参照されない、アーカイブ目的のデータを保存するストレージクラスです。アクセスできるようになるまでに、数時間かかるという特徴があります。1 年のうち 1 回か 2 回しかアクセスされないようなデータを対象とした、長期保存やデジタル保存をサポートします。特に、金融サービス、ヘルスケア、パブリックセクターなどの規制が厳しい業界を対象としており、コンプライアンス要件を満たすために 7ー10 年以上データを保管するように設計されています。

低冗長化

ほとんど参照されない、アーカイブ目的のデータを保存するストレージクラスです。推奨はされていないみたいです。

ライフサイクルの管理

S3 に保存されたオブジェクトは、その利用頻度に応じてライフサイクルを定義することができます。

移行アクション

データの利用頻度に応じて、ストレージクラスを変更します。最初はアクセス頻度が高いが、一定期間過ぎると低くなり、最後にはアーカイブさせると言った移行ができます。

有効期限アクション

指定された期限を越えたオブジェクトを、S3 から削除します。S3 は容量無制限のストレージサービスですが、保存容量が増えればコストも上がります。不要なデータは定期的に削除することが望ましいです。

バージョン管理

1つのオブジェクトに対して、複数のバージョンを管理(バージョニング)することができます。バージョニングは、バケット単位で有効・無効が指定できます。真・旧の両方のオブジェクトが保存されるため、保存容量が増えます。

アクセス管理

S3 のアクセス管理には、バケットポリシー、ACL、IAMが使用できます。

バケットポリシーは、バケット単位でのアクセス制御を行います。

オブジェクト単位での制御には、ACLやIAMを使用します。

データの暗号化

暗号化は、サーバ側での暗号化とクライアント側での暗号化の2種類があります。

サーバ側での暗号化は、データがS3 に書き込まれる時に暗号化され、読み取る時に復号化されます。

クライアント側での暗号化は、AWS SDK を使って、S3 に送信される前にデータの暗号化が行われます。復号化は、クライアント側で暗号化されたデータのメタデータから、どのキーで復号化するのかが判断されます。

サーバ側での復号化は、バケットに対してとオブジェクトに対して行えます。

バケットに対しての暗号化
オブジェクトに対しての暗号化

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(8)CloudFront って何だろう

Amazon CloudFront とは

Amazon CloudFront(以下CloudFront)は、HTMLファイル、CSS、画像、動画といった静的コンテンツやストリーミングといった動的コンテンツをキャッシュし、オリジンサーバー(本来のアクセス先)の代わりに配信する、AWSのCDNサービスです。

CloudFrotでは、エッジローケーションと呼ばれるデータセンターを通じてコンテンツ配信が行われます。世界中に120を超えるエッジローケーションがあり、CloudFront を使うと、ユーザーから最も近いエッジローケーションからコンテンツを配信できます。

例えば、日本のユーザーが北米にあるサーバーにアクセスすることを考えてみましょう。

CloudFront を使わない場合、エンドユーザーは、オリジンサーバーとなる北米にあるサーバーにアクセスすることになります。距離遅延としては、180ミリ秒くらいありレスポンスが非常に遅いです。

CloudFront を使う場合、エンドユーザーは最寄りの CloudFront に接続できます。日本のユーザーは日本にある CloudFront にアクセスができるため、距離遅延を非常に小さく抑えられます。

※ 実際の距離遅延は、利用している回線や利用状況によっても変動します。

CoudFront ですが、代表的なところですと、以下のようなサービスで利用されています。

Amazon Prime Video

  • NFLのサーズデーナイトフットボールを、世界200カ国以上でスムーズに配信するためにCloudFrontを利用
  • 遅延の少ないライブ映像を提供することができるため、ユーザーに最新の試合の様子を迫力のある状態で提供

Hulu

  • CloudFrontをはじめとしたAWSのインフラストラクチャーで、定額制動画配信サービスライブ映像を配信
  • 急に視聴者が増えてトラフィック量が増大したとしても、スムーズにサービスを提供が可能

CloudFront の構成

CloudFront には、以下の構成要素があります。

1. バックエンド
  • オリジンサーバーのことを言います。
  • オリジンサーバーとして、ELB、 EC2、 S3、 オンプレのサーバーを指定できます。
  • URLのパスに応じて、異なるオリジンサーバーを指定することも可能となります。
  • これにより、1つのドメインで複数のサービスを提供することも可能となります。
2. エッジサーバー
  • CloudFront のことを言います。
3. キャッシュ
  • ユーザーからリクエストを受けたエッジサーバーは、要求されたファイルが自分の中にキャッシュとしてあるかを確認します。
  • キャッシュとしてない場合、オリジンサーバからファイルを取得し、それをキャッシュとして保持します。
4. キャッシュルール
  • 拡張子やURLパス毎に、キャッシュ期間を指定するとこが可能となります。
  • デフォルトでは24時間キャッシュが保持されます。

具合的に何ができるのか?

CloudFront を利用すると、オリジンサーバーの代わりに、ユーザーに対してレスポンスを返すことができます。これにより、以下のメリットがあります。

ユーザーへのコンテンツ配信
  • 静的ファイルや動的ファイルを、ユーザーに最も近いサーバーから配信できる。
ストリーミングの配信
  • 動画や音声といったストリーミングデータの配信を、ユーザーから最も近いサーバーから行える。
  • Adobe MEdia Serverなど複数の製品に対応している。
CDNデータキャッシュ
  • 初回のアクセスの際に、オリジンサーバから取得したコンテンツをキャッシュする。
  • 次回以降は、キャッシュの期限が切れるまで、キャッシュしたコンテンツを配信する。
エッジセキュリティー
  • AWSのさまざまな組み込み保護機能を利用可能となり、ネットワークレベル、アプリケーションレベルの両方でのセキュリティーが提供される。
  • オリジンサーバーを、DDOS攻撃から守ることができる。
レポーティング
  • キャッシュが使われた割合やエラー率といった統計情報を、レポートとして参照できる。

CloudFront を利用することにより、以下の4つの課題を解決できます。

・サーバーの負荷

画像や動画など、ファイルサイズが大きいコンテンツへのアクセスの度にオリジンサーバーへアクセスさせると、サーバーの負荷が高くなりますが、CloudFront を使うことで、その負荷を減らすこともできます。

・ネットワーク遅延の低減

サーバーを日本国内に設置してサービスを提供したとして、海外からのアクセスが多い場合、距離遅延の値が大きくなります。CloudFront を使ってユーザーに近いところから配信すれば、その遅延を低減できます。

・コストの削減

初期費用は無料で始められ、「リクエスト数+送信量」での従量課金となります。新規ユーザーは12ヶ月間、500GB のデータ送信と2,000,000回のHTTP/HTTPS リクエストが無料になります。

・可用性の向上

予想外のアクセスがあっても、オリジンサーバーの高負荷やサーバーダウンによるサービスの影響を避けられます。

ディストリビューション

ディストリビューションは、CloudFront による配信の方式です。方式としては2つあります。

1. ダウンロードディストリビューション
  • 静的なコンテンツ向け
  • HTTP/HTTPSを利用して、HTML、CSS、画像などのデータを配信
2. ストリーミングディストリビューション
  • 動的なコンテンツ向け
  • HLS(Apple HTTP Live Streaming)や RTMP(Real Time Messaging Protocol)を利用して、動画のストリーミングを配信

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWSを学ぶ(7)Route 53 について

Amazon Route 53 とは

Amazon Route 53 (以下 Route 53) は、AWS が提供する DNS サービスのことです。Web コンソールや API から簡単にドメイン情報やゾーン情報を設定したり管理したり可能となります。

Route 53 は、以下の機能を持つ DNS です。

  • ドメイン管理機能
  • 権威 DNS 機能

権威 DNS なので、自分が保持しているドメイン名以外の名前解決は行いません。また、こういった情報を保持していない DNS を区別して、キャッシュ DNS と呼びます。

また、Route 53 は単にドメイン情報や DNS 情報を管理するだけでなく、ネットワークトラフィックのルーティングや接続先のシステムの状況に応じた接続先の変更も行えます。

Route 53 では、こういったオプションを使って、可用性やレスポンスを高めることができます。

Route 53 の特徴

信頼性

  • 高い SLA(100%と言われている)

この高い信頼性の部分ですが、4つのネームサーバーで構成されているため、4台のサーバが同時に障害になることはないということから、100% としているようです。

コスト

  • 使った分のみのコストで非常に安価

柔軟性

  • 7つのトラフィックルーティングポリシー

ドメインの管理

Route 53 を使って、新規のドメインを取得したり、更新したりの手続きができるため、ドメインの取得からゾーン情報の設定まで、一貫した管理が可能になります。

ドメインの年間利用料は、通常の AWS 利用料の請求に含めることができるため、自動更新機能を使って更新漏れも避けられます。

ホストゾーン

レコード情報の管理単位です。通常はドメイン名となります。

DNS では IP アドレスとドメイン名やホスト名を変換する「アドレス帳」を持っていますが、AWS ではこれをホストゾーンと呼んでいます。

例えば「kkinternal.com」のレコード情報を DNS で管理する場合、「kkinternal.com」がホストゾーンということになる。

レコード情報

「www.kkinternal.com」は「192.168.1.100」という IP アドレスを持つといったような、ドメイン名又はサブドメイン名と IP アドレスを変換するための情報のことです。

一般的な DNS のレコード:

DNS の基本レコードについては、以下のようなものがあります。

  • A レコード:ホスト名に対する IPv4 アドレスを定義(Address)
  • AAAA レコード:ホスト名に対する IPv6 アドレスを定義
  • CAA レコード:ドメインまたはサブドメインの証明書の発行を許可する認証機関 (CA) を定義(Certification Authority Authorization)
  • CNAME レコード:ホスト名やドメイン名の別名を定義(Canonical Name)
  • MX レコード:ドメイン宛てのメールサーバーのホスト名を定義(Mail Exchange)
  • NAPTR レコード: 動的委任発見システム (DDDS: Dynamic Delegation Discovery System) アプリケーションで、1つの値を別の値に変換または置き換えるために使用(The Naming Authority Pointer)
  • NS レコード:ゾーンを管理するネームサーバー名を定義(Name Server) 
  • PTR レコード:アドレスに対するホスト名(逆引き)を定義(Pointer Resource)
  • SOA レコード:DNS サーバの動作を決める基本情報を定義(Start Of Authority)
  • SPF レコード:送信ドメイン認証を定義(Sender Policy Framework)
  • SRV レコード:負荷分散サービスの提供や冗長性の確保、サービスポート番号(Service Location)
  • TXT レコード:ホスト名に関連づけるテキスト情報(文字列)を定義 (Text)

Route 53 が使える DNS レコード:

Route 53 で使用できるレコードは、上記の一般的なレコードの他に、Aliasレコードというものがあります。

  • Alias レコード:CloudFront(AWS が提供する CDN サービス)や ELB,、S3(AWS が提供するオブジェクトストレージの1つ)などといった AWS のリソースを FQDN 指定できる。
CNAME レコードでも同じようなことが可能であるが、Zone Apex にも登録できるという点が CNAME と異なる。

これ、正直なところ、私にはあまりピンときません。DNS に関する深い知識がありませんので。とりあえず、「CNAME レコードでは制限(Zone Apex には登録ができない)があるが、Alias レコードの方にを使うとその制限がない」くらいで理解しておきます(何事も学ぶことを進めていけば、後から分かるようになります!)。

DNS を深く理解している方は、こちらのサイトに違いについていろいろと記述がありますので、読んでみると理解が深まるかもしれません。

Zone Apex とは

ドメインそのものを指します。つまり、「kkinternational.com」が Zone Apex になります(「www.kkinternal.com」などがサブドメイン)。

「kkinternal.com」を S3 のウェブホスティングサービスにアクセスする独自ドメインとして利用したい場合、Route 53 以外の DNS では CNAME の仕様上、登録ができない。

トラフィックルーティングポリシー

DNS の名前解決の問い合わせに対して、どの様に応答するかを決めるルーティングポリシーが 7つあります。

このポリシーについては、トラフィックルーティングポリシーのAWS のサイトをしっかり読むことをお勧めします。

1. シンプルルーティング

  • 標準 DNS のレコードを使用
  • 標準的な 1対1 のルーティング(1つのリソースに対してトラフィックをルーティンング)

2. フェールオーバールーティング

  • アクティブ/スダンバイ方式
  • アクティブ側のシステムへのヘルスチェックが失敗した場合、スダンバイ側システムへルーティング
  • Sorry サーバーを登録しておけば、本番機の障害時に Sorry コンテンツを表示させることができる

3. 位置情報ルーティング

  • ユーザーの位置情報(DNS リクエストの位置情報)に基づき、トラフィックをルーティング
  • 日本からのアクセスは日本語のコンテンツの Web サーバーに接続させることができる

4. 地理的近接性ルーティング

  • リソースの場所に基づき、トラフィックをルーティング
  • トラフィックの発信元の地理的リージョンのサイズをバイアスという値で定義
  • トラフィックをある場所のリソースから別の場所のリソースに移動する際に使用

5. レイテンシールーティング

  • 複数箇所にサーバーが分散されて設置されている場合、遅延が最も小さいサーバーにリクエストをルーティング
  • 特定サーバーだけ高負荷になった場合にリクエストを分散

6. 複数値回答ルーティング

  • 1つのレコードに異なる IP アドレスを複数登録し、ランダムに接続させる
  • 複数のリソースへルーティングするため、ヘルスチェックで NGとなったサーバーにはアクセスをさせない
  • 正常に稼働しているサーバーに対してのみの負荷分散が可能

7. 加重ルーティング

  • 指定した比率で複数のリソースにトラフィックをルーティング(重みを使ってトラフィック負荷を分散)
  • 拠点をまたがってリソースの異なるサーバーが設置されている場合、リクエスト比率を調整することが可能
  • テストのために新しいサービスをリリースしたサーバーに、一定割合のユーザーを誘導するといった使い方もできる

その他の機能

トラフィックフロー

トラフィックルーティングポリシーを組み合わせると、どうしても複雑になってしまいます。

  • ルーティングポリシーを組み合わせることで、さまざまなルーティング環境を構築できる。
  • しかし、各レコード間の設定が複雑になる。

これを管理しやすくするためのツールがトラフィックフローになります。ビジュアル的に分かりやすく組み合わせるためのツールで、複雑なルーティングをビジュアルエディターで構成することが可能になります。

  • 複雑なルーティングをビジュアルエディターで構成することが可能
  • ルールのバージョン管理やロールバックも可能
  • 少々価格が高い(ポリシーあたり 50 USD/月)

DNS フェールオーバー

Route 53 が持つフォールトトレランスアーキテクチャーになります。システムに異常が発生した場合でも、被害を最小限に抑える仕組みを提供します。

稼働中のシステムに障害が発生しウェブサイトの閲覧ができなくなった場合、一時的に接続先を Sorry サーバーに切り替えるといった感じで動作させられます。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]

価格:2,618円
(2020/8/12 12:20時点)
感想(0件)