【事前知識】

  • プレフィックスリスト
    AWSのVPCの機能で、1つ以上のCIDRブロックを一元管理できる。
    セキュリティグループで複数プロトコルを利用して接続元を絞る場合、それぞれのリソースに同じルールを記載する手間があった。各リソースをリスト化のように扱うことで、重複したIPの設定を省略できるようになった。
    ●マネージド
    AWSが管理するIPアドレスレンジのリスト。最新のIPアドレスレンジを手動で更新する必要が無くなる。
    ●カスタマーマネージド
    その名の通り、ユーザー自身が管理することのできるIPアドレスレンジのリスト。

  • VIF(Virtual Interface)
    仮想インターフェイス。AWSリソースにアクセスするための論理インターフェイス。
    DX:専用接続

    ●パブリックVIF
    オンプレ環境とAWS側をパブリックIPアドレスでつなぐ。接続対象はVPCの中ではなく、VPCの外のパブリックIPアドレスで提供される。

    ●プライベートVIF
    オンプレ環境とAWS側をプライベートIPアドレスでつなぐ。VPCの中にインターネットと通信する出入口のない部屋(プライベートサブネット)を作成する。

    ●トランジットVIF
    Direct Connect Gateway 経由でTransit Gateway につなぐときに利用する。
多くの Linux カーネル
(Amazon Linux カーネルを含む)
ポート 32768~61000 を使用
Elastic Load Balancing からのリクエストポート 1024-65535 を使用
Windows Server 2003 を介する
Windows オペレーティングシステム
ポート 1025~5000 を使用
Windows Server 2008 以降のバージョンポート 49152~65535 を使用
NAT ゲートウェイポート 1024~65535 を使用
AWS Lambda 関数ポート 1024-65535 を使用
  • VPN 接続
    高可用性のために同時に使用できる 2 つの VPN トンネルが含まれている。
  • VPN トンネル
    お客様のネットワークと AWS の間でデータを送受信できる暗号化されたリンク。

NWインフラストラクチャ

  • ルーティングテーブル
    ルータに記録される経路情報。ルーティング処理を行う際に参照する。
    ※デフォルトルートは1つ

  • サブネット (サブネットワーク)
    ネットワークトラフィックは不要な ルーターを通過せずとも、短い距離を移動して宛先に到達させる効率的なネットワーク。
    (デフォルトのサブネットマスクは常に/20である)

    ・同じサブネット内のインスタンスは互いに通信ができる(セキュリティグループの設定による)

    【サブネットの考え方】
    以下、重複しない構成。
    〇VPC:10.0.0.0/24:10.0.0.0~10.0.0.255
    ・パブリックサブネット:10.0.0.0/25:10.0.0.0~10.0.0.127
    ・プライベートサブネット:10.0.0.128/25~10.0.0.255

    ※CIDR 10.0.54.0/24(重複)、CIDR10.1.0.0/24(範囲外)

〇NAT機能

NATゲートウェイ、NATインスタンスともにプライベートIPをグローバルIPへ変換するという機能は同じ。アウトバウンドの受け入れのみ、対象とする。

  • NATインスタンス
    プライベートサブネットに配置されたサーバーから外部サイトへアクセスするときの踏み台サーバー。
    コストが高い(¥7,000)が、運用管理をユーザーが行わなくて良い。

    ・性能、冗長性を適切な調整やセキュリティアップデート等のメンテナンスが必要。
    ・EC2インスタンスであるため、一時停止が可能。
    ・NATインスタンスには送信元/送信先チェック(SrcDestCheck 属性)を無効にする必要がある。

  • NATゲートウェイ
    【静的IPアドレス】
    IPv6トラフィックは処理できない
    コストが安く(¥1,000~¥3,000)で、カスタマイズが自由にできる。
    ※運用管理はユーザー側が行う。

    AWSマネージドサービスであるためメンテナンス不要で、トラフィックに応じた十分な性能およびMultiAZ冗長性も確保されている。
    ただし、一時的な停止はできない。

    ・ネットワークアドレスを変換する
    ・セキュリティグループは不要

    【静的IPアドレスの提供】
    同一のIPを提供する。
    つまり、アプリケーションに一貫したIPアドレス(つまり静的IPアドレス)が付与できる。
  • 接続タイプ

    ●パブリック
    プライベートサブネットのインスタンスは、パブリック NAT ゲートウェイを介してインターネットに接続できる。しかし、インターネットから未承諾のインバウンド接続を受信することはできない。
    パブリックサブネット内にパブリック NAT ゲートウェイを作成しElastic IP アドレスを NAT ゲートウェイに関連付ける必要がある。

    ●プライベート
    プライベートサブネットのインスタンスはプライベート NAT ゲートウェイを介して他の VPC またはオンプレミスのネットワークに接続できる。
    この場合、NAT ゲートウェイからのトラフィックを Transit Gateway または仮想プライベートゲートウェイ経由でルーティングできる。
    Elastic IP アドレスをプライベート NAT ゲートウェイに関連付けることはできない。

