Amazon ec2 如何从新的EC2 CLI启动实例?

Amazon ec2 如何从新的EC2 CLI启动实例?,amazon-ec2,ec2-api-tools,Amazon Ec2,Ec2 Api Tools,我有一个ec2微实例。我可以从控制台启动它,用ssh连接到它(使用.pem文件)并访问它所承载的网站 使用旧的ec2 CLI,我可以启动实例并执行其他操作,包括ssh和网站访问 我在使用新的ec2 CLI时遇到问题。当我执行“aws ec2启动实例--实例ID I-xxx”时,我收到消息“调用StartInstances操作时发生客户端错误(InvalidInstanceID.NotFound):实例ID“I-xxx”不存在” 很明显,这个实例是存在的,所以我不知道这个消息真正表明了什么 以下是

我有一个ec2微实例。我可以从控制台启动它,用ssh连接到它(使用.pem文件)并访问它所承载的网站

使用旧的ec2 CLI,我可以启动实例并执行其他操作,包括ssh和网站访问

我在使用新的ec2 CLI时遇到问题。当我执行“aws ec2启动实例--实例ID I-xxx”时,我收到消息“调用StartInstances操作时发生客户端错误(InvalidInstanceID.NotFound):实例ID“I-xxx”不存在”

很明显,这个实例是存在的,所以我不知道这个消息真正表明了什么

以下是我的一些想法:

  • 旧CLI和新CLI之间的一个区别是,后者使用.pem文件,而新接口使用访问密钥对。该实例有一个与is关联的访问密钥对,但已尝试了我能找到的所有凭据,并且没有任何凭据更改任何内容)

  • 我尝试创建了一个IAM用户和一个新的访问密钥对。在所有情况下,行为都保持不变(从控制台或旧CLI、web访问、ssh开始),但不使用新CLI

  • 我意识到有一种方法可以通过分离卷(如上所述)来更新访问密钥对,但是这个过程看起来有点可怕

  • 我意识到我可以从映像中克隆另一个实例,但是映像有点过时,我不想丢失我的更改


  • 有人能建议这条消息的真正含义以及我能做些什么来解决这个问题吗?

    在新的cli实例中使用“aws配置”在ec2实例所在的区域配置您的aws cli。然后试着发出同样的命令。实例应该启动。

    问题与凭据有关。我有正确的环境 设置变量(AWS_访问密钥和AWS_保密密钥)。但它们与我的.aws/credentials文件中的内容不匹配。也就是说,不管它说什么,新的CLI只有在我有环境变量和
    凭据文件正确且处于同步状态。

    您确定具有正确的实例ID吗?该错误表明您没有。如果运行,您会得到什么响应对不起,我的第一条评论不完整-您确定您拥有正确的实例ID吗-该错误表明您没有。如果运行
    aws ec2 description instances
    ,其中应显示您的实例,包括要启动的实例,并且需要从“InstanceId”字段复制完整值,您会得到什么响应。另外,在descripe instances的输出中,您应该看到您试图启动的实例的停止状态
    “state”:{“code”:80,“Name”:“stopped”}
    我还应该添加-一旦实例已经运行,.pem文件用于与该实例建立SSH连接,CLI用于与AWS交互以描述、启动、,停止、创建、删除实例等,以便CLI不使用.pem文件。您必须拥有访问密钥才能使用CLI,但您看到的错误并不表明这是您的问题,如果存在帐户问题,则不会说找不到实例ID。CLI是否获取了正确的AWS凭据?如果由于某种原因,您有两个或多个与不同的帐户关联,并且它使用了错误的帐户,则会说不存在这样的实例,因为在该帐户中,该实例实际上不存在。实例id是正确的。它与用于从控制台和旧CLI启动实例的相同。