使用 cloudformation 将 ec2 密钥对添加到 EMR 集群
Posted
技术标签:
【中文标题】使用 cloudformation 将 ec2 密钥对添加到 EMR 集群【英文标题】:adding ec2 key pair to EMR cluster using cloudformation 【发布时间】:2021-11-02 15:46:12 【问题描述】:我正在尝试编写一个模板来使用 cloudformation 创建一个 EMR 集群。
到目前为止,我想出了这个
AWSTemplateFormatVersion: 2010-09-09
Parameters:
SubnetId:
Type: "String"
Default: "subnet-0caca76de8cc43e70"
ClusterName:
Type: "String"
Default: "Example_Three_Node_Cluster"
EmrRelease:
Type: "String"
Default: "emr-6.2.0"
AllowedValues:
- "emr-6.2.0"
- "emr-5.32.0"
ClusterInstanceType:
Type: "String"
Default: "m5.xlarge"
AllowedValues:
- "m5.xlarge"
- "m5.2xlarge"
Resources:
EmrCluster:
Type: AWS::EMR::Cluster
Properties:
Applications:
- Name: Spark
- Name: Livy
- Name: JupyterEnterpriseGateway
- Name: Hive
EbsRootVolumeSize: '10'
Name: !Ref ClusterName
JobFlowRole: EMR_EC2_DefaultRole
ServiceRole: EMR_DefaultRole
ReleaseLabel: !Ref EmrRelease
VisibleToAllUsers: true
LogUri:
Fn::Sub: 's3://aws-logs-$AWS::AccountId-$AWS::Region/elasticmapreduce/'
Instances:
TerminationProtected: false
Ec2SubnetId: !Ref SubnetId
MasterInstanceGroup:
InstanceCount: 1
InstanceType: !Ref ClusterInstanceType
CoreInstanceGroup:
InstanceCount: 2
InstanceType: !Ref ClusterInstanceType
Market: ON_DEMAND
Name: Core
Outputs:
ClusterId:
Value:
Ref: EmrCluster
Description: The ID of the EMR Cluster
我在其他地方创建了默认角色(目前不使用 cloudformation)
我想了解如何添加 EC2 密钥对,以便我可以通过 ssh 进入节点。
有什么帮助吗?
使用 cli 似乎更严格
aws emr create-cluster \
--name "MyCluster" \
--release-label emr-5.33.1 \
--applications Name=Spark \
--ec2-attributes KeyName=MyKey \
--instance-type m5.xlarge \
--instance-count 3 \
--use-default-roles
【问题讨论】:
【参考方案1】:有Ec2KeyName参数:
EC2 密钥对的名称,可用于以用户名为“hadoop”的身份使用 SSH 连接到主节点。
【讨论】:
以上是关于使用 cloudformation 将 ec2 密钥对添加到 EMR 集群的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CloudFormation 将安全组添加到现有 EC2 实例
如何使用cloudformation模板将两个EC2实例(安装AMI创建的Elasticsearch)作为多节点?
如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板