Elastic Network Interface
【リソースのNW設定変更】

※ENI:Elastic Network Interface

仮想ネットワークカードを表す VPC 内の論理ネットワーキングコンポーネント。
ネットワークの設定(IPアドレス、セキュリティグループなど)や付替えが可能。

アカウントで独自のネットワークインターフェイスを作成して設定し、VPC内のインスタンスにアタッチできる。

VPC の IPv4 アドレス範囲からのプライマリプライベート IPv4 アドレス
VPC の IPv4 アドレス範囲からの 1 つ以上のセカンダリプライベート IPv4 アドレス
プライベート IPv4 アドレスごとに 1 つの Elastic IP アドレス (IPv4)
1 つのパブリック IPv4 アドレス
1 つ以上の IPv6 アドレス
1 つ以上のセキュリティグループ
MAC アドレス
送信元/送信先チェックフラグ
説明
  • トラフィックミラーリング
    インスタンスに接続されているネットワークインターフェースからのインバウンドトラフィックとアウトバンドトラフィックをコピーする。

【インスタンスに複数のIPアドレス付与】

インスタンスに複数のENIを接続することで、複数のプライベート IPv4 および IPv6 アドレスを指定できる。

[参考公式サイト]

〇EC2へのアタッチ

  • ホットアタッチ
    【実行中のアタッチ】
    ENI をインスタンスの実行中にアタッチすること。

  • ウォームアタッチ
    【停止中のアタッチ】
    ENI をインスタンスの停止中にアタッチすること。

  • コールドアタッチ
    【インスタンス起動中にアタッチ】
    ENI をインスタンスの起動中にアタッチすること。

〇IPについて

  • IPフローティング
    【トラフィック切り替え】
    ENIのプロパティの一つ。
    Elastic IPアドレスをフローティングすることで即時に別のEC2インスタンスへとトラフィックを切り替えることができる。

  • Ipsec
    【ネットワーク層暗号化】
    OSI参照モデルにおける「ネットワーク層(第3層)」において暗号化を行っている。
    そのため、上位層である「トランスポート層」や「アプリケーション層」が暗号化に対応なくても、下位層である「ネットワーク層」が暗号化しているため、より安全に通信を行える。

  • Elastic IP(EIP)
    固定のグローバルアドレスを提供。
    EC2のデフォルト設定では、インスタンスが停止するとアタッチしたパブリックIPアドレスは解放(削除)してしまう。

    以下条件時、料金が発生する。

    ・アドレスが実行中のインスタンスに関連付けられていないとき
    ・関連付けたインスタンスが停止しているとき
    ・ネットワークインターフェイスに関連付けられているとき

    ※インスタンスに直接付与するのではなく、ENIのプロパティのひとつである

接続サービス

VPN
【クライアントベースVPN】

※VPN(Virtual private network)

AWS リソースやオンプレミスネットワーク内のリソースに安全にアクセスできるようにする、クライアントベースのマネージド VPN サービス。

【VPN エンドポイントの分割トンネル】

VPN接続を利用しているクライアントは、VPC内のリソースのトラフィックのみをVPNトンネルを通して送信し、それ以外のトラフィックはVPNトンネルを使用せずに直接送信する。
これにより、VPCあてのトラフィックのみがVPNトンネルを通過するというコンプライアンス要件を満たせる。

[参考公式サイト]

