AWS での FTDv ASAv の Auto Scale ソリューション
次のセクションでは、Auto Scale ソリューションのコンポーネントが AWS の ASAv でどのように機能するかについて説明します。
Auto Scale ソリューションについて
シスコでは、Lambda、Auto Scaling グループ、Elastic Load Balancing(ELB)、Amazon S3 バケット、SNS、CloudWatch などの複数の AWS サービスを使用して、ASAv ファイアウォールの Auto Scaling グループを導入するための CloudFormation テンプレートとスクリプトを提供しています。
AWS の ASAv Auto Scale は、AWS 環境の ASAv インスタンスに水平 Auto Scaling 機能を追加する、完全なサーバーレス実装です(つまり、この機能の自動化に関与するヘルパー VM はありません)。バージョン 6.4 以降、 Auto Scale ソリューションは、FMC によって管理される でサポートされます。
ASAv Auto Scale ソリューションは、以下の内容を提供する CloudFormation テンプレートベースの導入です。
-
スケールアウトされた ASAv インスタンスに完全に自動化された構成を自動適用。
-
ロードバランサとマルチ可用性ゾーンのサポート。
-
Auto Scale 機能の有効化と無効化をサポート。
Auto Scale の導入例
この ASAv AWS Auto Scale ソリューションの導入例は、導入例の図に示されています。AWS ロードバランサはインバウンドで開始された接続のみを許可するため、外部で生成されたトラフィックのみが ASAv ファイアウォール経由で内部を通過できます。
(注) |
前提条件のSSL サーバー証明書で説明されているように、セキュアなポートには SSL/TLS 証明書が必要です。 |
インターネットに面したロードバランサは、ネットワークロードバランサまたはアプリケーション ロードバランサです。いずれの場合も、AWS のすべての要件と条件が適用されます。導入例の図に示されているように、点線の右側部分は ASAv テンプレートを介して展開されます。左側は完全にユーザー定義の部分です。
(注) |
アプリケーションが開始したアウトバウンドトラフィックは ASAv を通過しません。 |
トラフィックのポートベースの分岐が可能です。この分岐は、NAT ルールによって実現できます。たとえば、インターネットに面した LB DNS、ポート:80 のトラフィックは、アプリケーション 1 にルーティングでき、ポート:88 のトラフィックはアプリケーション 2 にルーティングできます。
Auto Scale ソリューションの仕組み
ASAv インスタンスをスケールインおよびスケールアウトするには、Auto Scale Manager と呼ばれる外部エンティティがメトリックをモニターし、Auto Scale グループに ASAv インスタンスの追加または削除を指示し、 ASAvインスタンスを設定します。
Auto Scale Manager は、AWS サーバーレスアーキテクチャを使用して実装され、AWS リソース および ASAv と通信します。シスコでは、Auto Scale Manager コンポーネントの導入を自動化する CloudFormation テンプレートを提供しています。このテンプレートにより、包括的なソリューションが機能するために必要なその他のリソースも展開されます。
(注) |
サーバーレス Auto Scale スクリプトは CloudWatch イベントによってのみ呼び出されるため、インスタンスの起動時にのみ実行されます。 |
Auto Scale ソリューションのコンポーネント
Auto Scale ソリューションは、次のコンポーネントで構成されています。
CloudFormation テンプレート
CloudFormation テンプレートは、AWS の Auto Scale ソリューションに必要なリソースを展開するために使用されます。テンプレートの構成は次のとおりです。
-
Auto Scale グループ、ロードバランサ、セキュリティグループ、およびその他のコンポーネント。
-
展開をカスタマイズするためのユーザー入力を取り込むテンプレート。
(注)
テンプレートのユーザー入力の検証には限界があるため、展開時に入力を検証するのはユーザーの責任です。
Lambda 関数
Auto Scale ソリューションは、Python で開発された一連の Lambda 関数で、ライフサイクルフック、SNS、CloudWatch イベントやアラームイベントからトリガーされます。基本的な機能は次のとおりです。
-
インスタンスに対して Gig0/0、および Gig 0/1 インターフェイスを追加/削除します。
-
ロードバランサのターゲットグループに Gig0/1 インターフェイスを登録します。
-
ASA 構成ファイルを使用して新しい ASAv を設定し展開します。
Lambda 関数は、Python パッケージの形式でお客様に提供されます。
ライフサイクルフック
-
ライフサイクルフックは、インスタンスに関するライフサイクルの変更通知を取得するために使用されます。
-
インスタンス起動の場合、ライフサイクルフックを使用して、ASAv インスタンスにインターフェイスを追加し、ターゲットグループに外部インターフェイス IP を登録できる Lambda 関数をトリガーします。
-
インスタンス終了の場合、ライフサイクルフックを使用して Lambda 関数をトリガーし、ターゲットグループから ASAv インスタンスを登録解除します。
Simple Notification Service(SNS)
-
AWS の Simple Notification Service(SNS)を使用してイベントが生成されます。
-
AWS にはサーバーレス Lambda 関数に適した Orchestrator がないという制限があるため、ソリューションは、イベントに基づいて Lambda 関数をオーケストレーションするための一種の関数チェーンとして SNS を使用します。