aws(学习笔记第一课)
-  使用AWS CLI
学习内容:
- 使用AWS CLI
- 配置密钥对
- 创建ec2 server
- 使用drawio(vscode插件)进行AWS的画图
1. 使用AWS CLI
 
- 注册AWS账号
 AWS是通用的云计算平台,可以提供ec2,vpc,SNS以及cloud watch,RDS等各种各样的云计算组件,使得用户可以专注于业务层次的开发,方便扩展。
 AWS官方网站
 AWS官方文档
  
 注册账号相当简单:- 首先需要一个国际信用卡(这里需要去银行办理,之后邮寄) 
    -   
-  第一年的费用是免费的,但是也有一些 service是付费的,注意在练习之后马上删除。
-  每次练习之后就立即删除的话,几乎不会花费费用。如果万一使用了过多的费用,也要立即和 AWS进行沟通。
 
-  
- 之后就是注册账号,正常进行注册
- 注册之后就会产生一个根用户,类似于linux的root账户
 
- 首先需要一个国际信用卡(这里需要去银行办理,之后邮寄) 
    
- 创建AWS用户
 可以使用上面的根用户,但是非常不建议这么做,因此创建一个新用户。- 使用根用户登录AWS 
- 点击IAM服务,创建新用户 
- 指定用户名,这里指定mycli 
- 配置权限
 直接附加策略到mycli用户,这里可以看出策略分为AWS托管和客户托管。
 AWS托管是AWS内置的策略,客户托管是用户自己创建的策略。这里选择AWS托管的AdministratorAccess。
  
- 创建好了用户
  
 
- 使用
- 创建访问密钥
 这里的访问密钥代表了该用户,所以一定要注意隐私安全,不要公开给其他人。
   - 选择命令行(CLI)
 选择之后继续下一步
  
- 设置标签。 
- 最后完成密钥的生成
 注意,这里的密钥要在之后的AWS CLI中配置使用,所以自己要记住。改密钥只能显示一次,所以一定要记住 
 
- 选择命令行(CLI)
- 安装AWS CLI
 这里虽然是windows系统安装,但是采用git bash+python进行安装 AWS CLI是基于python的- 安装python 
- 安装AWS CLI
 执行pip install awscli
  
- 检查AWS CLI的版本
  
 
- 安装
- 配置AWS CLI- 执行aws configure
 执行aws configure,第一个和第二个参数指定刚才生成的密钥。Default region name指定ap-northeast-1(东京,相对近些),输出形式指定json。 
- 检查配置的结果
 执行cd ~/.aws,进入配置目录,可以看到两个文件。 
- 执行下AWS CLI命令
 执行下面命令
 可以看到结果为空的aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro"Reservations,这是由于没有创建ec2 server,到了这里,AWS CLI创建OK 
 
- 执行
3. 创建公私钥密钥对
- 创建自己的密钥对 
  - 进入ec2服务,之后点击左面菜单的密钥对。
  
- 如下选择,之后点击生成
  
- AWS自动下载密钥- pem文件(my-cli-key.pem)
 这里将密钥文件保存到本地- ~/.ssh/my-cli-key.pem,之后会使用该密钥文件进行登录- ec2 server。
 
- 进入
3. 创建ec2 server
 
- 执行如下的AWS CLI脚本
 执行如下的AWS CLI脚本,进行ec2 server的创建。#!/bin/bash -e # You need to install the AWS Command Line Interface from http://aws.amazon.com/cli/ AMIID=$(aws ec2 describe-images --filters "Name=description, Values=Amazon Linux 2023 AMI 2023.5.20240916.0 x86_64 HVM kernel-6.1" --query "Images[0].ImageId" --output text) VPCID=$(aws ec2 describe-vpcs --filter "Name=isDefault, Values=true" --query "Vpcs[0].VpcId" --output text) SUBNETID=$(aws ec2 describe-subnets --filters "Name=vpc-id, Values=$VPCID" --query "Subnets[0].SubnetId" --output text) SGID=$(aws ec2 create-security-group --group-name mysecuritygroup --description "My security group" --vpc-id $VPCID --output text) aws ec2 authorize-security-group-ingress --group-id $SGID --protocol tcp --port 22 --cidr 0.0.0.0/0 INSTANCEID=$(aws ec2 run-instances --image-id $AMIID --key-name my-cli-key --instance-type t2.small --security-group-ids $SGID --subnet-id $SUBNETID --query "Instances[0].InstanceId" --output text) echo "waiting for $INSTANCEID ..." aws ec2 wait instance-running --instance-ids $INSTANCEID PUBLICNAME=$(aws ec2 describe-instances --instance-ids $INSTANCEID --query "Reservations[0].Instances[0].PublicDnsName" --output text) echo "$INSTANCEID is accepting SSH connections under $PUBLICNAME" echo "ssh -i my-cli-key.pem ec2-user@$PUBLICNAME" read -p "Press [Enter] key to terminate $INSTANCEID ..." aws ec2 terminate-instances --instance-ids $INSTANCEID echo "terminating $INSTANCEID ..." aws ec2 wait instance-terminated --instance-ids $INSTANCEID aws ec2 delete-security-group --group-id $SGID echo "done."
- 创建的AWS的结构图
 在默认的vpc的默认subnet之中创建security group,之后创建ec2 server
 注意,这里的默认vpc必须能够有个internet gateway,并且能自动分配public ip address。
  
- 查看AWS CLI脚本的执行结果-  可以看到, security group已经创建,并且已经启动了一个ec2 server。
  
-  查看 AWS Console
  
 
-  
- 使用私钥文件来访问ec2 serverssh -i my-cli-key.pem ec2-user@ec2-13-114-248-64.ap-northeast-1.compute.amazonaws.com- 使用git bash登录进去ec2 server。
  
 
- 使用
- 练习完毕之后停止ec2 server- 一定要停止ec2 server
 注意,重要的事情说3遍,一定要注意清理练习后的环境,否则会发生费用,是美元!!
 
- 一定要停止
4. 使用drawio(vscode插件)进行AWS的画图
 
- 对于AWS的各种service组成的构成图,可以采用drawio。采用vscode的drawio插件。
  
- 做成一个aws.drawio,之后采用vscode打开。
  
- 打开More Shapes,之后将AWS 19选项
  
- 之后使用drawio画出AWS的构成图
  



