【VPNのプロトコルの種類】

  • OpenVPN
    【オープンソース】
    比較的新しく、利用ユーザーの多いオープンソースのプロトコル。セキュリティが強固で、速度が速い。
    ファイヤーウォールを通過できる。

  • IKEv2
    【取り扱い:少】
    Ciscoとマイクロソフトによって開発された安定性の高いVPNプロトコル。セキュリティが強固で、速度が速い。
    通信を自動的に再接続してくれる。ただし、サポートされている端末が少ない。

  • L2TP
    【取り扱い:多】
    通信速度が遅いが、IPSecと併用することで、PPTPより安全性を高めることができる。
    セキュリティが強固であり、対応端末が多い。しかし、ファイヤーウォールにブロックされることがある。

  • SSTP
    【Windows向け】
    Windows向けのVPNプロトコル。
    セキュリティが強固であるが、Windows向け。

  • PPTP
    【古い】
    多くの端末に対応しており、速度が速いが、プロトコルが古い。

VPCピアリング接続

VPC間の接続を実施する。
・プライベートで隔離されている
・接続数に上限が在り
・IGWは不要である

※推移的なルーティングには不向き

AWS PrivateLink
【サービスとVPC安全接続】

VPC、サポートされる AWS サービスまたはオンプレミスでホストされているサービス仮想プライベートクラウド (VPC) との間のプライベート接続を確立。

・PrivateLink を利用したインターフェース VPC エンドポイントは、AWS パートナーがホストするサービスAWS Marketplace で利用可能なサポートするソリューションへの接続を可能にする。
・インターネットやパブリックIPアドレスを使用しないため、ブルートフォース攻撃やDDoS攻撃の恐怖にさらされない。

※VPC間の接続は、同じリージョン内でないと利用できない

PrivateLink for Amazon S3
【オンプレとS3間の接続】

Virtual Private Cloud (VPC) でインターフェイス VPC エンドポイント (インターフェイスエンドポイント) をプロビジョニングできる。これにより作成されたENIにプライベートIPが割り当てられオンプレミス環境から S3 へ直接プライベート接続することができる。

これらのエンドポイントは、VPN および AWS Direct Connect 経由でオンプレミスにあるアプリケーション、または VPC ピアリング経由で別の AWS リージョン にあるアプリケーションから直接アクセスできる。

Site-to-Site VPN
Direct Connect下位互換

オンプレミス機器と VPC 間の安全な接続。
仮想プライベートゲートウェイまたは AWS 側の トランジットゲートウェイ と、リモート (オンプレミス) 側のカスタマーゲートウェイの間に 2 つの VPN トンネルを提供。

※帯域幅:Direct Connect > Site-to-Site VPN
※インターネットプロトコルセキュリティ (IPsec) VPN 接続をサポート

DirectConnect
【オンプレとAWS間専用線】

接続ポイントというロケーションを経由することで、オンプレミス環境とAWSの間の専用線
※プライベート接続、高速なNW
※VOCとオンプレミスのネットワークは重複しないIPアドレス空間が必要

【注意点】
物理的にAWS側と専用線接続の設定が必要であるため、AWSへの申請と設定などが必要不可欠となり、準備が間に合わない可能性がある。

【Direct connect+IPsecVPN】

バックエンドAPIへの安全な接続を提供する。
DirectConnect接続上にVPNを設定すると、転送中のデータが保護される。
VPCにVGWを追加し、パブリック仮想インターフェイスを設定し、パブリック仮想インターフェースを介してデータセンターとVGWの間にIPSecトンネルを作成する。

[参考]

  • Direct Connect仮想インターフェイス
    接続を使用するには下記のインターフェースから選択が必要。

    ●パブリック仮想インターフェイス
    パブリック IP アドレスを使用してすべての AWS のパブリックサービスにアクセスできる。

    ●プライベート仮想インターフェイス
    プライベートIPアドレスを使ってVPCにアクセスできる。

    ●トランジット仮想インターフェイス
    Direct Connectゲートウェイに関連付けられた一つまたは複数のAmazon VPCトランジットゲートウェイにアクセスできる。

ゲートウェイ(Gateway)

Internet Gateway

VPCとインターネットの接続を確立する。

Customer Gateway

