如何找到我的 IAM 用户可用的镜像 ID、实例类型和子网 ID?

问题描述 投票:0回答:1

我已使用 AWS 创建了一个免费套餐账户,并按照 AWS CLI 2.0 文档来运行 EC2 VPC 实例。我已经创建了一个 AWS 根用户、一个 IAM 用户及其访问密钥以及 EC2 密钥对。

我在 https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-instances.html中看到以下命令:

aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e

我想知道如何找出以下选项的值

--image-id
--instance-type
-subnet-id
,这些选项可供我的 AWS 账户和 IAM 用户使用?

amazon-web-services amazon-ec2 aws-cli
1个回答
2
投票

您可以通过 Web 控制台找到这些值,但您在 AWS 中可以执行的所有操作也可以通过 API 执行,并且大多数操作也可以使用 CLI 执行。根据 https://aws.amazon.com/free/?nc1=h_ls&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types= *all&awsf.Free%20Tier%20Categories=*all 免费套餐仅提供

t2.micro
t3.micro
实例类型,但您仍然可以列出所有实例类型以查看更详细的信息。有趣的是,现在我只得到 t1.micro 和 t2.micro 作为
FreeTierEligible=true
过滤器的输出 - 请参阅文本下方的示例。

对于子网:

  describe-subnets
[--filters <value>]
[--subnet-ids <value>]
[--dry-run | --no-dry-run]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]
[--generate-cli-skeleton <value>]

示例:

aws --region us-east-1 --output=json ec2 describe-subnets

输出:

{
"Subnets": [
    {
        "AvailabilityZone": "us-east-1b",
        "AvailabilityZoneId": "use1-az4",
        "AvailableIpAddressCount": 4091,
        "CidrBlock": "172.31.0.0/20",
        "DefaultForAz": true,
        "MapPublicIpOnLaunch": true,
        "MapCustomerOwnedIpOnLaunch": false,
        "State": "available",
        "SubnetId": "subnet-xxxxx",
        "VpcId": "vpc-xxxxx",
        "OwnerId": "xxxxxxxx",
        "AssignIpv6AddressOnCreation": false,
        "Ipv6CidrBlockAssociationSet": [],
        "SubnetArn": "arn:aws:ec2:us-east-1:xxxxxxxx:subnet/subnet-xxxxx",
        "EnableDns64": false,
        "Ipv6Native": false,
        "PrivateDnsNameOptionsOnLaunch": {
            "HostnameType": "ip-name",
            "EnableResourceNameDnsARecord": false,
            "EnableResourceNameDnsAAAARecord": false
        }
    },

我可以使用类似

jq
的内容来仅过滤掉子网 ID:

    aws --region us-east-1 --output=json ec2 describe-subnets | jq ".Subnets[].SubnetId"
"subnet-aaaaaaaa"
"subnet-bbbbbbbb"
"subnet-cccccccc"

实例类型:

https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-type-offerings.html

  describe-instance-types
[--dry-run | --no-dry-run]
[--instance-types <value>]
[--filters <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]

示例 - 包括针对符合免费套餐条件的实例类型的过滤器 - 请注意,t1.micro 或 t2.micro 实例只有 750 个免费套餐小时,因此您可以运行一个实例一个月或其中四个实例运行一周:

aws --region us-east-1 --output=json ec2 describe-instance-types  --filters Name=free-tier-eligible,Values=true

输出:

{
    "InstanceTypes": [
        {
            "InstanceType": "t2.micro",
            "CurrentGeneration": true,
            "FreeTierEligible": true,
            "SupportedUsageClasses": [
                "on-demand",
                "spot"
            ],
            "SupportedRootDeviceTypes": [
                "ebs"
            ],
            "SupportedVirtualizationTypes": [
                "hvm"
            ],
            "BareMetal": false,
            "Hypervisor": "xen",
            "ProcessorInfo": {
                "SupportedArchitectures": [
                    "i386",
                    "x86_64"
                ],
                "SustainedClockSpeedInGhz": 2.5
            },
            "VCpuInfo": {
                "DefaultVCpus": 1,
                "DefaultCores": 1,
                "DefaultThreadsPerCore": 1
            },
            "MemoryInfo": {
                "SizeInMiB": 1024
            },
            "InstanceStorageSupported": false,
            "EbsInfo": {
                "EbsOptimizedSupport": "unsupported",
                "EncryptionSupport": "supported",
                "NvmeSupport": "unsupported"
            },
            "NetworkInfo": {
                "NetworkPerformance": "Low to Moderate",
                "MaximumNetworkInterfaces": 2,
                "MaximumNetworkCards": 1,
                "DefaultNetworkCardIndex": 0,
                "NetworkCards": [
                    {
                        "NetworkCardIndex": 0,
                        "NetworkPerformance": "Low to Moderate",
                        "MaximumNetworkInterfaces": 2
                    }
                ],
                "Ipv4AddressesPerInterface": 2,
                "Ipv6AddressesPerInterface": 2,
  ....this is very long try it for yourself

从实例类型中,您可能希望使用

SupportedRootDeviceTypes
值进行下一个查询:

描述图像:

https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html

 describe-images
[--executable-users <value>]
[--filters <value>]
[--image-ids <value>]
[--owners <value>]
[--include-deprecated | --no-include-deprecated]
[--dry-run | --no-dry-run]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

示例:

aws --region us-east-1 --output=json ec2 describe-images --owners self amazon --filters "Name=root-device-type,Values=ebs"

输出:

{
"Images": [
    {
        "Architecture": "x86_64",
        "CreationDate": "2021-10-01T06:33:39.000Z",
        "ImageId": "ami-03ed02f0f58f6da3b",
        "ImageLocation": "amazon/amzn-ami-minimal-pv-2018.03.0.20211001.0-x86_64-ebs",
        "ImageType": "machine",
        "Public": true,
        "KernelId": "aki-5c21674b",
        "OwnerId": "137112412989",
        "PlatformDetails": "Linux/UNIX",
        "UsageOperation": "RunInstances",
        "State": "available",
        "BlockDeviceMappings": [
            {
                "DeviceName": "/dev/sda1",
                "Ebs": {
                    "DeleteOnTermination": true,
                    "SnapshotId": "snap-0e7ecc707162605a2",
                    "VolumeSize": 2,
                    "VolumeType": "standard",
                    "Encrypted": false
                }
            }
        ],
        "Description": "Amazon Linux AMI 2018.03.0.20211001.0 x86_64 Minimal PV ebs",
        "EnaSupport": true,
        "Hypervisor": "xen",
        "ImageOwnerAlias": "amazon",
        "Name": "amzn-ami-minimal-pv-2018.03.0.20211001.0-x86_64-ebs",
        "RootDeviceName": "/dev/sda1",
        "RootDeviceType": "ebs",
        "SriovNetSupport": "simple",
        "VirtualizationType": "paravirtual",
        "DeprecationTime": "2023-10-01T06:33:39.000Z"
    },
© www.soinside.com 2019 - 2024. All rights reserved.