お仕事

AWSクラウドプラクティショナー資格取得のための学習用備忘録(ネットワークサービス)

 

メモ

仕事で前回のITパスポート資格に続き、スキルアップと今のPJで活かすためにAWSの資格を取得することにしたのでその勉強用の備忘録です。

まずは「クラウドプラクティショナー(AWS Certified Cloud Practitioner(CLF-C01))」から。

いつも何か勉強するときは基本的に書きながら覚えるのでここでアウトプットします。

有益な情報かどうかは不明(笑)

 

スポンサーリンク

VPC

 

VPCの概要

 

VPCは、Amazon Virtual Private Cloudの略。
AWSクラウド内にプライベートなネットワーク環境を構築することができる。
ユーザーは標準的なネットワーク構成項目を設定でき、
ネットワーク構成やトラフィックを完全にコントロールすることができる。
AWSのサービスの中にはVPC内で利用するものとVPC外で利用するものとがある。
各サービスがどこで起動するのかを知っておくことで設計に役立てることができる。

VPC内で起動する主なサービスの機能要素は、
VPC、サブネット、インターネットゲートウェイ、ルートテーブル、
セキュリティグループ、ネットワークACL、NATゲートウェイ(NATインスタンス)。

 

★VPCは、隔離されたプライベートなネットワーク構成をユーザーがコントロールできるサービス

 

VPCの作成

 

VPCは、リージョンを選択して複数のAZをまたがって作成することができる。
VPCを作成する時にIPアドレスの範囲をCIDRで定義する。
例えば、東京リージョンにおいて、開発環境、テスト環境、本番環境をネットワークで隔離しておくことも可能。

 

CIDR(Classless Inter-Domain Routing)

 

CIDRでは、10.0.0.0/16のようにIPアドレスの範囲を定義する。
こうすることで、10.0.0.0~10.0.255.255までの65,536のIPアドレスを使用できる。

 

★VPCはリージョンを選択して作成

★CIDRでVPCのプライベートIPアドレスの範囲を定義

 

サブネット

 

VPCで設定したアドレス範囲をサブネットに分けて定義する。
サブネットは作成する時にAZとIPアドレス範囲を定義する。
IPアドレス範囲はVPCで定義した範囲内で定義する必要があり、同一VPC内の他のサブネットと重複してはいけない。

サブネットでは」、最初の4つのIPアドレスと最後の1つのIPアドレスがAWSによって予約されているので、
ユーザーが使うことはできない。したがって、実際に使えるIPアドレスは251となる。
サブネット1の場合は以下のようになる。

・10.0.1.0:ネットワークアドレス

・10.0.1.1:VPCルーター用

・10.0.1.2:AWSで予約

・10.0.1.3:将来の利用のためにAWSで予約

・10.0.1.255:ネットワークブロードキャストアドレス

 

★サブネットはAZを選択して作成

★CIDRでサブネットのプライベートIPアドレスの範囲を定義

 

インターネットゲートウェイ

 

VPCとパブリックインターネットを接続するためのゲートウェイ。
VPCにつき1つのみ作成することができる。
インターネットゲートウェイ自体が水平スケーリングにより冗長性と高い可用性を持っているため、
単一障害点にはならない。帯域幅の制限もない。
インターネットゲートウェイは、作成してVPCにアタッチすることで使用できる。

 

★インターネットゲートウェイはVPCとパブリックインターネットを接続

★インターネットゲートウェイ自体が高可用性と冗長性を持っている

 

ルートテーブル

 

サブネットの経路をルートテーブルで設定する。
ルートテーブルはVPCを選択して作成する。
続いてエントリを設定し、サブネットに関連づける。
サブネットに関連づけることで、サブネットの通信経路を決定する。

VPCを作成したときに、メインルートテーブルというルートテーブルができている。
メインルートテーブルはサブネットに関連づけられたデフォルトのルートテーブルなので、
そのまま使うのではなく、カスタムルートテーブルを作成してサブネットに関連づける。

 

★ルートテーブルはサブネットと関連づける

★サブネット内のリソースがどこに接続できるかを定義する

 

パブリックサブネットとプライベートサブネット

 