AWS に作成するリソースであり、オンプレミスネットワーク内のカスタマーゲートウェイデバイスを表す。

  • カスタマーゲートウェイデバイス
    【カスタマー側のエンドポイント】
    オンプレミスネットワーク (Site-to-Site VPN 接続のユーザー側) で所有または管理している物理アプライアンスまたはソフトウェアアプライアンス。
    ユーザーまたはネットワーク管理者は、Site-to-Site VPN 接続で動作するようにデバイスを設定する必要がある。

Virtual Private Gateway
【VPN接続

(仮想プライベートゲートウェイ)
サイト間VPNをAWSとオンプレミス間に構成する。
オンプレミス側のネットワークにおけるカスタマーゲートウェイの設定が必要。

※VPC上で仮想プライベートゲートウェイはひとつしか利用できない

Egress-OnlyインターネットGateway

インターネットからのトラフィックを防ぎつつ、IPv6の発信トラフィックをサポートする。
(アウトバウンドのみ)水平的に拡張でき、冗長で高度な高可用性を持つVPCコンポーネントで、IPv6経由でVPCからインターネット接続出来る。

Transit Gateway
VPC上のハブルーター

中央のゲートウェイからネットワーク上にある VPC、オンプレミスのデータセンター、リモートオフィスそれぞれに単一の接続を構築して管理することができる。

クラウドルーターとして機能するため、ネットワークへの追加が簡単。
Direct Connect介してVPCとオンプレミスネットワークを接続することも可能。

Direct Connect Gateway
【複数接続版】

一つのDirect Connect Gateway接続で複数の拠点と複数のAWSアカウントやVPCに接続できる。

プライベート仮想インターフェイスを介して、DirectConnect接続を同じリージョンまたは異なるリージョンに配置された1つ以上のVPCに接続できる。

Storage Gateway
【オンプレとストレージ】

オンプレミスから実質無制限のクラウドストレージへのアクセスを提供するハイブリッドクラウドストレージサービス。
オンプレミスにあるデータをクラウドに連携させるための受け口。
(ストレージと組み合わせて使用するもの)

〇タイプ

  • (S3)ファイルゲートウェイ
    ネットワークファイルシステムなどのファイルプロトコルを使用して、既存のファイルをS3でオブジェクトとして保存と取得を実行できる。書き込まれたオブジェクトにS3で直接アクセスできる。
  • ボリュームゲートウェイ

    オンプレミス内のデータをスナップショットしたものを保存する。
    iSCI プロトコルを使用してアプリケーションにブロックストレージを提供する。

    AWSでiSCSI ボリュームにアクセスする場合は、EBSボリュームの作成に使用できるEBSスナップショットを作成する。

    キャッシュ型
    プライマリデータS3 に保存。
    プライマリデータはS3に書き込まれ、頻繁にアクセスするデータはキャッシュでローカルに保持され、低レイテンシーアクセスを実現する。

    【スナップショット切り替え】
    スナップショットから新しいボリュームを作成する時、ゲートウェイは S3 にあるスナップショットデータを保持する。
    そこでスナップショットデータが新しいボリュームのプライマリデータに切り替わる。

    保管型
    プライマリデータはローカルに保管される。
    保管されたデータセットは低レイテンシーアクセスできる。
    データセット全体が低レイテンシーのアクセスのために、使用可能となり、非同期にAWSにバックアップされる。

    【スナップショット切り替え】
    スナップショットから新しいボリュームを作成する時、ゲートウェイはスナップショット内に含まれているデータをローカルハードウェアにダウンロードする。
    そこで、データが新しいボリュームのプライマリデータになる。
  • テープゲートウェイ
    物理のテープライブラリの代替として、仮想テープライブラリを使用。
    仮想テープのデータはS3内に保存される。または、S3 Glacier へのアーカイブが可能。

〇暗号化

SSL / TLSを使用してゲートウェイアプライアンスとAWSストレージ間で転送されるデータを暗号化。
デフォルトで S3管理暗号化キー(SSE-S3)を使用して、S3に格納されているデータをサーバー側で暗号化する。

  • CHAP認証
    不正なクライアントのなりすまし防止。
  • データ暗号化
    KMSを使用して暗号化可能。
  • 通信の暗号化
    HTTPSの暗号化

[参考公式サイト]

