> 核心關(guān)鍵詞:AWS EC2 API、創(chuàng)建 EC2 實(shí)例、自動(dòng)化啟動(dòng)實(shí)例、Boto3 run_instances


二、訪問方式與準(zhǔn)備工作

AWS 提供多種調(diào)用 EC2 API 的方式:

  1. AWS SDK(Boto3/PHP/Java 等) – 推薦用于快速開發(fā)
  2. AWS CLI – 腳本化命令行調(diào)用
  3. 原生 Query API(HTTP+AWS Signature V4 簽名) – 深入理解底層機(jī)制
  4. Infrastructure as Code(Terraform/CDK/CloudFormation) – 聲明式管理

2.1 環(huán)境配置

pip install boto3

~/.aws/credentials 中配置 IAM 憑證:

[default]
aws_access_key_id = YOUR_KEY_ID
aws_secret_access_key = YOUR_SECRET
region = us-west-2

> 長(zhǎng)尾關(guān)鍵詞:AWS CLI 創(chuàng)建 EC2 實(shí)例、Terraform EC2 自動(dòng)化


三、使用 Boto3 SDK 創(chuàng)建與啟動(dòng)實(shí)例

3.1 初始化 EC2 客戶端

import boto3
ec2 = boto3.client('ec2')

3.2 創(chuàng)建 EC2 實(shí)例

response = ec2.run_instances(
    ImageId='ami-0abcdef1234567890',          # Linux/UNIX AMI
    InstanceType='t3.micro',                 # 實(shí)例規(guī)格
    MinCount=1, MaxCount=1,                   # 創(chuàng)建 1 臺(tái)
    KeyName='my-keypair',                     # SSH 密鑰對(duì)
    TagSpecifications=[{
        'ResourceType':'instance',
        'Tags':[{'Key':'Name','Value':'API-Created-Instance'}]
    }]
)
instance_id = response['Instances'][0]['InstanceId']
print("已創(chuàng)建實(shí)例:", instance_id)

> 相關(guān)關(guān)鍵詞:Boto3 run_instances 示例、實(shí)例標(biāo)簽 TagSpecifications

3.3 等待實(shí)例啟動(dòng)并獲取 IP

import time

while True:
    inst = ec2.describe_instances(InstanceIds=[instance_id])['Reservations'][0]['Instances'][0]
    state = inst['State']['Name']
    if state == 'running':
        ip = inst.get('PublicIpAddress')
        print("實(shí)例啟動(dòng)完成,公共IP:", ip)
        break
    print("當(dāng)前狀態(tài):", state, ",等待中...")
    time.sleep(5)

四、使用原生 Query API 調(diào)用示例

了解底層請(qǐng)求簽名有助于排查問題:

curl "https://ec2.amazonaws.com/?Action=RunInstances&ImageId=ami-0abcdef1234567890&InstanceType=t3.micro&MinCount=1&MaxCount=1&Version=2016-11-15&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=YOUR_KEY%2F20250715%2Fus-west-2%2Fec2%2Faws4_request&X-Amz-Date=20250715T080000Z&X-Amz-SignedHeaders=host&X-Amz-Signature=SIGNATURE"

> 相關(guān)關(guān)鍵詞:EC2 Query API 簽名、AWS Signature V4 調(diào)用


五、網(wǎng)絡(luò)與存儲(chǔ)配置

5.1 指定子網(wǎng)與安全組

ec2.run_instances(
    ...,
    SubnetId='subnet-0123456789abcdef0',
    SecurityGroupIds=['sg-0123456789abcdef0']
)

5.2 掛載 EBS 卷

ec2.run_instances(
    ...,
    BlockDeviceMappings=[{
        'DeviceName': '/dev/sdh',
        'Ebs': {'VolumeSize': 20, 'VolumeType': 'gp3'}
    }]
)

六、自動(dòng)化腳本與最佳實(shí)踐

  1. 模塊化腳本:封裝“創(chuàng)建”“啟動(dòng)”“查詢”功能
  2. 異常重試:捕獲 botocore.exceptions.ClientError 并重試
  3. 日志記錄:使用 logging 模塊跟蹤操作結(jié)果
  4. 參數(shù)化運(yùn)行:使用環(huán)境變量或配置文件管理參數(shù)
  5. 安全存儲(chǔ)憑證:采用 AWS Secrets Manager 或環(huán)境變量

七、與 CI/CD 及 IaC 集成

7.1 Terraform 示例

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "web" {
  ami           = "ami-0abcdef1234567890"
  instance_type = "t3.micro"
  key_name      = "my-keypair"
  tags = { Name = "TerraformInstance" }
  count         = 1
}

7.2 GitHub Actions 自動(dòng)化

name: Deploy EC2
on: push
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Terraform Apply
        uses: hashicorp/terraform-github-actions@v1
        with:
          tf_actions_working_dir: ./infra
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET }}

八、常見問題與排錯(cuò)指南

問題 建議
AuthFailure 身份驗(yàn)證失敗 檢查 AWS 憑證、系統(tǒng)時(shí)間與區(qū)域設(shè)置
InvalidAMIID.NotFound AMI 無效 確認(rèn) AMI ID 是否在當(dāng)前區(qū)域可用
InsufficientInstanceCapacity 切換實(shí)例規(guī)格或區(qū)域,或稍后重試
公網(wǎng) IP 未分配 確保子網(wǎng)啟用 Public IP 分配

九、視頻教程資源

原文引自YouTube視頻:https://www.youtube.com/watch?v=YH_DVenJHII

上一篇:

如何通過 AWS EC2 API 管理云服務(wù)器實(shí)例

下一篇:

深入解析 DeepSeek API 密鑰:獲取、使用與最佳實(shí)踐
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)