サブネットは、サブネット内のインスタンスなどのリソースの役割に応じて分ける。
サブネットを多く作り細かく分けていくと、構成が複雑になり、管理が煩雑になる。
特別な要件がない最小構成は各AZに2つの役割でサブネットを分割する。
その2つの役割は、インターネットに対して直接ルートを持つパブリックサブネットか、
ルートを持たないプライベートサブネット。

・パブリックサブネット:インターネットゲートウェイに対してのルートを持つルートテーブルに関連づけられている、
パブリックサブネット内のインスタンスなどのリソースは、外部との直接通信ができる。

・プライベートサブネット:インターネットゲートウェイに対してのルートを持たないルートテーブルに関連づけられている。
プライベートサブネット内のインスタンスは外部アクセスから保護できる。
各サブネットの間にはローカル接続のルートがあるので、
プライベートサブネット内のリソースはパブリックサブネット内のリソースと通信ができる。

 

★サブネットは役割で分割する

★外部インターネットに接続できるのがパブリックサブネット

★外部インターネットに接続せず外部アクセスからリソースを保護できるのがプライベートサブネット

 

セキュリティグループ

 

セキュリティグループとは仮想ファイアウォール機能。
VPC内のリソース(EC2、RDS、ELBなど)のトラフィックを制御する。

例では、80番ポート(HTTP)への任意の場所からのアクセスと、
22番ポート(SSH)への特定のポートへのアクセスを許可している。
こうすることで、たとえば25番ポートへのアクセスや、
22番ポートへの許可していない送信元からのアクセスをブロックできる。
1つのセキュリティグループを複数のインスタンスに設定することができる。

セキュリティグループの送信元はCIDRでIPアドレス範囲を指定するか、
他のセキュリティグループのIDを指定することもできる。

例では、Web層、アプリケーション層、データベース層をロードバランサーで疎結合している。
それぞれのセキュリティグループでは、
受信が必要な送信元となるリソースに設定されたセキュリティグループIDを指定している。
IPアドレスに依存しない、柔軟かつ最低限の送信元だけを許可するセキュアな設定を可能としている。

セキュリティグループはVPCを指定して作成する。
デフォルトではインバウンド(受信)へのアクセスがすべて拒否されているので、許可するものだけを設定する。
いわばトラフィックのホワイトリストを設定するということ。

 

★セキュリティグループは、インスタンスに対してのトラフィックを制御する仮想ファイアウォール

★許可するインバウンドのポートと送信元を設定するホワイトリスト

★送信元には、CIDRか他のセキュリティグループIDを指定できる

 

ネットワークACL

 

ネットワークACL(アクセスコントロールリスト)はサブネットに対して設定する仮想ファイアウォール機能。
サブネット内のすべてのリソースに対してのトラフィックに影響がある。
デフォルトですねてのインバウンド(受信)とアウトバウンド(送信)が許可されている。
許可の設定も可能だが、拒否するものを設定するブラックリストとして使用できる。

ネットワークACLはデフォルトで全てのトラフィックを許可している。
ネットワークACLは必要な要件があった場合にのみ設定する、追加のセキュリティレイヤーとして機能させることができる。特に必要な要件がなければデフォルトのままで構わない。

 

★ネットワークACLは、サブネットに対してのトラフィックを制御する仮想ファイアウォール

★拒否するインバウンドのポートと送信元を設定するブラックリスト

★必要がなければ設定しない追加のセキュリティレイヤー

 

構成例:基本構成でWebサーバーを起動する

 

ここでは、VPCを使ってパブリックサブネット内でEC2サーバーを起動して、
インターネット経由でブラウザからアクセスしてみる。
今回はパブリックサブネットを1つしか使わないが、最小の推奨構成例として、
2つのAZ上にパブリックサブネットを1つずつ、プライベートサブネットを1つずつ作成する。

 

まず、VPCダッシュボードで東京リージョンを選択する。

VPCを作成する。CIDRは10.0.0.0/16としている。

インターネットゲートウェイを作成する。

作成したインターネットゲートウェイをVPCにアタッチする。

パブリックサブネットとプライベートサブネットを作成する。

パブリックサブネット用のルートテーブルを作成する。

インターネットゲートウェイのID(igwで始まるID)へのエントリを設定し、サブネットに関連づける。

Public Subnet1とPublic Subnet2に関連づける。

セキュリティグループを作成する。