API Gateway
【API管理】

簡単にAPIの作成と保護, そして公開, モニタリングが可能なフルマネージドサービス。
トラフィック管理、認可とアクセスコントロール、モニタリング、APIバージョン管理などAPIコールの受け入れと処理に伴うすべてのタスクも取り扱う。
[クライアント→リクエスト受信⇒バックエンド⇒クライアント]に返す, プロキシのような働きする。
※スケールも自動化

・ソフトウェアやアプリケーションなどの一部を外部に向けて公開することで、第三者が開発したソフトウェアと機能を共有できる
・AWS SDK、CLIは頻繁にローテーションされる一時的なセキュリティ認証情報は自動的に生成できる。
・料金は、受け取ったAPI呼び出し、送出したデータの量の分
・HTMLに直接書き込んでコードを呼び出すことも可能

  • 使用量プラン
    API キーと顧客を結びつけ、アクセスできるAPIステージとメソッドを指定する。こうすることでアクセスできるAPIクライアントとユーザーを識別できる。
    他社アプリケーショが利用する API と API キーを紐付けた使用量プランを設定することで、連携先のアプリケーションのみが使用できる API を公開可能。

    ●クォータ制限
    指定した期間内に送信できるAPIキーを持つリクエストの目標最大数を設定する。個別のAPIメソッドを使用料プランの設定に基づいてAPIキー認証を要求するように設定できる。

    ●スロットリング制限設定
    リクエストが多すぎるために バックエンドサービスが処理しきれなくなることを防ぐ。
    ※API、APIメソッドレベルでリクエストスロットリングを開始するターゲットポイントを設定できる

【API Gatewayエラー】

  • 502
    Lambdaプロキシ統合バックエンドから互換性のない出力が返答されている。
  • 504
    エンドポイントのリクエストのタイムアウト。

  • Lambda オーソライザー
    Lambda関数を使用してAPIへのアクセスを制御できる。クライアントがAPIのメソッドの1つにリクエストを送信すると、API Gateway は Lambda オーソライザーを呼び出す。

    ・発信者IDを入力として受け取り、IAMポリシーを出力として返す。
    ※OAuth や SAML などのベアラートークン認可戦略を使用する、または発信者 ID を判断するためにリクエストパラメータを使用するカスタム認証スキームをする場合に有効。

    ●トークンベース(TOKENオーソライザー)
    JSON ウェブトークン(JWT)やOAuth トークンなどのベアラートークンで発信者IDを受け取る。

    ●リクエストパラメータベース(REQUESTオーソライザー)
    ヘッダー、クエリ文字列パラメータ、stageVariables、および$context 変数の組み合わせで発信者IDを受け取る。WebSocket API では、REQUESTオーソライザーのみサポートする。

〇API Gatwayの処理

  • メソッドリクエスト
    【検証】
    「受付可能なクエリパラメータ」「必須のパラメータ」「認可の有無」「API Keyの有無」などと実際に受付けるリクエストを絞り込む、いわばリクエストの受付
    必須のパラメータを含んでいるかを確認することで、バックエンドのリソースを無駄に呼び出さずレスポンスを返すことが可能になる。

    (※誤ったリクエストでバックエンドを無駄に起動すると、レスポンスに遅れが生じる)

  • 統合リクエスト
    【HTTPリクエストをカプセル化】
    API Gateway がバックエンドに送る HTTP リクエスト。
    バックエンドが受け取ったHTTPリクエストをカプセル化。
    どのバックエンドにどのようにデータを渡すかを決定する。

    【データの整形】
    バックエンドにリクエストを投げる前にデータの整形が必要な場合、XML形式で受け取ったリクエストをJSON形式にしたいなど、バックエンドでは不要なフィールドを削除したいといったケースに対応できるマッピングテンプレートがある。

    ※バックエンド:Lambda関数やAWSサービスなど実際にリクエストを処理するコンポーネント

  • 統合レスポンス
    バックエンドの出力をカプセル化。
    バックエンドから返ってきたレスポンスに関する設定を行う。
    例えばHTTPステータスコードをマッピングしたり, レスポンスの内容の変換を行ったりする。

  • メソッドレスポンス
    【受信の定義】
    クライアントから受け取るリクエストに対するAPI Gatewayの最終的なレスポンスを定義。
    ステータスコードやHTTPヘッダなどといった部分。

