为了避免IP更改导致连接失败,可以使用AWS EC2实例的弹性IP(Elastic IP)功能。弹性IP是一个固定的公网IP地址,可以与EC2实例关联,并在实例停止和重新启动后保持不变。
以下是使用AWS SDK for Python(boto3)连接到EC2实例并关联弹性IP的示例代码:
import boto3
# 创建EC2资源
ec2 = boto3.resource('ec2')
# 创建弹性IP
response = ec2.meta.client.allocate_address(Domain='vpc')
allocation_id = response['AllocationId']
# 获取EC2实例ID
instance_id = 'your-instance-id'
# 关联弹性IP到EC2实例
ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id)
# 获取关联的弹性IP
response = ec2.meta.client.describe_addresses(AllocationIds=[allocation_id])
public_ip = response['Addresses'][0]['PublicIp']
# 使用关联的弹性IP连接到EC2实例
ssh_command = f'ssh -i your-key.pem ec2-user@{public_ip}'
print(ssh_command)
请确保替换示例代码中的 "your-instance-id" 和 "your-key.pem" 为实际的EC2实例ID和密钥文件路径。
这样,即使EC2实例的公网IP地址发生更改,你也可以使用关联的弹性IP地址来连接到实例。