80番ポート(HTTP)を任意の場所からアクセスできるようにする。
22番ポート(SSH)には、「マイIP」を選択することで、今インターネットに接続しているグローバルIPアドレスを指定できる。

これでVPCの設定は完了。続いてEC2を起動する。
EC2のダッシュボードで東京リージョンを選択する。そして、[インスタンスの作成]ボタンから作成していく。

AMIにはAmazon Linuxを選択する。

インスタンスタイプにはt2.microを選択する。

詳細設定画面でVPCを選択する。
サブネットにはPublic Subnet1を選択する。
外部から直接アクセスするのでパブリックIPアドレスの有効化を忘れないようにする。

画面を下にスクロールし、高度な詳細のユーザーデータにコマンドをテキストで入力する。

ユーザーデータを使うことでEC2の初回起動時にコマンドを自動実行することができる。
ユーザーデータはアプリケーションの自動デプロイや初期設定の自動化などに使われる。

ストレージはデフォルトのまま次に進む。

タグの設定では「Name」キーを「Web Server」という値にしておく。
「Name」キーに設定した値がマネジメントコンソールのEC2の一覧に表示される。

セキュリティグループには、あらかじめ作成しておいた「Web Security Group」を選択する。

確認画面が表示されるので、作成する。キーペアは既存のものを使用するか、新規作成する。

割り当てられたパブリックIPアドレスをコピーして、ブラウザに貼り付けてアクセスしてみる。
Apacheのデモ画面が表示され、外部からアクセスできたことが確認できた。

 

★インターネットゲートウェイをVPCにアタッチする

★インターネットゲートウェイへの経路を持つルートテーブルをサブネットに関連づける

★EC2インスタンスをそのサブネット内で起動する

★EC2インスタンスにパブリックIPアドレスを有効にする(またはEC2のパブリックIPアドレスを固定するElastic IPをアタッチする)

 

ハイブリッド環境構成

 

VPCに、既存のオンプレミス環境からVPNまたは専用線で接続することができる。
つまり、既存のオンプレミス環境の拡張先としてAWSを使うことができる。
オンプレミスとクラウドの両方を活用する構成をハイブリッド環境構成という。

 

ハードウェアVPN接続

 

AWSに作成した仮想プライベートゲートウェイと、
オンプレミス側のカスタマーゲートウェイを指定してVPN接続を作成できる。
たとえば社内のプライベートネットワークのみで稼働する業務アプリケーションをAWSで実現できる。

仮想プライベートゲートウェイはVPCに1つアタッチできる。
インターネットゲートウェイ同様に可用性、冗長性に優れている。
EC2にソフトウェアVPNをインストールしてVPN接続を実現することもできるが、
ハードウェアVPN接続を使用すれば可用性、スケーリングをAWSに任せることができる。

仮想プライベートゲートウェイを作成する。

作成した仮想プライベートゲートウェイをVPCにアタッチする。

カスタマーゲートウェイの設定をする。

仮想プライベートゲートウェイとカスタマーゲートウェイを指定してVPN接続の設定をする。

カスタマーゲートウェイ側のメーカーに応じて設定をダウンロードすることができる。
これを参考にするか、もしくはそのままルーターに設定することでVPN接続ができる。

 

ダイレクトコネクト

 

帯域を確保するため、もしくはセキュリティとコンプライアンス要件を満たすために専用線を選択することがある。
ダイレクトコネクト(AWS Direct Connect)を使用することで、
AWSとデータセンターの間でプライベートなネットワーク接続を確立できる。
AWS Direct Connectは、ハイブリッド環境を構築する上で非常に重要なサービスのため、覚えておく。

 

VPCピアリング接続

 

オンプレミスとの接続以外にも、複数のVPC同士を接続する、VPCピアリング接続という機能もある。

VPCピアリング接続を使うと、同じリージョン、同じアカウントだけではなく、
別のリージョン、別のアカウントの複数のVPCとも接続できる。

他にVPCに接続する方法として、大規模ネットワークの構築も可能な
AWS Transit GatewayやクライアントベースのAWS Client VPNがある。

 

★VPCと既存のオンプレミス環境をVPN接続できる

★VPCと既存のオンプレミス環境をダイレクトコネクトを使って専用線で接続できる

 

Cloud Front

 