〇エンドポイント

  • リージョン API エンドポイント
    同じリージョンのクライアントを対象とする。

    下記の場合、リージョン別 API は接続のオーバーヘッドを減らすことが可能。
    ・EC2 インスタンスで実行されているクライアントが同じリージョンの API を呼び出す場合
    ・ API が要求の高い少数のクライアントへのサービスを目的としている場合

    【カスタムドメイン】
    複数のリージョンでリージョン別 API をデプロイする場合、すべてのリージョンで同じカスタムドメイン名を使用できる。

    ・ユーザーが使用するカスタムドメイン名は API がデプロイされているリージョンに固有となる。
    ・リージョン別 API エンドポイントは、すべてのヘッダー名をそのまま渡す。
    ・カスタムドメインをRoute 53 と組み合わせて使用すると、レイテンシーベースのルーティングなどのタスクを実行できる。

  • エッジ最適化 API エンドポイント
    地理的に分散されたクライアントに最適。API リクエストは、最寄りの CloudFront POP (Point Of Presence) にルーティングされる。
    ※これは、API Gateway REST API のデフォルトのエンドポイントタイプ。
    エッジ最適化された API に使用するカスタムドメイン名はすべてのリージョンに適用される。

    【CloudFrontと比較】
    リクエストをオリジンに転送前に、Cookie 名の自然な順序で HTTP Cookie を並べ替える。

    【API gatewayのキャッシュ有効】
    指定された存続時間(TTL)期間(秒単位)にエンドポイントからの応答をキャッシュする。
    エンドポイントにリクエストを送信する代わりに、キャッシュからエンドポイントレスポンスを検索することでリクエストに応答する。

    ※存続可能時間(TTL)を設定することで、キャッシュの制御を実施。

    ⇒「エンドポイントへの呼び出しの数」、「API へのリクエストのレイテンシー」を減らせる。

    ※APIキャッシングのデフォルトのTTL値は300秒。最大TTL値は3600秒。
    ※TTL = 0は、キャッシュが無効になっていることを意味する

〇メトリクスの種類

  • [IntegrationLatency]メトリクス
    バックエンドの応答性を測定。

  • [Latency]メトリクス
    API コールの全体的な応答性を測定。

  • [CacheHitCount / CacheMissCount]メトリクス
    目的のパフォーマンスの実現に向けてキャッシュ容量を最適化する。

APP Sync

デベロッパーはGraphQLというWebAPIを用いて、(DynamoDBやElasticsearchなど)複数のソースからのデータに安全にアクセスしたり、それらのデータを操作および結合したりする柔軟な API を介して、必要なデータに正確にアクセスできる。

GraphQLとは
AWS AppSyncで開発できるGraphQLとは、API用のクエリ言語とスキーマ言語のこと。

Transfer Family
【ストレージ間転送】

AWS ストレージサービス(S3,EFS)との間でファイルを送受信できる安全な転送サービス。
※サーバーインフラストラクチャを実行しなくても、AWS で FTP 対応サーバーにアクセスできる。

エンドユーザーのクライアントと設定をそのまま維持しながら、ファイル転送ベースのワークフローを AWS に移行できる。

AWS Transfer Family は次のプロトコルでのデータ転送をサポートしている。

・Secure Shell (SSH) File Transfer Protocol (SFTP): バージョン 3
・File Transfer Protocol Secure (FTPS)
・File Transfer Protocol (FTP)
・適用性ステートメント 2 (AS2)

【設定方法】
最初にホスト名をサーバーエンドポイントに関連付けてから、ユーザーを追加。
適切なアクセスレベルをプロビジョニングする。
これにより、ユーザーの転送リクエストが Transfer Family サーバーエンドポイントから直接提供される。

【マネージドワークフロー】
ファイル処理用のマネージドワークフローをサポートする。
管理されたワークフローを使用すれば、SFTP、FTPS、またはFTPでファイルが転送された後に、ワークフローを開始することができる。ファイル処理タスクをオーケストレーションすることで、ダウンストリームのアプリケーションで消費される前にデータを前処理するのに役立つ。

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

error: Content is protected !!