Openflow BYOC - 사용자 지정 수신 설정¶
이 항목에서는 자체 AWS 계정 내에서 관리되는 사용자 지정 수신 솔루션을 사용하여 Openflow BYOC 배포를 설정하는 데 필요한 고려 사항과 단계에 대해 설명합니다.
이점¶
Openflow BYOC 배포용 사용자 지정 수신은 조직에 다음을 제공합니다.
VPN 또는 비공개 네트워크에 대해서만 액세스를 제한할 수 있는 네트워크 수준 제한으로 보안을 강화합니다.
보안 및 규정 준수 요구 사항을 충족하기 위해 Openflow에 액세스하는 데 사용되는URL 및 TLS 인증서에 대한 전체 제어를 수행합니다.
고려 사항¶
Snowflake 관리형 수신을 사용하면 Openflow에서 필요한 DNS 레코드와 공용 로드 밸런서를 생성하고 BYOC 배포의 Openflow 런타임에 대한 TLS 인증서를 관리합니다.
사용자 지정 수신을 활성화하면 Openflow가 더 이상 외부 DNS 레코드를 자동으로 관리하지 않고, 공용 로드 밸런서를 자동으로 생성하지 않으며, 더 이상 Openflow 런타임에 대한 인증서를 관리하지 않습니다. 이러한 리소스는 자체 AWS 계정 내에서 관리해야 합니다.
Snowflake Openflow에서 사용자 지정 수신 구성하기¶
배포 생성 중에 사용자 지정 수신을 활성화합니다.
배포 생성 중에 Custom ingress`를 활성화하고 :ui:`Hostname 필드에 원하는 정규화된 도메인 이름(FQDN)을 지정합니다.
이 DNS 레코드를 관리하고 이 FQDN에 대한 TLS 인증서를 생성할 수 있어야 합니다. :code:`snowflakecomputing.com`의 하위 도메인을 사용하지 마세요.
예를 들어, :code:`openflow01.your-domain.org`를 지정하는 경우 :code:`https://openflow01.your-domain.org/my-runtime/nifi/`에서 “My Runtime”이라는 런타임에 액세스하게 됩니다.
CloudFormation 템플릿을 다운로드합니다. 이 파일에는 Openflow가 사용자 지정 수신 도메인으로 실행되는 데 필요한 모든 설정이 있습니다.
AWS에서 사용자 지정 수신 구성하기¶
참고
:code:`{deployment-key}`는 특정 배포를 위해 Openflow가 생성하고 관리하는 클라우드 리소스에 적용되는 Openflow 고유 식별자를 나타냅니다.
이는 CloudFormation 템플릿의 DataPlaneKey 매개 변수에 있으며, 배포를 위한 View Details 메뉴 옵션을 통해 Openflow에서도 사용 가능합니다.
Openflow 배포를 위해 비공개 서브넷에 다음 태그를 추가합니다.
키: kubernetes.io/role/internal-elb
값:
1
비공개 서브넷이 다른 EKS 클러스터에서 사용되는 경우 Openflow 클러스터의 이름으로 태그도 지정해야 합니다. 이를 통해 Openflow는 다른 로드 밸런서와 함께 로드 밸런서를 생성할 수 있습니다.
키: kubernetes.io/cluster/{deployment-key}
값:
1
CloudFormation 템플릿을 업로드합니다. Openflow가 내부 네트워크 로드 밸런서를 생성할 때까지 약 30분 정도 기다립니다.
내부 네트워크 로드 밸런서는 EC2 » Load Balancers 아래의 AWS 콘솔에서 확인할 수 있습니다.
로드 밸런서의 이름은 :code:`runtime-ingress-{deployment-key}`입니다.
Openflow 관리형 AWS 내부 네트워크 로드 밸런서의 내부 IP 주소를 가져옵니다.
EC2 » :extui:`Load Balancers`에서, 세부 정보 페이지로 이동하여 로드 밸런서의 :extui:`DNS name`을 복사합니다.
Log into your agent EC2 instance (identified as openflow-agent-{deployment-key}) and run the command
nslookup {openflow-load-balancer-dns-name}.Openflow 관리형 AWS 내부 네트워크 로드 밸런서의 IP 주소를 복사합니다. 이는 다음 단계에서 생성할 로드 밸런서의 대상 그룹에 대한 대상입니다.
TLS 인증서를 프로비저닝합니다.
Openflow 런타임 UIs에 대한 트래픽을 처리할 로드 밸런서에 대한 TLS 인증서를 가져옵니다. AWS 인증서 관리자(ACM)를 사용하거나 기존 인증서를 가져와 인증서를 생성할 수 있습니다.
Openflow 관리형 AWS 내부 네트워크 로드 밸런서로 트래픽을 라우팅할 네트워크 로드 밸런서를 만듭니다.
AWS 계정에서 다음 구성으로 네트워크 로드 밸런서를 생성합니다.
이름: 명명 규칙 :code:`custom-ingress-external-{deployment-key}`를 권장합니다. 여기서 :code:`{deployment-key}`는 Openflow 배포의 키입니다.
유형: Network Load Balancer
스키마: 요구 사항에 따라 Internal 또는 Internet-facing
VPC: 배포의 VPC 선택
가용 영역: Openflow 배포가 실행 중인 두 가용 영역을 모두 선택합니다.
서브넷: Internal Load Balancer에 대한 VPC의 비공개 서브넷이나 Internet-facing Load Balancer에 대한 VPC의 공용 서브넷을 선택합니다.
보안 그룹: 포트 :code:`443`에서 트래픽을 허용하는 보안 그룹 선택 또는 생성
기본 SSL 및 TLS 서버 인증서: SSL 및 TLS 인증서 가져오기
대상 그룹: 다음 설정으로 새 대상 그룹을 만듭니다.
대상 유형: IP addresses
프로토콜: TLS
포트: 443
VPC: VPC가 배포와 일치하는지 확인합니다.
Openflow에서 만든 내부 네트워크 로드 밸런서의 IP 주소(이전 단계에서 획득)를 대상으로 지정하고 :extui:`Include as pending below`를 선택합니다.
로드 밸런서가 생성되면 다음 단계에서 사용할 로드 밸런서의 DNS 이름을 복사합니다.
네트워크 로드 밸런서를 만드는 방법에 대한 자세한 내용은 `네트워크 로드 밸런서 만들기<https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html>`_를 참조하세요.
사용자 지정 수신 FQDN을 AWS 로드 밸런서의 DNS 이름에 매핑하는 DNS CNAME 레코드를 생성합니다.
Route 53의 자세한 DNS 구성 지침은 `Route 53에서 레코드 생성하기<https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html>`_ 섹션을 참조하세요.
검증¶
Openflow 배포는 Deployments 페이지에 Active 상태로 표시됩니다.
Openflow 배포에서 런타임을 만듭니다.
런타임이 Active`인 경우, 런타임 이름을 클릭하거나 :ui:`View canvas 메뉴 옵션을 사용하여 런타임의 UI에 액세스합니다.
Openflow는 배포 생성 중에 지정된 호스트 이름을 사용하여 런타임으로 안내합니다. 예:
https://openflow01.your-domain.org/my-runtime/nifi/.
Troubleshooting¶
The following sections provide troubleshooting steps for common issues with custom ingress. If you are still experiencing issues after performing these checks, file a Snowflake Support case.
Load balancer target health check¶
The target group for your network load balancer should list the IP addresses of the Openflow-managed internal network load balancer as targets. All of these targets should show as Healthy. If targets are Unhealthy, use the following checks to narrow down where traffic is failing.
In the AWS console, open EC2 » Load Balancers.
Locate the Openflow-managed load balancer that manages ingress to the Kubernetes cluster. This load balancer is named
runtime-ingress-{deployment-key}.Review the target health for that load balancer under the Resource map tab.
If the Openflow-managed load balancer is not active or has Unhealthy targets:
Traffic may be blocked between the Openflow-managed load balancer and the BYOC cluster, or a service inside the cluster may not be ready.
Generate a diagnostic bundle by running
./diagnostics.shfrom the openflow-agent-{deployment-key} EC2 instance and attach it to a Snowflake Support case.
If the Openflow-managed load balancer is active and has healthy targets, check the target health for your load balancer.
If your load balancer’s targets are Unhealthy, the path from your load balancer to the Openflow-managed load balancer is the most likely problem:
Incorrect or stale IP addresses in your target group. The Openflow-managed load balancer exposes multiple IP addresses that can change over time. To get the latest values, run
nslookupwith the DNS name of the Openflow-managed load balancer. Update your load balancer’s targets as necessary.Security group rules. Confirm that inbound rules on the Openflow-managed load balancer’s security groups allow TCP
443from your load balancer. Traffic can fail if your load balancer can’t reach the Openflow load balancer on port443.
Browser security blocking¶
Some problems with custom ingress are caused by corporate browser security, firewalls, or web proxies that block or inspect traffic to your custom hostname. Those policies are separate from AWS load balancer configuration. You may find that users can’t open the Openflow UI even when AWS load balancers report healthy targets.
To verify connectivity through the load balancers to the Openflow services:
In the AWS console, open EC2 » Load Balancers to get the DNS name of the load balancer that is serving traffic and the TLS certificate for your custom ingress domain name.
This is not the runtime-ingress-{deployment-key} load balancer.
From the openflow-agent-{deployment-key} EC2 instance, verify connectivity through the load balancers to the Openflow deployment. Run the command:
If the command outputs the expected certificate information and a successful 404 status code response, you have successfully verified connectivity to your Openflow deployment.
If the command times out or returns an error, create a Snowflake Support case and attach a diagnostic bundle generated by running
./diagnostics.shfrom the Openflow Agent instance.
From the Openflow Agent instance, you can also verify the DNS CNAME record for your custom ingress FQDN. Run the command:
If the command returns the IP addresses of the load balancer that is performing TLS termination for your custom ingress domain name, you have successfully verified the DNS CNAME record.
If the command returns no results, the DNS CNAME record is not configured correctly. Check the DNS record for your custom ingress FQDN and ensure it points to your load balancer’s DNS name.
If the Openflow Agent connected successfully through your load balancer’s DNS and you have verified the DNS CNAME record, a security policy or firewall is likely blocking traffic from your browser to the Openflow BYOC deployment. Work with your security team to allowlist your custom ingress FQDN.