📜  # bin bash 用于启动 ec2 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:01.550000             🧑  作者: Mango

用于启动 EC2 的 Shell-Bash 脚本

在 AWS 上创建和管理 EC2 实例是一个常见的任务。使用 AWS 管理控制台进行这些操作是非常方便的,但在某些情况下,使用命令行工具会更加高效。

本文将介绍如何使用 Shell 脚本来启动 EC2 实例。具体地,我们将编写一个开机自动启动的 Bash 脚本,该脚本将启动一个新的 EC2 实例,并输出实例的公有 IP 地址。

前提条件

在开始之前,您需要完成以下操作:

  • 在 AWS 中创建一个密钥对
  • 配置 AWS CLI 并设置访问密钥,以便您能够与 AWS API 进行交互
代码实现

以下是启动 EC2 实例的脚本代码:

#!/bin/bash

# 定义启动实例的参数
AMI_ID="ami-123456"
INSTANCE_TYPE="t2.micro"
KEY_NAME="my-key-pair"
SECURITY_GROUP="my-security-group"

# 启动实例
INSTANCE_ID=$(aws ec2 run-instances \
  --image-id $AMI_ID \
  --instance-type $INSTANCE_TYPE \
  --key-name $KEY_NAME \
  --security-groups $SECURITY_GROUP \
  --output text \
  --query 'Instances[0].InstanceId')

echo "Instance ID: $INSTANCE_ID"

# 等待实例状态变为 running
aws ec2 wait instance-running --instance-ids $INSTANCE_ID

# 获取实例的公有 IP 地址
PUBLIC_IP=$(aws ec2 describe-instances \
  --instance-ids $INSTANCE_ID \
  --output text \
  --query 'Reservations[0].Instances[0].PublicIpAddress')

echo "Public IP: $PUBLIC_IP"
脚本解析

该脚本执行了以下操作:

  1. 定义了启动实例的参数,包括 AMI ID、实例类型、密钥对和安全组。
  2. 使用 aws ec2 run-instances 命令启动一个新的 EC2 实例。--output text--query 选项用于提取实例 ID。
  3. 等待实例状态变为 running,这是为了确保实例已经可以使用并且具有公有 IP。
  4. 使用 aws ec2 describe-instances 命令获取实例的公有 IP 地址。
总结

使用 shell 脚本启动 EC2 实例是一个非常实用的技能,它可以在各种场景下提高效率。我们希望这个简短的教程能够帮助您更好地理解如何编写一个自动启动 EC2 实例的 Bash 脚本。