雲計算之路-出海記:命令行下的 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM