AWS - 无法从 SageMaker Studio 访问 RedShift 端点
AWS - Cannot access RedShift endpoint from the SageMaker Studio
问题
请告知如何解决问题。
问题
无法从 SageMaker studio 实例访问 RedShift 集群端点。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('dsoaws.cw7xniw3gvef.us-east-2.redshift.amazonaws.com',5439))
if result == 0:
print("Port is open")
else:
print("Port is not open")
sock.close()
---
Port is not open
RedShift 集群
端点是 dsoaws.cw7xniw3gvef.us-east-2.redshift.amazonaws.com:5439/dsoaws
。
网络设置显示 VPC 是 vpc-5b123432,允许从 sg-56cb133e 访问。
SageMaker Studio
SageMaker Studio 实例在保存 VPC vpc-5b123432 中。但是,不确定 sg-56cb133e 是否实际附加到 SageMaker studio 实例。请告知如何确认 sg-56cb133e 是否附加到实例。
import json
import boto3
from botocore.exceptions import ClientError
from botocore.config import Config
config = Config(
retries = {
'max_attempts': 10,
'mode': 'adaptive'
}
)
iam = boto3.client('iam', config=config)
sts = boto3.client('sts')
redshift = boto3.client('redshift')
sm = boto3.client('sagemaker')
ec2 = boto3.client('ec2')
try:
domain_id = sm.list_domains()['Domains'][0]['DomainId'] #['NotebookInstances'][0]['NotebookInstanceName']
describe_domain_response = sm.describe_domain(DomainId=domain_id)
vpc_id = describe_domain_response['VpcId']
print(vpc_id)
security_groups = ec2.describe_security_groups()['SecurityGroups']
for security_group in security_groups:
if vpc_id == security_group['VpcId']:
security_group_id = security_group['GroupId']
print(security_group_id)
except:
pass
-----
vpc-5b123432
sg-56cb133e
安全组
IAM
IAM 角色 SageMaker
附加到 SageMaker Studio。
原因
没有使用 VPC Only sagemaker 部署,因为使用了板载快速入门。
修复
- 删除了 SageMaker Studio。 R
- 仅使用标准设置 + VPC 重新创建
- 添加了 NAT 并配置了路由表。
参考资料
问题
请告知如何解决问题。
问题
无法从 SageMaker studio 实例访问 RedShift 集群端点。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('dsoaws.cw7xniw3gvef.us-east-2.redshift.amazonaws.com',5439))
if result == 0:
print("Port is open")
else:
print("Port is not open")
sock.close()
---
Port is not open
RedShift 集群
端点是 dsoaws.cw7xniw3gvef.us-east-2.redshift.amazonaws.com:5439/dsoaws
。
网络设置显示 VPC 是 vpc-5b123432,允许从 sg-56cb133e 访问。
SageMaker Studio
SageMaker Studio 实例在保存 VPC vpc-5b123432 中。但是,不确定 sg-56cb133e 是否实际附加到 SageMaker studio 实例。请告知如何确认 sg-56cb133e 是否附加到实例。
import json
import boto3
from botocore.exceptions import ClientError
from botocore.config import Config
config = Config(
retries = {
'max_attempts': 10,
'mode': 'adaptive'
}
)
iam = boto3.client('iam', config=config)
sts = boto3.client('sts')
redshift = boto3.client('redshift')
sm = boto3.client('sagemaker')
ec2 = boto3.client('ec2')
try:
domain_id = sm.list_domains()['Domains'][0]['DomainId'] #['NotebookInstances'][0]['NotebookInstanceName']
describe_domain_response = sm.describe_domain(DomainId=domain_id)
vpc_id = describe_domain_response['VpcId']
print(vpc_id)
security_groups = ec2.describe_security_groups()['SecurityGroups']
for security_group in security_groups:
if vpc_id == security_group['VpcId']:
security_group_id = security_group['GroupId']
print(security_group_id)
except:
pass
-----
vpc-5b123432
sg-56cb133e
安全组
IAM
IAM 角色 SageMaker
附加到 SageMaker Studio。
原因
没有使用 VPC Only sagemaker 部署,因为使用了板载快速入门。
修复
- 删除了 SageMaker Studio。 R
- 仅使用标准设置 + VPC 重新创建
- 添加了 NAT 并配置了路由表。