利用亞馬遜AWS搭建個(gè)人服務(wù)器
注冊
注冊地址: https://portal.aws.amazon.com/billing/signup#/start
注冊過程比較麻煩,需要用信用卡,中間的信息填寫的內(nèi)容也比較多,并且目前必須注冊國際賬號(hào)才能個(gè)人使用EC2,亞馬遜的還專門打電話告知了我之后又發(fā)送了郵件告訴了我具體的注冊方式。注冊的密碼必須是大小寫字母加數(shù)字!

登陸
登陸時(shí)可使用賬戶別名或者賬戶ID,所以注冊的信息記好,登陸時(shí)使用郵箱登陸或者用戶名登陸即可。

創(chuàng)建實(shí)例
1、登陸之后,在控制面板頁面左上角選擇“服務(wù)”,可以查看亞馬遜有哪些服務(wù)可以使用,因?yàn)槲沂褂玫氖荅C2,所以選擇第一個(gè)EC2就可以了。


2、選擇EC2后,會(huì)跳轉(zhuǎn)到EC2 Dashboard,左側(cè)會(huì)顯示和EC2相關(guān)的配置菜單,點(diǎn)擊實(shí)例,可以查看當(dāng)前創(chuàng)建好的實(shí)例,如果沒有則是空。


3、點(diǎn)擊“啟動(dòng)實(shí)例”按鈕,會(huì)跳轉(zhuǎn)到實(shí)例配置頁面:
步驟 1: 選擇一個(gè) Amazon 系統(tǒng)映像(AMI)
在這里可以選擇實(shí)例的系統(tǒng),如果是免費(fèi)用戶可以勾選“僅免費(fèi)套餐”,然后選擇實(shí)例系統(tǒng),主要有Linux系統(tǒng)和Windows系統(tǒng),包括Amazon Linux 2 AMI、SUSE Linux Enterprise Server 15、Red Hat Enterprise Linux 7.6、Ubuntu Server 18.04 LTS、Microsoft Windows Server 2016 Base等等,根據(jù)自己的喜好選擇系統(tǒng),系統(tǒng)也支持X86和ARM可供選擇,點(diǎn)擊選擇可進(jìn)入下一步。
步驟 2: 選擇一個(gè)實(shí)例類型
在這里選擇實(shí)例的配置,因?yàn)槭敲赓M(fèi)賬戶,所以只能選擇免費(fèi)的實(shí)例,免費(fèi)的套餐會(huì)有提示,配置是1個(gè)CPU,1G內(nèi)存,點(diǎn)擊下一步“配置實(shí)例詳細(xì)信息”。

步驟 3: 配置實(shí)例詳細(xì)信息
在這里可以配置創(chuàng)建時(shí)實(shí)例的一些信息,可以自己進(jìn)行配置,也可以直接默認(rèn),點(diǎn)擊下一步“添加新存儲(chǔ)”。

步驟 4: 添加存儲(chǔ)
該項(xiàng)中可以設(shè)置硬盤存儲(chǔ)分區(qū),默認(rèn)只配置好了根目錄,卷類型可以選擇,也支持添加新卷,也可以選擇默認(rèn)。配置好之后點(diǎn)擊下一步“添加標(biāo)簽”。

步驟 5: 添加標(biāo)簽
該項(xiàng)中可以默認(rèn)或者自定義標(biāo)簽,標(biāo)簽由區(qū)分大小寫的鍵值對組成。例如,您可以定義一個(gè)鍵為“Name”且值為“Webserver”的標(biāo)簽??蓪?biāo)簽副本應(yīng)用于卷和/或?qū)嵗?。也可以不進(jìn)行配置,直接進(jìn)行下一步“配置安全組”。
步驟 6: 配置安全組
該項(xiàng)中,用于配置實(shí)例中安全組的信息,針對實(shí)例可以將實(shí)例加入已有的安全組或者是選擇新建安全組, 安全組名稱與描述可自定義,此處默認(rèn)開啟的是SSH類型,端口號(hào)是22,用于使用ssh方式登陸服務(wù)器。因?yàn)楹竺鎸⒁f到需要配置nginx,所以此處可以添加兩個(gè)規(guī)則用于nginx訪問:
點(diǎn)擊添加http規(guī)則:類型選擇HTTP,端口范圍是80,可以是TCP,來源可以改為“任意位置”,描述可以自定義填寫。
點(diǎn)擊添加https規(guī)則:類型選擇HTTPS,端口范圍是443,可以是TCP,來源可以改為“任意位置”,描述可以自定義填寫。
點(diǎn)擊下一步“審核和啟動(dòng)”。

