210 lines
5.2 KiB
Markdown
210 lines
5.2 KiB
Markdown
|
|
# 第7天:AWS CLI——用命令行操控云
|
|||
|
|
|
|||
|
|
## 今天你将学到什么
|
|||
|
|
|
|||
|
|
今天安装和配置 AWS CLI(命令行界面),学会用键盘代替鼠标来操作 AWS。
|
|||
|
|
|
|||
|
|
你可能会问:有网页控制台了,为什么还要学命令行?
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 为什么要用命令行
|
|||
|
|
|
|||
|
|
用一个生活例子来说明:
|
|||
|
|
|
|||
|
|
假设你要给 100 个文件改名字。
|
|||
|
|
- 用鼠标:右键 → 重命名 → 输入新名字 → 回车。重复 100 次。
|
|||
|
|
- 用命令行:写一行命令,1 秒搞定 100 个。
|
|||
|
|
|
|||
|
|
在 AWS 中也是一样:
|
|||
|
|
- 用控制台创建 1 台服务器:点点点,2 分钟搞定。
|
|||
|
|
- 用控制台创建 50 台配置相同的服务器:点到手抽筋。
|
|||
|
|
- 用命令行创建 50 台服务器:一条命令,10 秒搞定。
|
|||
|
|
|
|||
|
|
**命令行的优势**:
|
|||
|
|
- **可重复**:命令可以保存成脚本,下次一键执行
|
|||
|
|
- **可自动化**:配合定时任务、CI/CD 流水线
|
|||
|
|
- **更快**:熟练后比点网页快得多
|
|||
|
|
- **可审计**:命令历史就是操作记录
|
|||
|
|
- **批量操作**:一条命令处理成百上千个资源
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 安装 AWS CLI
|
|||
|
|
|
|||
|
|
AWS CLI 有 v1 和 v2 两个版本,我们装最新的 v2。
|
|||
|
|
|
|||
|
|
### Windows 安装
|
|||
|
|
|
|||
|
|
1. 下载安装包:https://awscli.amazonaws.com/AWSCLIV2.msi
|
|||
|
|
2. 双击运行,一路点"Next"
|
|||
|
|
3. 安装完成
|
|||
|
|
|
|||
|
|
### macOS 安装
|
|||
|
|
|
|||
|
|
1. 下载安装包:https://awscli.amazonaws.com/AWSCLIV2.pkg
|
|||
|
|
2. 双击运行,按提示安装
|
|||
|
|
|
|||
|
|
或者用 Homebrew(如果你装了的话):
|
|||
|
|
```
|
|||
|
|
brew install awscli
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Linux 安装
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
|||
|
|
unzip awscliv2.zip
|
|||
|
|
sudo ./aws/install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 验证安装成功
|
|||
|
|
|
|||
|
|
打开终端(Windows 用 PowerShell 或 Git Bash),输入:
|
|||
|
|
```
|
|||
|
|
aws --version
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
看到类似 `aws-cli/2.x.x Python/3.x.x` 的输出就说明安装成功了。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 配置 AWS CLI
|
|||
|
|
|
|||
|
|
安装好了,但 CLI 还不知道"你是谁"。需要告诉它你的身份信息。
|
|||
|
|
|
|||
|
|
### 第一步:创建 Access Key
|
|||
|
|
|
|||
|
|
1. 用你的 IAM 用户登录 AWS 控制台
|
|||
|
|
2. 右上角点击你的用户名 → "安全凭证"
|
|||
|
|
3. 往下找到 "访问密钥"(Access keys)→ "创建访问密钥"
|
|||
|
|
4. 选择 "命令行界面 (CLI)"
|
|||
|
|
5. 确认并创建
|
|||
|
|
6. **重要**:记录下 Access Key ID 和 Secret Access Key
|
|||
|
|
|
|||
|
|
**Secret Access Key 只显示这一次!** 关掉页面就再也看不到了。建议立刻复制保存到安全的地方(密码管理器)。
|
|||
|
|
|
|||
|
|
### 第二步:运行配置命令
|
|||
|
|
|
|||
|
|
在终端输入:
|
|||
|
|
```
|
|||
|
|
aws configure
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
它会依次问你四个问题:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
AWS Access Key ID [None]: 输入你的 Access Key ID
|
|||
|
|
AWS Secret Access Key [None]: 输入你的 Secret Access Key
|
|||
|
|
Default region name [None]: ap-northeast-1
|
|||
|
|
Default output format [None]: json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Region 怎么选**:
|
|||
|
|
- 如果你在中国,选 `ap-northeast-1`(东京)或 `ap-southeast-1`(新加坡),延迟较低
|
|||
|
|
- 如果纯学习不在意延迟,选 `us-east-1`(弗吉尼亚),服务最全、价格最低
|
|||
|
|
|
|||
|
|
**输出格式**:
|
|||
|
|
- `json`:程序友好,信息最全(推荐)
|
|||
|
|
- `table`:人类友好,像表格一样展示
|
|||
|
|
- `text`:纯文本,适合脚本处理
|
|||
|
|
|
|||
|
|
### 第三步:验证配置
|
|||
|
|
|
|||
|
|
输入以下命令:
|
|||
|
|
```
|
|||
|
|
aws sts get-caller-identity
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果配置正确,会返回类似这样的信息:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"UserId": "AIDAXXXXXXXXXXXXXXXXX",
|
|||
|
|
"Account": "123456789012",
|
|||
|
|
"Arn": "arn:aws:iam::123456789012:user/admin-daily"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这说明 CLI 已经知道你是谁了,可以开始使用了。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 试试几个基本命令
|
|||
|
|
|
|||
|
|
AWS CLI 的命令格式非常统一:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
aws <服务名> <操作> [参数]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 列出你的 S3 桶
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
aws s3 ls
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果你还没创建过任何 S3 桶,会返回空结果(这是正常的)。
|
|||
|
|
|
|||
|
|
### 查看你有哪些 EC2 实例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
aws ec2 describe-instances
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
同样,如果没创建过,会返回空的列表。
|
|||
|
|
|
|||
|
|
### 查看所有可用的 Region
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
aws ec2 describe-regions --output table
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这会以表格形式列出所有 AWS Region,很直观。
|
|||
|
|
|
|||
|
|
### 查看当前账户信息
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
aws iam get-user
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
返回你当前 IAM 用户的详细信息。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 安全注意事项
|
|||
|
|
|
|||
|
|
Access Key 就像你家的钥匙,泄露了别人就能进你家。以下几点务必注意:
|
|||
|
|
|
|||
|
|
**绝对不要做的事**:
|
|||
|
|
- 把 Access Key 写在代码里然后提交到 GitHub(每天都有人因此被盗)
|
|||
|
|
- 把 Access Key 发在聊天群里或邮件里
|
|||
|
|
- 把 Access Key 存在桌面的 txt 文件里
|
|||
|
|
|
|||
|
|
**应该做的事**:
|
|||
|
|
- 用密码管理器保存
|
|||
|
|
- 定期更换(比如每 90 天)
|
|||
|
|
- 不用的 Key 立刻删除
|
|||
|
|
- 在 EC2 服务器上用"角色"而不是 Access Key(后面会学到)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 今天的小测验
|
|||
|
|
|
|||
|
|
1. AWS CLI 的命令格式是什么?
|
|||
|
|
2. `aws configure` 需要输入哪四个信息?
|
|||
|
|
3. 为什么 Secret Access Key 只显示一次?
|
|||
|
|
4. 为什么不应该把 Access Key 放在代码里?
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 延伸阅读
|
|||
|
|
|
|||
|
|
- [AWS CLI v2 安装指南](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
|
|||
|
|
- [AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 明天预告
|
|||
|
|
|
|||
|
|
第一阶段完成!明天进入第二阶段"核心服务",从最重要的 EC2 开始——启动你人生中第一台云服务器。我们会一步步操作,让你真正体验到"几分钟就有一台服务器"的感觉。
|