云计算之路-出海记:命令行下的 AWS
俗话说“三百六十行,行行出状元”,自从有了电脑之后,三百六十行又多了一行 —— 命令行。GUI 的诞生开创了繁荣的 PC “窗口”(windows)时代,互联网的诞生给 GUI 家族增添新成员 Web UI,移动互相网的诞生又帮 GUI 家族生下了二胎 Mobile UI,但用情专一的程序员念念不忘的依然是命令行,于是这一行出了个网红状元 —— Linux。
程序员的执念,成为任何一个技术平台厂商都不敢忽略的牵连,于是 CLI 成为技术平台或者底层技术产品的标配,各大云厂商都推出了自己的 CLI,就连靠 GUI 打天下的微软后来也不得不为 .NET 推出了 CLI —— dotnet。
一番废话之后,今天我们来体验一下云计算厂商的代表 Amazon Web Services (AWS) 的命令行 AWS CLI。
The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services.
首先准备好发号施令的指挥台,我们这里用的是一台阿里云 ubuntu 云服务器。
接着在指挥台上安装指挥棒 AWS CLI
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
安装好之后看一下版本号
$ aws --version
aws-cli/2.0.62 Python/3.7.3 Linux/4.15.0-42-generic exe/x86_64.ubuntu.18
接下来配置 AWS CLI
配置之前先到AWS官网控制台拿到访问密钥(Access Key),在右上角用户名处点击“我的安全凭证” -> “访问密钥” -> “创建新的访问密钥”,得到“访问密钥ID(Access Key ID)”与“私有访问密钥(Secret Access Key)”。
执行 aws configure 命令进行配置:
aws configure
AWS Access Key ID [None]: *****
AWS Secret Access Key [None]: ******
Default region name [None]: us-west-1
Default output format [None]:
(注:默认输出格式是json)
配置完成后就可以用 aws 命令操作 AWS 云资源。
为了更养眼地显示 AWS CLI 在控制台输出的 json 结果,我们先安装一下jq
apt install jq
先用一个很简单的获取当前用户信息的命令(aws iam get-user)体验一下:
接下来我们重点体验一下用 AWS CLI 启动与关闭 EC2 实例。
启动 EC2 实例的命令是 aws ec2 run-instances
,为了运行这个命令,我们需要先准备它需要的4个食材:image-id, key-name, security-group-ids, subnet-id。
第1个食材 image-id 就是 Amazon 系统映像 (AMI) ID,这里我们选择支持免费套餐(free tier)的 ubuntu 20.04 镜像,但目前 aws ec2 describe-images
命令不支持根据免费套餐筛选镜像,只能通过 AWS 官网控制台查询到,对应的 image-id 是 ami-00831fc7c1e3ddc60。
Ubuntu Server 20.04 LTS (HVM), SSD Volume Type - ami-00831fc7c1e3ddc60 (64 位 (x86)) / ami-017b2c64d333ddbf6 (64 位 ARM)
第2个食材是 key-name(密钥对名称),可以通过 aws ec2 describe-key-pairs
命令拿到,key-name 是 cnblogs。
第3个食材是 security-group-ids(安全组ID),可以通过 aws ec2 describe-security-groups
命令拿到,这里选择第一个只开放了22端口的安全组,GroupId 是 sg-08222bcdeaaaf100f。
第4个食材是 subnet-id(VPC子网ID),可以通过 aws ec2 describe-subnets
命令拿到,这里选择第一个子网,subnet-id 是 subnet-01d11e5b。
4个食材都准备好了,准备下锅,炒个小份(instance-type 选择 t2.micro,免费套餐中的实例类型)
一起下锅爆炒啦
aws ec2 run-instances \
--image-id ami-017b2c64d333ddbf60 \
--count 1 \
--instance-type t2.micro \
--key-name cnblogs \
--security-group-ids sg-08222bcdeaaaf100f \
--subnet-id subnet-01d11e5b
瞬间就炒好了(秒启的感觉),实例ID是 i-0499ec0c6d43d6d9d
用 aws ec2 describe-instance-status
命令确认服务器是否正常启动:
处于 running 状态,启动成功。
去 AWS 官网 EC2 控制台进一步确认:
的确启动成功!
最后用2行命令关闭(stop)并释放(terminate)刚刚启动的服务器,收官这次 AWS 命令行体验之旅。
aws ec2 stop-instances --instance-id i-0499ec0c6d43d6d9d
aws ec2 terminate-instances --i-0499ec0c6d43d6d9d
云计算之路-出海记:命令行下的 AWS的更多相关文章
- 云计算之路-出海记:蹭一张 aws 船票
出海记开篇之后,在 aws 上搭建博客园海外站的出海计划今天开始迈出第一步 -- 注册一个 aws 海外区域账号. aws 现在针对新注册用户提供12个月免费套餐(正在园子里推广并提供了专属注册通道) ...
- 云计算之路-出海记:整一台 aws 免费云服务器
上次蹭到一张船票,登上了 aws 这艘巨轮,今天要在船上的免费餐厅吃一顿免费晚餐 -- 整一台 aws 免费套餐中的 EC2 服务器体验一下. 进入 EC2 控制台,点击"启动实例" ...
- 云计算之路-出海记:建一个免费仓库 Amazon RDS for SQL Server
上周由于园子后院起火,不得不调兵回去救火,出海记暂时停更,这周继续更新,"出海记"记录的是我们在 AWS 上建设博客园海外站的历程. 在这一记中记录的是我们基于 AWS 免费套餐( ...
- 云计算之路-出海记-小目标:Hello World from .NET 5.0 on AWS
品尝过船上的免费晚餐,眺望着 aws 上搭建博客园海外站的宏伟目标,琢磨着眼前可以实现的小目标,不由自主地在屏幕上敲出了 -- "Hello World!",就从这个最简单朴实的小 ...
- Linux系统——28个命令行下的工具
Unix/Linux下的28个命令行下的工具 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不 ...
- 详解Linux命令行下常用svn命令
1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...
- MySQL命令行下执行.sql脚本详解
本文主要介绍一个在MySQL命令行下执行脚本文件的例子,通过这个例子让我们来了解一下在命令行下MySQL是怎样执行脚本的吧.现在我们开始介绍这一过程. 1.首先编写sql脚本,保存为的:book.sq ...
- 在linux命令行下执行php 程序
如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...
- 命令行下Git的使用
命令行下Git的使用 写在前边的话 以自己即将进行的毕设项目为例,进行Git使用的简易说明.不过由于校园网络的限制,故使用GitOSC. 快速开始 本次git使用位于自己的个人PC上,所以将个人的Gi ...
随机推荐
- tomcat:tomcat安装(在一台电脑上安装两个tomcat)
1.安装前的说明 (1)在安装第二个tomcat之前,我们要知道安装一台tomcat的时候需要在电脑上添加两个系统变量 然后在path中配置: (2)这个时候我们就要思考了,当安装第二台服务器的时候首 ...
- day45 Pyhton 数据库Mysql 02
一.前期回顾 数据库 mysql的安装 配置环境 为什么要用数据库? 稳定性 一致性 并发 存取数据效率高 数据库的分类 关系型数据库 mysql oracle sqlserver 非关系型数据库 r ...
- 初识 MongoDB 和 .NET Core 入门
昨天搭建完毕 MongoDB 集群 后,开始计划了解 MongoDB ,并引入使用场景,这里介绍一下学习过程中的一些笔记,帮助读者快速了解 MongoDB 并使用 C# 对其进行编码. 浅入 Mong ...
- (在模仿中精进数据可视化03)OD数据的特殊可视化方式
本文完整代码已上传至我的Github仓库https://github.com/CNFeffery/FefferyViz 1 简介 OD数据是交通.城市规划以及GIS等领域常见的一类数据,特点是每一条数 ...
- gin框架使用orm操作数据库(转)
简介:orm俗称关系对象模型,用来映射数据库SQL和对象的工具 ,相当于mongodb里面的mongoose库,Java里面的mybatis ibatis Golang GORM使用 https: ...
- is, ==, id 用法、代码块和缓存机制
id(): 获取对象的内存地址:print(id(i)) == : 比较两边的值是否相同 is : 判断内存地址是否相同 id相同,值一定相同 值相同,id不一定相同 代码块: Python是由代码块 ...
- mac 搭建 Robot Framework
前提介绍,我的mac上python2和python3是都要有的,然后大家可以看看我其他的文章,这些文章虽然很多都是连接,是别人的博客或者资料,但都是自己试过没有问题的,只是比较懒然后就没有自己写. r ...
- VS2010下python3的配置
最近突然又想学python,但用惯了vs2010后,十分希望能在vs2010中编译python的程序,于是,秉承着不作到死就不死心的原则就开始了我的配置之旅.但事实上并不难哦?.... 1.首先上场的 ...
- Spring In Action 5th中的一些错误
引言 最近开始学习Spring,了解到<Spring实战>已经出到第五版了,遂打算跟着<Spring实战(第五版)>来入门Spring,没想到这书一点也不严谨,才看到第三章就发 ...
- [Vue音乐项目] 第一节 环境搭建
1.Node安装 登录官网,下载最新版本并安装: 在我的电脑内,执行以下操作:右键->属性->高级->环境变量->系统变量->path 查看是否有node的安装路径,没有 ...