Amazon CloudFrontは世界中に150箇所以上あるエッジロケーションを使い、
最も低いレイテンシー(遅延度)でコンテンツを配信できるコンテンツ配信ネットワーク(CDN)サービス。
S3から直接配信したり、ELB経由のEC2から配信するよりも、CloudFrontにキャッシュを持ち、
ユーザーにはキャッシュコンテンツを配信する方が、より速く効率的にコンテンツを提供できる。

★CloudFrontはエッジロケーションを使用するCDNサービス

 

CloudFrontの特徴

 

CloudFrontには次の特徴がある。

・キャッシュによる低レイテンシー配信

・ユーザーの近くからの低レイテンシー配信

・安全性の高いセキュリティ

 

キャッシュによる低レイテンシー配信

 

例えばS3経由やELB経由のEC2からWebコンテンツを配信しているとする。

CloudFrontを使っていないとき、ユーザーはその都度、これらのオリジナルコンテンツにアクセスする。

距離が離れているといった距離的な理由や、
コンテンツのサイズが大きくEC2に負荷がかかっているなどの理由で、
ユーザーへの配信に遅延が発生している場合、
コンテンツを閲覧するすべてのユーザーに同じように遅延が発生する。

CloudFrontを使用してエッジロケーションにキャッシュを持つことで、
同じ場所にいる3人のユーザーがアクセスしたとき、
1人目のユーザーはオリジナルコンテンツからの配信をCloudFront経由で受けることになるが、
2人目、3人目のユーザーは、キャッシュからコンテンツを遅延なくブラウザに表示できる。

★エッジロケーションにキャッシュを持つことで低レイテンシー配信を実現

 

ユーザーの近くから低レイテンシー配信

 

例えば、東京リージョンのS3経由やELB経由のEC2コンテンツを、
米国西海岸のユーザーがWebブラウザで閲覧しているとする。
このとき、CloudFrontを使用していると、
ユーザーは近くのレイテンシーが低いエッジロケーションにアクセスできる。
そのエッジロケーションにキャッシュがある場合は、
そのコンテンツが直接配信される。
近くのエッジロケーションから配信されることで、よりレイテンシーの低い配信が実現される。

エッジロケーションにキャッシュがないタイミングでも、
エッジロケーションと各リージョンの間はAWSのバックボーンネットワークを経由しているので、
直接アクセスするよりも良いネットワークパフォーマンスが提供される。

★世界中のエッジロケーションが利用できるので、ユーザーは最もレイテンシーの低いエッジロケーションから配信される。

 

安全性の高いセキュリティ

 

CloudFrontには、顧客が所有しているドメインの証明書を設定できる。
これにより、ユーザーからHTTPSのアクセスを受けることができ、通信データを保護できる。
証明書はACMを使用すると、追加費用なしで作成、管理できる。

AWS Shield、AWS WAFといったセキュリティサービスと組み合わせることで、
外部からの攻撃や脅威からオリジナルコンテンツを保護できる。AWS Shieldは追加費用なしで利用できる。

★通信を保護するために証明書を設定できる

★外部の攻撃からも守ることができる

 

スポンサーリンク

Route 53

 

Amazon Route53は、DNS(ドメインネームシステム)サービス。
一般的なDNSサービス同様に、ドメインに対してのIPアドレスをマッピングしてユーザーからの問い合わせに回答する。
たとえば今現在、「www.sample.com」というドメインに対して「00.11.22.33」というIPアドレス情報を回答される。

Route53はエッジロケーションで使用される。

★Route53はエッジロケーションで使用されるDNSサービス

 

Route53の主な特徴

 

Route53には次の特徴がある。

・様々なルーティング機能

・高可用性を実現するヘルスチェックとフェイルオーバー

・ルートドメイン(Zone Apex)のエイリアスレコード

 

様々なルーティング機能

 

ルーティング機能には次のものがある。

・シンプルルーティング:問い合わせに対して、単一のIPアドレスを解凍するシンプルなルーティング

・レイテンシーベースのルーティング/Geo DNS:1つのドメインに対して複数のDNSレコードを用意しておき、
地理的な場所を近くしてレイテンシーが低くなるようにルーティングを行う

・加重ラウンドロビン:1つのドメインに対して複数のレコードを用意しておき、割合を決める。
その割合に応じて回答を返す

