オープンフロー BYOC - カスタムイングレスの設定

このトピックでは、自身の AWS アカウント内で管理されるカスタムイングレスソリューションによるOpenflow BYOC デプロイの設定に必要な考慮事項と手順について説明します。

利点

Openflow BYOC デプロイ用のカスタムイングレスは組織に以下を提供します。

  • VPN またはプライベートネットワークのみにアクセスを制限できるネットワークレベルの制限により、セキュリティを強化します。

  • セキュリティおよびコンプライアンス要件を満たすために、Openflowへのアクセスに使用される URL および TLS 証明書を完全にコントロールします。

考慮事項

Snowflakeが管理するイングレスを使用して、Openflowは必要な DNS 記録、パブリックロードバランサーを作成し、 BYOC デプロイのOpenflowランタイム用の TLS 証明書を管理します。

カスタムイングレスを有効にすると、Openflowは外部 DNS レコードを自動的に管理しなくなり、パブリックロードバランサーを自動的に作成せず、Openflowランタイムの証明書を管理しなくなります。これらのリソースは自身の AWS アカウント内で管理する必要があります。

Openflow管理のイングレスとカスタムイングレスを比較すると、 DNS 、ロードバランサー、および証明書の追加要件が目立ちます。

Snowflake Openflowでのカスタムイングレスの構成

  1. デプロイ作成時にカスタムイングレスを有効にします。

    • デプロイメントの作成時に、 Custom ingress を有効にして、 Hostname フィールドで希望の完全修飾ドメイン名( FQDN )を指定してください。

    • この DNS 記録を管理し、この FQDN の TLS 証明書を作成できる必要があります。snowflakecomputing.com のサブドメインを使用しないでください。

    • FQDN にプロトコル https:// またはトレイリングスラッシュ / を含めないでください。

    • たとえば、 openflow01.your-domain.org を指定した場合、 https://openflow01.your-domain.org/my-runtime/nifi/ で「My Runtime」という名前のランタイムにアクセスします。

  2. CloudFormation テンプレートをダウンロードします。このファイルには、Openflowがカスタムイングレスドメインとして実行されるために必要な設定がすべて含まれています。

AWS でカスタムドメインを構成する

注釈

{deployment-key} は、特定の展開のためにOpenflowによって作成および管理されるクラウドリソースに適用されるOpenflowの一意の識別子を表します。

これは、 CloudFormation テンプレートの DataPlaneKey パラメーターにあり、Openflowではデプロイの View Details メニューオプションを通じても利用できます。

  1. Openflowデプロイのプライベートサブネットに以下のタグを追加します。

    • キー: kubernetes.io/role/internal-elb

    • 値: 1

  2. プライベートサブネットが他の EKS クラスターによって使用される場合、それらもOpenflowクラスターの名前でタグ付けする必要があります。これにより、Openflowは他のロードバランサーと一緒にロードバランサーを作成できます。

    • キー: kubernetes.io/cluster/{deployment-key}

    • 値: 1

  3. CloudFormation テンプレートをアップロードします。Openflowが内部ネットワークロードバランサーを作成するまで約30分待ちます。

    • 内部ネットワークロードバランサーは AWS コンソールの下にある EC2`|ra|:extui:`Load Balancers で確認できます。

    • ロードバランサーの名前は runtime-ingress-{deployment-key} になります。

  4. Openflow管理の AWS 内部ネットワークロードバランサーの内部 IP アドレスを取得します。

    • EC2 » Load Balancers の下の詳細ページに移動し、ロードバランサーの DNS name をコピーします。

    • エージェント EC2 インスタンス( openflow-agent-{deployment-key} として識別される)にログインし、コマンド nslookup {openflow-load-balancer-dns-name} を実行します。

    • Openflow管理の AWS 内部ネットワークロードバランサーの IP アドレスをコピーします。これらは、次のステップで作成するロードバランサーのターゲットグループの宛先です。

  5. TLS のプロビジョニング証明書。

    • Openflowランタイム UIs へのトラフィックを処理するロードバランサーの TLS 証明書を取得します。AWS 認証マネージャー(ACM)を使用して証明書を生成するか、既存の証明書をインポートします。

  6. Openflow管理の AWS 内部ネットワークロードバランサーにトラフィックをルーティングするネットワークロードバランサーを作成します。

    1. AWS アカウントで、次の構成でネットワークロードバランサーを作成します。

      • 名前:命名規則 custom-ingress-external-{deployment-key} をお勧めします。この場合、 {deployment-key} はOpenflowデプロイのキーです。

      • 型: Network Load Balancer

      • スキーム: 要件に応じて Internal または Internet-facing

      • VPC: 展開先の VPC を選択します

      • 可用性ゾーン:Openflowデプロイを実行する両方の可用性ゾーンを選択します。

      • サブネット:Internal ロードバランサーの場合は VPC のプライベートサブネットを、 Internet-facing ロードバランサーの場合は VPC のパブリックサブネットを選択します。

      • セキュリティグループ:ポート 443 でのトラフィックを許可するセキュリティグループを選択または作成します

      • デフォルト SSL/TLS サーバー証明書:SSL/TLS 証明書をインポートします

      • ターゲットグループ:次の設定で新しいターゲットグループを作成します:

        • ターゲット型: IP addresses

        • プロトコル: TLS

        • ポート:443

        • VPC:VPC が展開に一致することを確認します

        • ターゲットとして、Openflowが作成した内部ネットワークロードバランサー(前のステップで取得)の IP アドレスを入力し、 Include as pending below を選択します。

    2. ロードバランサーが作成されたら、次のステップで使用する DNS ロードバランサーの名前をコピーします。

    3. ネットワークロードバランサーの作成方法の詳細については、 Network Load Balancer を作成する をご参照ください。

  7. カスタムイングレス FQDN を AWS ロードバランサーの DNS 名前にマップする DNS CNAME 記録を作成します。

検証

  1. Openflowデプロイでは、 Deployments ページに Active のステータスが表示されます。

  2. Openflowのデプロイでランタイムを作成します。

  3. ランタイムが Active になったら、ランタイム名をクリックするか、 View canvas メニューを使用してランタイムの UI にアクセスします。

  4. Openflowはデプロイメントの作成時に指定されたホスト名を持つランタイムにリダイレクトします。例: https://openflow01.your-domain.org/my-runtime/nifi/