步驟 7: 核查實(shí)例啟動(dòng)
該項(xiàng)中會(huì)顯示之前幾個(gè)步驟中配置的相關(guān)信息,確認(rèn)無誤后點(diǎn)擊啟動(dòng),會(huì)填出需要選擇現(xiàn)有密鑰對或著新密鑰對,因?yàn)槭切陆ǖ膶?shí)例在這里是沒有密鑰對的,所以選擇創(chuàng)建新密鑰對,填寫密鑰對名稱, 填寫之后一定要下載密鑰對,因?yàn)檫@個(gè)后面需要用到,并且這是沒有下載的話后面就無法再獲取到這個(gè)密鑰對文件了,彈出框也會(huì)提示“創(chuàng)建文件后,您將無法再次下載該文件”。具體創(chuàng)建密鑰對的其他方式后面再說。填寫密鑰對以后,點(diǎn)擊“啟動(dòng)實(shí)例”按鈕,會(huì)跳轉(zhuǎn)到啟動(dòng)狀態(tài)頁面,點(diǎn)擊右下角“查看實(shí)例”到EC2 dashboard查看創(chuàng)建的實(shí)例。



至此,實(shí)例已經(jīng)創(chuàng)建完畢,后面就是做相關(guān)的配置。
配置實(shí)例
1、在實(shí)例一欄中可以看見已經(jīng)創(chuàng)建的實(shí)例,列表會(huì)顯示實(shí)例ID、IPV4、實(shí)例狀態(tài)、密鑰名稱等,也可以點(diǎn)擊右上角小齒輪按鈕,配置需要顯示的列。

2、配置安全組
在創(chuàng)建實(shí)例的時(shí)候可能會(huì)忘記配置HTTP會(huì)其他相關(guān)的規(guī)則,則可以在這里重新進(jìn)行配置
勾選要配置的安全組,在上面點(diǎn)擊“操作”按鈕,或者在要配置的安全組那一行右鍵都行,然后可以進(jìn)行刪除安全組、添加入站或者出站規(guī)則等,這里我們添加入站規(guī)則,即與上面的操作一樣,如果不開啟80或443端口的話,后面配置好nginx外部是無法訪問的:
點(diǎn)擊添加http規(guī)則:類型選擇HTTP,端口范圍是80,可以是TCP,來源可以改為“任意位置”,描述可以自定義填寫。
點(diǎn)擊添加https規(guī)則:類型選擇HTTPS,端口范圍是443,可以是TCP,來源可以改為“任意位置”,描述可以自定義填寫。
3、配置彈性IP
在實(shí)例中會(huì)有公有IP和私有IP,彈性公網(wǎng)IP是一種NAT IP。它實(shí)際位于云服務(wù)提供商的公網(wǎng)網(wǎng)關(guān)上,通過NAT方式映射到了被綁定的云主機(jī)實(shí)例的私網(wǎng)網(wǎng)卡上。因此,綁定了彈性公網(wǎng)IP的云主機(jī)可以直接使用這個(gè)IP進(jìn)行公網(wǎng)通信,但是在它的私網(wǎng)網(wǎng)卡上并不能看到這個(gè)IP地址。
點(diǎn)擊“分配新地址”按鈕,會(huì)跳到分配新地址頁面,然后選擇IPV4地址池,可以是自己配置,也可以選擇亞馬遜的自動(dòng)分配的,這里選擇亞馬遜池,點(diǎn)擊“分配”按鈕,點(diǎn)擊后就會(huì)顯示分配好的彈性IP。
返回到彈性IP列表,選擇剛配置好的彈性IP,此時(shí)是沒有綁定實(shí)例和私有IP的,選中該列,點(diǎn)擊上面的“操作”按鈕,選擇“關(guān)聯(lián)地址”,跳轉(zhuǎn)到關(guān)聯(lián)地址頁面,選擇實(shí)例以及私有IP,實(shí)例就是剛才創(chuàng)建的實(shí)例,私有IP的查看也是在實(shí)例列表中,亞馬遜也有提示:如果你將一個(gè)彈性 IP 地址與您的實(shí)例相關(guān)聯(lián),您目前的公有 IP 地址將被釋放,選擇好后點(diǎn)擊關(guān)聯(lián),這樣后面使用ssh連接實(shí)例時(shí),就可以使用配置好的彈性IP地址。

4、密鑰對配置
剛才說到配置實(shí)例時(shí)需要選擇密鑰對,這里可以配置新密鑰對,用于后續(xù)創(chuàng)建實(shí)例時(shí)使用,也可以導(dǎo)入密鑰對。
點(diǎn)擊左側(cè)“密鑰對”選項(xiàng),跳轉(zhuǎn)到密鑰對列表,點(diǎn)擊左上角“創(chuàng)建密鑰對”按鈕,輸入密鑰對名稱,點(diǎn)擊”創(chuàng)建“,之后密鑰對會(huì)自動(dòng)下載到本地,用于之后登陸時(shí)使用。
需要?jiǎng)h除密鑰對的話直接右鍵刪除或者勾選之后點(diǎn)擊刪除即可。
至此,實(shí)例的一些常用基本配置就已經(jīng)完成了,接下來在本地對已經(jīng)啟動(dòng)的實(shí)例進(jìn)行連接。
連接
本地連接實(shí)例時(shí)比較麻煩,在實(shí)例里表中,勾選想要連接的實(shí)例,會(huì)彈出連接實(shí)例的方式:一種是使用SSH客戶端本地連接,一種是直接從瀏覽器連接但是需要安裝Java,這里使用SSH客戶端本地進(jìn)行連接。
官方給的建議是使用PuTTY進(jìn)行連接,但是Mac安裝PuTTY特別麻煩,并且需要安裝一些其他的東西,過于繁瑣,這里我使用了SecureCRT進(jìn)行連接,下載地址:https://www.vandyke.com/products/securecrt/
同時(shí)官方文檔也給出其他連接方式,但是比較惡心的是,文檔內(nèi)容特別多,在這里我們只看使用SSH方式連接AWS EC2 Linux版本實(shí)例,這是官方給的方式,下面我寫出來的是已經(jīng)填過的坑,連接實(shí)例是有先決條件的,就是以下七條:
1、安裝SSH客戶端
2、安裝 AWS CLI 工具
3、獲得實(shí)例的 ID
4、獲得實(shí)例的公有 DNS 名稱
5、查找私有密鑰并驗(yàn)證權(quán)限
6、獲取用于啟動(dòng)實(shí)例的 AMI 的默認(rèn)用戶名稱
7、允許從您的 IP 地址到您的實(shí)例的入站 SSH 流量
1、安裝SSH客戶端
一般Mac有自帶的終端就可以使用,但是因?yàn)槭状芜B接的使用是使用密鑰文件進(jìn)行連接的,所以終端工具不是很方便了,剛才推薦的secureCRT,可以使用密鑰對文件轉(zhuǎn)換后的密進(jìn)行服務(wù)器登陸,需要將下載下來的密鑰對文件即后綴名為pem的文件轉(zhuǎn)為密鑰即可。
安裝secureCRT,Mac傻瓜式安裝;
轉(zhuǎn)換密鑰對文件為密鑰串:
使用命令:ssh-keygen -y -f XXX.pem > XXX.pem.pub轉(zhuǎn)換為密鑰串文件;
使用命令:cat XXX.pem.pub查看密鑰串;
配置secureCRT
點(diǎn)擊 + 新建,會(huì)彈出對話框,直接continue;

