标签: amazon-ec2

AWS boto3 - 如何运行现货实例?

我目前这样做是为了从 lambda 函数启动 EC2 按需实例:

 ec2 = boto3.resource('ec2', region_name='us-east-2')

 instances = ec2.create_instances(
    ImageId='ami-0c709cc4edbf9a8c0', 
    MinCount=1, 
    MaxCount=1,
    KeyName="mykey",
    InstanceType="m4.large",
    IamInstanceProfile={'Arn': 'arn:aws:iam::231412431243:instance-profile/myimage'},
    UserData=user_data_script
Run Code Online (Sandbox Code Playgroud)

我可以在此处添加一个属性来将其作为现货实例运行吗?

amazon-ec2 amazon-web-services boto3 aws-lambda

0
推荐指数
1
解决办法
863
查看次数

如何远程访问在AWS EC2上运行的Python Flask应用程序?

我有一个 Flask 应用程序,已将其克隆到我的 aws ec2 实例上。我只能使用虚拟环境运行它(我通过运行以下命令激活它):

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install --upgrade pip
$ pip install flask==1.1.1
Run Code Online (Sandbox Code Playgroud)

下面是我的应用程序:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run() 
Run Code Online (Sandbox Code Playgroud)

执行时运行得很好env FLASK_APP=app.py flask run。问题是,我想使用我的 aws ec2 的公共 IP 或主机名远程访问公开的路由。每当我尝试访问它时,我都会收到一个 tiemout 错误。我认为这是因为我在虚拟环境中运行烧瓶应用程序,但我不确定。我找不到任何关于如何揭露这一点的好的教程。我这里哪里出错了?

python amazon-ec2 amazon-web-services flask

0
推荐指数
1
解决办法
4383
查看次数

为什么无法在域名上配置AWS安全组

我是 AWS 新手并开始学习。在浏览安全组时,我发现我们可以基于 IP 地址应用规则,但不能基于 DNS 名称。

我参考了互联网上的几个页面:

它们为解决方案提供了替代机制。

但为什么 AWS 不允许呢?如果我们根据 DNS 名称配置安全组,是否存在我遗漏的任何安全问题?

amazon-ec2 amazon-web-services aws-security-group

0
推荐指数
1
解决办法
2605
查看次数

更改EC2实例的私钥

我有两个带有私钥的服务器(实例),我想更改这些密钥而不停止服务器(实例)或创建新的密钥。

这可能吗?

amazon-ec2 amazon-web-services public-key key-pair private-key

0
推荐指数
1
解决办法
145
查看次数

如果删除了卷,则删除快照

我需要删除其 EBS 卷已删除的弹性块存储卷的快照。我想使用 Lambda 函数来完成此操作。我编写了一个脚本,如果 EBS 卷不存在,该脚本将返回 false。如何修改它以删除任何相关快照?

def get_snapshots():
    account_ids = list()
    account_ids.append( boto3.client('sts').get_caller_identity().get('Account'))
    return ec2.describe_snapshots(OwnerIds=account_ids)
 
def volume_exists(volume_id):
    if not volume_id: return ''
    try:
        ec2.describe_volumes(VolumeIds=[volume_id])
        return True
    except ClientError:
        return False
 

 
def lambda_handler(event, context):

    with open('/tmp/report.csv', 'w') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow([
        'volume exists'
        ])
        snaps = get_snapshots()
        
        for snap in snaps.get('Snapshots'):
            writer.writerow([
            
            str(volume_exists(snap['VolumeId']))
            ])
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

python amazon-ec2 amazon-web-services aws-lambda aws-ebs

0
推荐指数
1
解决办法
1091
查看次数

CloudFormation 模板不选择密钥对

我使用以下方法成功创建了以下四个资源Cloud Formation Template (CFT)

  1. 专有网络
  2. 子网
  3. 互联网网关
  4. 连接网关

现在,我正在尝试使用 EC2 实例创建一个安全组,这是代码。

  Type: AWS::EC2::SecurityGroup
  Properties:
      GroupDescription: Allow http and ssh to client host
      VpcId:
         Ref: InsuranceVPC
      SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort: 80
        ToPort: 80
        CidrIp: 0.0.0.0/0
      - IpProtocol: tcp
        FromPort: 22
        ToPort: 22
        CidrIp: 0.0.0.0/0
      SecurityGroupEgress:
      - IpProtocol: tcp
        FromPort: 80
        ToPort: 80
        CidrIp: 0.0.0.0/0

Ec2Instance: 
  Type: AWS::EC2::Instance
  Properties: 
    ImageId: "ami-08706cb5f68222d09"
    KeyName: 
      Ref: "DevOpsAutomation"
    NetworkInterfaces: 
      - AssociatePublicIpAddress: "true"
        DeviceIndex: "0"
        GroupSet: 
          - Ref: "InsuranceSecurityGroup"
        SubnetId: 
          Ref: "InsuranceSubnet"
Run Code Online (Sandbox Code Playgroud)

但是,当我在(CFT,如上所示,代码)中使用 Key …

amazon-ec2 amazon-web-services aws-cloudformation aws-cloudformation-custom-resource

0
推荐指数
1
解决办法
1180
查看次数

AWS Lambda Functions:它不显示现有角色的列表

IAM我已经根据策略创建了一个角色AmazonEC2FullAccess。这个角色是在 中正确创建的IAM。但同样的角色似乎并没有附加lambda功能。

有人可以帮忙吗?我有管理员访问权限,因此我收到以下错误。

(AccessDenied) when calling the PutMetricAlarm operation: User: arn:aws:sts::xxx:assumed-role/lambdaEC2fullaccess/StopEc2 is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::xxx:role/aws-service-role/events.amazonaws.com/AWSServiceRoleForCloudWatchEvents"

具有访问角色的图像

角色未出现在 Lambda 中

amazon-ec2 amazon-web-services amazon-iam aws-lambda

0
推荐指数
1
解决办法
1789
查看次数

EC2 用例上的多个 ENI

我在自定义 VPC 中创建了 2 个私有子网 PRIVATEA 和 PRIVATEB。这些子网位于不同的可用区。在 PRIVATEA 中添加了 EC2 实例。该实例已附加 ENI eth0。接下来,我在另一个 PRIVATEB 子网中创建了一个 ENI,并将其附加到 PRIVATEB 子网中的 EC2 实例。设置成功。基本上我按照博客教程进行了此设置。它表示辅助接口将允许另一个组(即管理组)的流量。

但我无法将任何用例与它联系起来。谁能解释一下我们什么时候使用这样的设置?这是在本论坛中提出的正确问题吗?

谢谢

amazon-ec2 amazon-web-services elastic-network-interface

0
推荐指数
1
解决办法
1989
查看次数

如何通过 AWS CLI 更新 Amazon S3 存储桶策略?

我需要向 Amazon S3 存储桶策略添加新行“arn:aws:sts::1262767:assumed-role/EC2-support-services”。

像这样的东西:

前:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddCannedAcl",
      "Effect":"Allow",
    "Principal": {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]},
      "Action":["s3:PutObject","s3:PutObjectAcl"],
      "Resource":"arn:aws:s3:::awsexamplebucket1/*",
      "Condition":{
     "StringNotLike": {
        "aws:arn": [
          "arn:aws:sts::1262767:assumed-role/GR_COF_AWS_Prod_Support/*"
        ]
      }       
     }
   
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

后:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddCannedAcl",
      "Effect":"Allow",
    "Principal": {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]},
      "Action":["s3:PutObject","s3:PutObjectAcl"],
      "Resource":"arn:aws:s3:::awsexamplebucket1/*",
      "Condition":{
     "StringNotLike": {
        "aws:arn": [
          "arn:aws:sts::1262767:assumed-role/GR_COF_AWS_Prod_Support/*",
           "arn:aws:sts::1262767:assumed-role/EC2-support-services"
        ]
      }       
     }
   
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

我需要使用什么 AWS CLI 命令来添加此行?

amazon-s3 amazon-ec2 amazon-web-services aws-cli

0
推荐指数
1
解决办法
9032
查看次数

如何通过 CLI 终止 AWS 中的多个 EC2 实例?

我正在寻找EC2通过终止多个实例AWS CLI。是的,可以通过执行以下命令来终止 EC2 实例。

句法aws ec2 terminate-instances --instance-ids <intance id> --profile <profile name>

例子aws ec2 terminate-instances --instance-ids <i-...> --profile xxx

但我有一个需要终止的大量实例列表,因此我正在寻找一种解决方案,通过提供实例 ID 列表来终止一批 EC2 实例。我尝试使用多个实例 ID,如下所示,但它们不起作用。

  • aws ec2 terminate-instances --instance-ids ("instance-id1", "intance-id2") --profile xxx
  • aws ec2 terminate-instances --instance-ids ("instance-id1intance-id2") --profile xxx
  • aws ec2 terminate-instances --instance-ids (instance-id1,intance-id2) --profile xxx

请告诉我是否有可能终止一批实例。

command-line-interface amazon-ec2 amazon-web-services aws-cli

0
推荐指数
1
解决办法
4433
查看次数