如何通过CloudFormation配置EC2 Instance Connect以访问EC2实例
问题说明
我正尝试为EC2实例配置EC2 Instance Connect,最初使用的CloudFormation模板如下:
AWSTemplateFormatVersion: 2010-09-09 Description: Part 1 - Spawn Ec2 instance with CloudFormation Resources: WebAppInstance: Type: AWS::EC2::Instance Properties: AvailabilityZone: us-east-2a ImageId: ami-074cce78125f09d61 InstanceType: t2.micro
上述模板虽可成功创建EC2实例,但无法通过EC2 Instance Connect访问该实例。
请问如何在CloudFormation模板中完成EC2 Instance Connect的相关配置?
解决方案
要支持EC2 Instance Connect访问,需要在原有模板基础上补充安全组配置、弹性公网IP绑定两个核心调整,完整模板如下:
AWSTemplateFormatVersion: 2010-09-09 Description: Part 1 - Build a webapp stack with CloudFormation Resources: WebAppInstance: Type: AWS::EC2::Instance Properties: AvailabilityZone: us-east-2a ImageId: ami-074cce78125f09d61 InstanceType: t2.micro SecurityGroupIds: - !Ref WebAppSecurityGroup WebAppSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupName: !Join ["-", [webapp-security-group, dev]] GroupDescription: "Allow HTTP/HTTPS and SSH inbound and outbound traffic" SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 443 ToPort: 443 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: 0.0.0.0/0 WebAppEIP: Type: AWS::EC2::EIP Properties: Domain: vpc InstanceId: !Ref WebAppInstance Tags: - Key: Name Value: !Join ["-", [webapp-eip, dev]] Outputs: WebsiteURL: Value: !Sub http://${WebAppEIP} Description: WebApp URL
核心配置说明:
- 新增安全组资源,放行SSH 22端口入站流量,满足EC2 Instance Connect的访问要求,同时开放80、443端口供业务使用
- 新增弹性公网EIP资源绑定到EC2实例,确保实例具备公网访问能力
- 输出项新增站点访问地址,方便部署完成后直接访问测试
内容的提问来源于stack exchange,提问作者Salam
相关产品推荐
相关产品推荐