port和firewall默認(rèn),填寫hostname,即上面說到的彈性IP,填寫username,即用于啟動(dòng)實(shí)例的 AMI 的默認(rèn)用戶名稱,如果是ubuntu的系統(tǒng),則username就是ubuntu,其他的后面會(huì)說到;
點(diǎn)擊continue,sessionname和description隨便填,就是到時(shí)候顯示的名稱而已;點(diǎn)擊done
列表會(huì)顯示創(chuàng)建好的項(xiàng),顯示的名字就是剛才sessionname,右鍵,點(diǎn)擊Properties;
在彈出框中選擇SSH2,在右面的Authentication區(qū)域,如果Properties不可點(diǎn)擊,則先點(diǎn)擊一下左邊的列表區(qū)域中的Public Key,再點(diǎn)擊Properties;

在彈出框中,上方勾選“use session public key setting”,然后在下面的Use identity or certificate file中填寫剛才使用命令生成的密鑰串的那堆字符

點(diǎn)擊ok關(guān)閉對話框即可。
至此,secureCRT配置完畢,即SSH客戶端配置完畢;使用Windows的朋友可以使用Xshell連接?,F(xiàn)在還無法連接AWS,還需要接下來的幾步。
2、安裝 AWS CLI 工具
首先是官方文檔:https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-install.html,然后填坑。官方推薦Mac使用pip安裝,并且又有一堆先決條件,但是問題又有一堆,需要的東西比較復(fù)雜,下面的是比較簡單快捷的方式:
安裝Python,Mac有自帶的Python不需要再次進(jìn)行安裝,版本需要在2.6.5以上,Windows用戶請自行安裝;
安裝 AWS CLI
下載 AWS CLI 捆綁安裝程序,在終端執(zhí)行命令:curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
解壓縮程序包(必須安裝了unzip):unzip awscli-bundle.zip
運(yùn)行安裝程序: sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
查看是否安裝成功:aws --version出現(xiàn)版本號(hào)則表示安裝成功
這種方式是Mac下最簡單的了,如果使用pip安裝,則aws --version命令會(huì)提示無效,則需要配置環(huán)境變量,主要是配置python的環(huán)境變量,比較麻煩,所以上面的方式是比較簡單的。
配置 AWS CLI
配置AWS CLI使用 aws configure命令比較快捷
獲取 IAM 用戶的訪問密鑰 ID 和秘密訪問密鑰。
訪問密鑰包含訪問密鑰 ID 和秘密訪問密鑰,用于簽署對 AWS 發(fā)出的編程請求。如果沒有訪問密鑰,您可以使用AWS 管理控制臺(tái)進(jìn)行創(chuàng)建。建議您使用 AWS 賬戶根用戶 訪問秘鑰而不是使用 IAM 賬戶根用戶訪問秘鑰。IAM 讓您可以安全地控制對您的 AWS 賬戶中 AWS 服務(wù)和資源的訪問。
僅當(dāng)創(chuàng)建訪問密鑰時(shí),您才能查看或下載秘密訪問密鑰。以后您無法恢復(fù)它們。不過,您隨時(shí)可以創(chuàng)建新的訪問密鑰。您還必須擁有執(zhí)行所需 IAM 操作的權(quán)限。有關(guān)更多信息,請參閱 IAM 用戶指南 中的訪問 IAM 資源所需的權(quán)限。
1、打開 IAM 控制臺(tái)。
2、在控制臺(tái)的導(dǎo)航窗格中,選擇 Users。
3、選擇您的 IAM 用戶名稱(而不是復(fù)選框)。
4、選擇安全證書選項(xiàng)卡,然后選擇創(chuàng)建訪問秘鑰。
5、要查看新訪問秘鑰,請選擇顯示。
在終端執(zhí)行:aws configure會(huì)出現(xiàn)下面的內(nèi)容,根據(jù)提示進(jìn)行填寫:
1、AWS Access Key ID [None]: 訪問密鑰 ID,在實(shí)例列表查看
例: AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
2、AWS Secret Access Key [None]:私有訪問密鑰
例:AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
3、Default region name [None]:默認(rèn)登陸名稱,ubuntu系統(tǒng)為ubuntu
例:Default region name [None]: us-west-2
4、Default output format [None]:默認(rèn)輸出文件類型,json或text
例:Default output format [None]: json
至此,AWS CLI基本配置完成,如果要進(jìn)行更多配置,可查看官方文檔
3、獲得實(shí)例的 ID
在EC2 dashboard,實(shí)例列表中查看實(shí)例ID;
4、獲得實(shí)例的公有 DNS 名稱
在EC2 dashboard,實(shí)例列表中查看實(shí)例的公有 DNS 名稱,列名為“公有DNS(IPv4)”;
5、查找私有密鑰并驗(yàn)證權(quán)限
這步就是使用后綴名為pem的文件進(jìn)行登陸系統(tǒng),前面已經(jīng)配置了secureCRT就不需要這步了;
如果還需要的話,則使用下面的方式進(jìn)行:
您的密鑰必須不公開可見,SSH 才能工作。如果需要,請使用此命令:
chmod 400 xxxx.pem
通過其 公有 DNS 連接到您的實(shí)例,如實(shí)例為:ec2-13-59-115-229.us-east-2.compute.amazonaws.com
則使用命令:ssh -i xxxx.pem 服務(wù)器用戶名@ec2-13-59-115-229.us-east-2.compute.amazonaws.com
6、獲取用于啟動(dòng)實(shí)例的 AMI 的默認(rèn)用戶名稱
對于 Amazon Linux 2 或 Amazon Linux AMI,用戶名稱是 ec2-user。
對于 Centos AMI,用戶名稱是 centos。
對于 Debian AMI,用戶名稱是 admin 或 root。
對于 Fedora AMI,用戶名為 ec2-user 或 fedora。
對于 RHEL AMI,用戶名稱是 ec2-user 或 root。
對于 SUSE AMI,用戶名稱是 ec2-user 或 root。
對于 Ubuntu AMI,用戶名稱是 ubuntu。
另外,如果 ec2-user 和 root 無法使用,請與 AMI 供應(yīng)商核實(shí)。
7、允許從您的 IP 地址到您的實(shí)例的入站 SSH 流量
該步驟即配置安全組,開放22端口用于SSH連接,80或443用于訪問Web程序;
8、使用secureCRT連接實(shí)例服務(wù)器
在secureCRT中直接點(diǎn)擊要登陸的服務(wù)器,如下則表示登陸成功:

至此,實(shí)例已經(jīng)全部配置完成,并成功連接。
安裝Nginx
因?yàn)槭褂玫氖莡buntu,則可以直接使用命令進(jìn)行安裝:sudo apt-get install nginx
安裝完成后,啟動(dòng)nginx,執(zhí)行命令:sudo service nginx start
檢測nginx在服務(wù)器是否安裝成功,執(zhí)行命令:curl http://localhost
如果出現(xiàn):如下圖則表示安裝成功。

參考:http://www.itdecent.cn/p/a43c3e0f0127
訪問
直接在PC瀏覽器地址欄輸入彈性IP地址,如果出現(xiàn)下圖則表示nginx安裝成,并且服務(wù)器實(shí)例已經(jīng)可用,后續(xù)就可以在服務(wù)器部署相關(guān)程序。

其他
刪除實(shí)例:在實(shí)例列表要?jiǎng)h除的實(shí)例上右鍵-實(shí)例狀態(tài)-終止即可,終止即代表刪除實(shí)例,但是不會(huì)馬上刪除,一般十分鐘左右會(huì)自動(dòng)銷毀。

設(shè)置服務(wù)器root密碼:
使用命令:sudo passwd root
會(huì)提示需要輸入兩次密碼,輸入即可
設(shè)置服務(wù)器用戶密碼:
設(shè)置完密碼后,后續(xù)登陸可以直接使用終端或者其他SSH客戶等登錄,使用彈性IP地址、用戶名、密碼即可
切換到root用戶,使用命令passwd 你的用戶名
輸入兩次密碼即可
總結(jié)
總的來說,配置的流程相對比較繁瑣,尤其是配置AWS CLI里面內(nèi)容比較多,官方文檔給的也比較多