・複数値回答:複数のレコードからランダムに回答する

★複数のレコードを設定し、用途に応じて最適なルーティングを選択できる

 

高可用性を実現するヘルスチェックとフェイルオーバー

 

Route53には様々なルーティングがある。
そのルーティングにはヘルスチェックを組み合わせることができる。
ヘルスチェックと組み合わせることにより、システム全体の可用性が高められる。

ルーティングの種類の1つにフェイルオーバーがある。
プライマリとセカンダリを設定しておき、
プライマリのヘルスチェックが失敗したときにセカンダリのレコードを回答する。
ヘルスチェックとフェイルオーバーを使用することで、
例えばプライマリに何らかの障害が発生してアクセスできない状態になった際に、
一時的に「しばらくお待ちください」のようなソーリーページを表示するための
S3バケットのURLに回答することができる。
そしてプライマリが復旧すれば元のルーティングに戻る。

より高度なフェイルオーバーには、同じくエッジロケーションを使用しているAWS Global Acceleratorを使用する。

★複数のレコードを設定し、システムの高可用性を世界中のリージョンを使用して実現できる

 

ルートドメイン(Zone Apex)のエイリアスレコード

 

Route53ではAレコードなどの各レコードセットにエイリアス(別名)を設定することができる。
エイリアスはZone Apexと呼ばれる、サブドメインのないトップレベルのルートドメインにも設定できる。

これにより、ルートドメインにも複数のリソースを設定でき、可用性の高いシステム構成を作ることができる。

★Zone Apexに対しても柔軟な設定ができ、高可用性を実現できる

 

まとめ

 

VPC

・VPCは、隔離されたプライベートなネットワーク構成を顧客がコントロールできるサービス

・VPCはリージョンを選択して作成

・CIDRでVPCのプライベートIPアドレスの範囲を定義

サブネット

・サブネットはAZを選択して作成

・CIDRでサブネットのプライベートIPアドレスの範囲を定義

・サブネットは役割で分割する

・外部インターネットに接続できるのがパブリックサブネット

・外部インターネットに接続せず外部アクセスからリソースを保護できるのがプライベートサブネット

インターネットゲートウェイ

・インターネットゲートウェイはVPCとパブリックインターネットを接続

・インターネットゲートウェイ自体が高可用性と冗長性を持っている

ルートテーブル

・ルートテーブルはサブネットと関連づける

・サブネット内のリソースがどこに接続できるかを定義する

セキュリティグループ

・セキュリティグループは、インスタンスに対してのトラフィックを制御する仮想ファイアウォール

・許可するインバウンドのポートと送信元を設定するホワイトリスト

・送信元には、CIDRか他のセキュリティグループIDを指定できる

ネットワークACL

・ネットワークACLは、サブネットに対してのトラフィックを制御する仮想ファイアウォール

・拒否するインバウンドのポートと送信元を設定するブラックリスト

・必要がなければ設定しない追加のセキュリティレイヤー

外部からEC2インスタンスにアクセスするには

・インターネットゲートウェイをVPCにアタッチする

・インターネットゲートウェイへの経路を持つルートテーブルをサブネットに関連づける

・EC2インスタンスをそのサブネット内で起動する

・EC2インスタンスにパブリックIPアドレスを有効にする(またはEC2のパブリックIPアドレスを固定するElastic IPをアタッチする)

ハイブリッド環境構成

・VPCと既存のオンプレミス環境をVPN接続できる

・VPCと既存のオンプレミス環境をダイレクトコネクトを使って専用機で接続できる

CloudFront

・CloudFrontはエッジロケーションを使用するCDNサービス

・エッジロケーションにキャッシュを持つことで低レイテンシー配信を実現

・世界中のエッジロケーションが利用できるので、
ユーザーへは最もレイテンシーの低いエッジロケーションから配信される

・通信を保護するために証明書を設定できる

・外部の攻撃からも守ることができる

Route53

・Route53はエッジロケーションで使用されるDNSサービス

・複数のレコードを設定し、用途に応じて最適なルーティングを選択できる

・複数のレコードを設定し、システムの高可用性を世界中のリージョンを使用して実現できる

・Zone Apexに対しても柔軟な設定ができ、高可用性を実現できる





-お仕事

© 2022 ポンサラの逆襲