当前位置: 首页 > news >正文

aws(学习笔记第一课) AWS CLI,创建ec2 server以及drawio进行aws画图

aws(学习笔记第一课)

  • 使用AWS CLI

学习内容:

  • 使用AWS CLI
  • 配置密钥对
  • 创建ec2 server
  • 使用drawio(vscode插件)进行AWS的画图

1. 使用AWS CLI

  1. 注册AWS账号
    AWS是通用的云计算平台,可以提供ec2vpcSNS以及cloud watchRDS等各种各样的云计算组件,使得用户可以专注于业务层次的开发,方便扩展。
    AWS官方网站
    AWS官方文档
    在这里插入图片描述
    注册账号相当简单:
    • 首先需要一个国际信用卡(这里需要去银行办理,之后邮寄)
      • 在这里插入图片描述

      • 第一年的费用是免费的,但是也有一些service是付费的,注意在练习之后马上删除。

      • 每次练习之后就立即删除的话,几乎不会花费费用。如果万一使用了过多的费用,也要立即和AWS进行沟通。

    • 之后就是注册账号,正常进行注册
    • 注册之后就会产生一个根用户,类似于linuxroot账户
  2. 创建AWS用户
    可以使用上面的根用户,但是非常不建议这么做,因此创建一个新用户。
    • 使用根用户登录AWS 在这里插入图片描述
    • 点击IAM服务,创建新用户在这里插入图片描述
    • 指定用户名,这里指定mycli在这里插入图片描述
    • 配置权限
      直接附加策略到mycli用户,这里可以看出策略分为AWS托管客户托管
      AWS托管AWS内置的策略,客户托管是用户自己创建的策略。这里选择AWS托管AdministratorAccess
      在这里插入图片描述
    • 创建好了用户
      在这里插入图片描述
  3. 创建访问密钥
    这里的访问密钥代表了该用户,所以一定要注意隐私安全,不要公开给其他人。
    在这里插入图片描述
    • 选择命令行(CLI)
      选择之后继续下一步
      在这里插入图片描述
    • 设置标签。在这里插入图片描述
    • 最后完成密钥的生成
      注意,这里的密钥要在之后的AWS CLI中配置使用,所以自己要记住。改密钥只能显示一次,所以一定要记住 在这里插入图片描述
  4. 安装AWS CLI
    这里虽然是windows系统安装,但是采用git bash + python进行安装 AWS CLI是基于python的
    • 安装python 在这里插入图片描述
    • 安装AWS CLI
      执行pip install awscli
      在这里插入图片描述
    • 检查AWS CLI的版本
      在这里插入图片描述
  5. 配置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在这里插入图片描述

2. 创建公私钥密钥对

  1. 创建自己的密钥对
    • 进入ec2服务,之后点击左面菜单的密钥对
      在这里插入图片描述
    • 如下选择,之后点击生成
      在这里插入图片描述
    • AWS自动下载密钥pem文件(my-cli-key.pem)
      这里将密钥文件保存到本地~/.ssh/my-cli-key.pem,之后会使用该密钥文件进行登录ec2 server

3. 创建ec2 server

  1. 执行如下的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."
    
  2. 创建的AWS的结构图
    在默认的vpc的默认subnet之中创建security group,之后创建ec2 server
    注意,这里的默认vpc必须能够有个internet gateway,并且能自动分配public ip address
    在这里插入图片描述
  3. 查看AWS CLI脚本的执行结果
    • 可以看到,security group已经创建,并且已经启动了一个ec2 server
      在这里插入图片描述

    • 查看AWS Console
      在这里插入图片描述

  4. 使用私钥文件来访问ec2 server
    	ssh -i my-cli-key.pem ec2-user@ec2-13-114-248-64.ap-northeast-1.compute.amazonaws.com
    
    • 使用git bash登录进去ec2 server
      在这里插入图片描述
  5. 练习完毕之后停止ec2 server
    • 一定要停止ec2 server
      注意,重要的事情说3遍,一定要注意清理练习后的环境,否则会发生费用,是美元!!

4. 使用drawio(vscode插件)进行AWS的画图

  1. 对于AWS的各种service组成的构成图,可以采用drawio。采用vscodedrawio插件。
    在这里插入图片描述
  2. 做成一个aws.drawio,之后采用vscode打开。
    在这里插入图片描述
  3. 打开More Shapes,之后将AWS 19选项
    在这里插入图片描述
  4. 之后使用drawio画出AWS的构成图
    在这里插入图片描述
http://www.lryc.cn/news/453998.html

相关文章:

  • 【Python】Eventlet 异步网络库简介
  • 【JNI】数组的基本使用
  • React跨平台
  • 如何在 SQL 中更新表中的记录?
  • 宠物饮水机的水箱低液位提醒如何实现?
  • EXCEL_光标百分比
  • (一)Web 网站服务之 Apache
  • 英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)
  • AI学习指南深度学习篇-学习率衰减的实现机制
  • My_qsort() -自己写的 qsort 函数
  • 《向量数据库指南》——Mlivus Cloud打造生产级AI应用利器
  • Electron 进程通信
  • Kubernetes资源详解
  • C++11之线程
  • 界星空科技漆包线行业称重系统
  • RabbitMQ的高级特性-事务
  • Qt Linguist手册
  • 【简介Sentinel-1】
  • 第 17 场小白入门赛蓝桥杯
  • @antv/x6 导出图片下载,或者导出图片为base64由后端去处理。
  • 从零到精通:AI大模型的全方位学习路径解析,非常详细收藏我这一篇就够了
  • PowerShell脚本在自动化Windows开发工作流程中的应用
  • 【力扣 | SQL题 | 每日四题】力扣1783,1757,1747,1623,1468,1661
  • 《深入探究 C++中的函数模板特化:开启编程新境界》
  • RTEMS面试题汇总及参考答案
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
  • BLOOM 模型的核心原理、局限与未来发展方向解析
  • Kubernetes 深度洞察:重新认识 Docker 容器的奇妙世界
  • 柔性作业车间调度(FJSP)
  • 速盾:游戏用CDN可以吗?