利用亞馬遜AWS搭建個人伺服器

註冊

註冊地址: portal.aws.amazon.com/b

註冊過程比較麻煩,需要用信用卡,中間的信息填寫的內容也比較多,並且目前必須註冊國際賬號才能個人使用EC2,亞馬遜的還專門打電話告知了我之後又發送了郵件告訴了我具體的註冊方式。註冊的密碼必須是大小寫字母加數字!

登陸

登陸地址: signin.aws.amazon.com/s

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

創建實例

1、登陸之後,在控制面板頁面左上角選擇「服務」,可以查看亞馬遜有哪些服務可以使用,因為我使用的是EC2,所以選擇第一個EC2就可以了。

2、選擇EC2後,會跳轉到EC2 Dashboard,左側會顯示和EC2相關的配置菜單,點擊實例,可以查看當前創建好的實例,如果沒有則是空。

3、點擊「啟動實例」按鈕,會跳轉到實例配置頁面:

  • 步驟 1: 選擇一個 Amazon 系統映像(AMI)

在這裡可以選擇實例的系統,如果是免費用戶可以勾選「僅免費套餐」,然後選擇實例系統,主要有Linux系統和Windows系統,包括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等等,根據自己的喜好選擇系統,系統也支持X86和ARM可供選擇,點擊選擇可進入下一步。

  • 步驟 2: 選擇一個實例類型 在這裡選擇實例的配置,因為是免費賬戶,所以只能選擇免費的實例,免費的套餐會有提示,配置是1個CPU,1G內存,點擊下一步「配置實例詳細信息」。

  • 步驟 3: 配置實例詳細信息 在這裡可以配置創建時實例的一些信息,可以自己進行配置,也可以直接默認,點擊下一步「添加新存儲」。

  • 步驟 4: 添加存儲 該項中可以設置硬碟存儲分區,默認只配置好了根目錄,卷類型可以選擇,也支持添加新卷,也可以選擇默認。配置好之後點擊下一步「添加標籤」。

  • 步驟 5: 添加標籤 該項中可以默認或者自定義標籤,標籤由區分大小寫的鍵值對組成。例如,您可以定義一個鍵為「Name」且值為「Webserver」的標籤。可將標籤副本應用於卷和/或實例。也可以不進行配置,直接進行下一步「配置安全組」。
  • 步驟 6: 配置安全組 該項中,用於配置實例中安全組的信息,針對實例可以將實例加入已有的安全組或者是選擇新建安全組, 安全組名稱與描述可自定義,此處默認開啟的是SSH類型,埠號是22,用於使用ssh方式登陸伺服器。因為後面將要說到需要配置nginx,所以此處可以添加兩個規則用於nginx訪問:
    • 點擊添加http規則:類型選擇HTTP,埠範圍是80,可以是TCP,來源可以改為「任意位置」,描述可以自定義填寫。
    • 點擊添加https規則:類型選擇HTTPS,埠範圍是443,可以是TCP,來源可以改為「任意位置」,描述可以自定義填寫。

點擊下一步「審核和啟動」。

  • 步驟 7: 覈查實例啟動 該項中會顯示之前幾個步驟中配置的相關信息,確認無誤後點擊啟動,會填出需要選擇現有密鑰對或著新密鑰對,因為是新建的實例在這裡是沒有密鑰對的,所以選擇創建新密鑰對,填寫密鑰對名稱, 填寫之後一定要下載密鑰對,因為這個後面需要用到,並且這是沒有下載的話後面就無法再獲取到這個密鑰對文件了,彈出框也會提示「創建文件後,您將無法再次下載該文件」。具體創建密鑰對的其他方式後面再說。填寫密鑰對以後,點擊「啟動實例」按鈕,會跳轉到啟動狀態頁面,點擊右下角「查看實例」到EC2 dashboard查看創建的實例。

至此,實例已經創建完畢,後面就是做相關的配置。

配置實例

1、在實例一欄中可以看見已經創建的實例,列表會顯示實例ID、IPV4、實例狀態、密鑰名稱等,也可以點擊右上角小齒輪按鈕,配置需要顯示的列。

2、配置安全組

在創建實例的時候可能會忘記配置HTTP會其他相關的規則,則可以在這裡重新進行配置

  • 勾選要配置的安全組,在上面點擊「操作」按鈕,或者在要配置的安全組那一行右鍵都行,然後可以進行刪除安全組、添加入站或者出站規則等,這裡我們添加入站規則,即與上面的操作一樣,如果不開啟80或443埠的話,後面配置好nginx外部是無法訪問的:
    • 點擊添加http規則:類型選擇HTTP,埠範圍是80,可以是TCP,來源可以改為「任意位置」,描述可以自定義填寫。
    • 點擊添加https規則:類型選擇HTTPS,埠範圍是443,可以是TCP,來源可以改為「任意位置」,描述可以自定義填寫。

3、配置彈性IP

在實例中會有公有IP和私有IP,彈性公網IP是一種NAT IP。它實際位於雲服務提供商的公網網關上,通過NAT方式映射到了被綁定的雲主機實例的私網網卡上。因此,綁定了彈性公網IP的雲主機可以直接使用這個IP進行公網通信,但是在它的私網網卡上並不能看到這個IP地址。

  • 點擊「分配新地址」按鈕,會跳到分配新地址頁面,然後選擇IPV4地址池,可以是自己配置,也可以選擇亞馬遜的自動分配的,這裡選擇亞馬遜池,點擊「分配」按鈕,點擊後就會顯示分配好的彈性IP。
    • 返回到彈性IP列表,選擇剛配置好的彈性IP,此時是沒有綁定實例和私有IP的,選中該列,點擊上面的「操作」按鈕,選擇「關聯地址」,跳轉到關聯地址頁面,選擇實例以及私有IP,實例就是剛才創建的實例,私有IP的查看也是在實例列表中,亞馬遜也有提示:如果你將一個彈性 IP 地址與您的實例相關聯,您目前的公有 IP 地址將被釋放,選擇好後點擊關聯,這樣後面使用ssh連接實例時,就可以使用配置好的彈性IP地址。

4、密鑰對配置

剛才說到配置實例時需要選擇密鑰對,這裡可以配置新密鑰對,用於後續創建實例時使用,也可以導入密鑰對。

  • 點擊左側「密鑰對」選項,跳轉到密鑰對列表,點擊左上角「創建密鑰對」按鈕,輸入密鑰對名稱,點擊」創建「,之後密鑰對會自動下載到本地,用於之後登陸時使用。
  • 需要刪除密鑰對的話直接右鍵刪除或者勾選之後點擊刪除即可。

至此,實例的一些常用基本配置就已經完成了,接下來在本地對已經啟動的實例進行連接。

連接

本地連接實例時比較麻煩,在實例裏表中,勾選想要連接的實例,會彈出連接實例的方式:一種是使用SSH客戶端本地連接,一種是直接從瀏覽器連接但是需要安裝Java,這裡使用SSH客戶端本地進行連接。

官方給的建議是使用PuTTY進行連接,但是Mac安裝PuTTY特別麻煩,並且需要安裝一些其他的東西,過於繁瑣,這裡我使用了SecureCRT進行連接,下載地址:vandyke.com/products/se

同時官方文檔也給出其他連接方式,但是比較噁心的是,文檔內容特別多,在這裡我們只看使用SSH方式連接AWS EC2 Linux版本實例,這是官方給的方式,下面我寫出來的是已經填過的坑,連接實例是有先決條件的,就是以下七條:

  • 1、安裝SSH客戶端
  • 2、安裝 AWS CLI 工具
  • 3、獲得實例的 ID
  • 4、獲得實例的公有 DNS 名稱
  • 5、查找私有密鑰並驗證許可權
  • 6、獲取用於啟動實例的 AMI 的默認用戶名稱
  • 7、允許從您的 IP 地址到您的實例的入站 SSH 流量

1、安裝SSH客戶端

一般Mac有自帶的終端就可以使用,但是因為首次連接的使用是使用密鑰文件進行連接的,所以終端工具不是很方便了,剛才推薦的secureCRT,可以使用密鑰對文件轉換後的密進行伺服器登陸,需要將下載下來的密鑰對文件即後綴名為pem的文件轉為密鑰即可。

  • 安裝secureCRT,Mac傻瓜式安裝;
  • 轉換密鑰對文件為密鑰串:
    • 使用命令:ssh-keygen -y -f XXX.pem > XXX.pem.pub轉換為密鑰串文件;
    • 使用命令:cat XXX.pem.pub查看密鑰串;

  • 配置secureCRT
    • 點擊 + 新建,會彈出對話框,直接continue;

    • port和firewall默認,填寫hostname,即上面說到的彈性IP,填寫username,即用於啟動實例的 AMI 的默認用戶名稱,如果是ubuntu的系統,則username就是ubuntu,其他的後面會說到;
    • 點擊continue,sessionname和description隨便填,就是到時候顯示的名稱而已;點擊done
    • 列表會顯示創建好的項,顯示的名字就是剛才sessionname,右鍵,點擊Properties;
    • 在彈出框中選擇SSH2,在右面的Authentication區域,如果Properties不可點擊,則先點擊一下左邊的列表區域中的Public Key,再點擊Properties;

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

    • 點擊ok關閉對話框即可。 至此,secureCRT配置完畢,即SSH客戶端配置完畢;使用Windows的朋友可以使用Xshell連接。現在還無法連接AWS,還需要接下來的幾步。

2、安裝 AWS CLI 工具

首先是官方文檔:docs.aws.amazon.com/zh_,然後填坑。官方推薦Mac使用pip安裝,並且又有一堆先決條件,但是問題又有一堆,需要的東西比較複雜,下面的是比較簡單快捷的方式:

  • 安裝Python,Mac有自帶的Python不需要再次進行安裝,版本需要在2.6.5以上,Windows用戶請自行安裝;
  • 安裝 AWS CLI
    • 下載 AWS CLI 捆綁安裝程序,在終端執行命令:curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
    • 解壓縮程序包(必須安裝了unzip):unzip awscli-bundle.zip
    • 運行安裝程序: sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
    • 查看是否安裝成功:aws --version出現版本號則表示安裝成功

這種方式是Mac下最簡單的了,如果使用pip安裝,則aws --version命令會提示無效,則需要配置環境變數,主要是配置python的環境變數,比較麻煩,所以上面的方式是比較簡單的。

  • 配置 AWS CLI配置AWS CLI使用 aws configure命令比較快捷
    • 獲取 IAM 用戶的訪問密鑰 ID 和祕密訪問密鑰。

訪問密鑰包含訪問密鑰 ID 和祕密訪問密鑰,用於簽署對 AWS 發出的編程請求。如果沒有訪問密鑰,您可以使用AWS 管理控制檯進行創建。建議您使用 AWS 賬戶根用戶 訪問祕鑰而不是使用 IAM 賬戶根用戶訪問祕鑰。IAM 讓您可以安全地控制對您的 AWS 賬戶中 AWS 服務和資源的訪問。

僅當創建訪問密鑰時,您才能查看或下載祕密訪問密鑰。以後您無法恢復它們。不過,您隨時可以創建新的訪問密鑰。您還必須擁有執行所需 IAM 操作的許可權。有關更多信息,請參閱 IAM 用戶指南 中的訪問 IAM 資源所需的許可權。

1、打開 [IAM 控制檯](console.aws.amazon.com/)。 2、在控制檯的導航窗格中,選擇 Users。 3、選擇您的 IAM 用戶名稱(而不是複選框)。 4、選擇安全證書選項卡,然後選擇創建訪問祕鑰。 5、要查看新訪問祕鑰,請選擇顯示。
    • 在終端執行:aws configure會出現下面的內容,根據提示進行填寫:1、AWS Access Key ID [None]: 訪問密鑰 ID,在實例列表查看 例: 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]:默認登陸名稱,ubuntu系統為ubuntu 例:Default region name [None]: us-west-2 4、Default output format [None]:默認輸出文件類型,json或text 例:Default output format [None]: json

至此,AWS CLI基本配置完成,如果要進行更多配置,可查看官方文檔

3、獲得實例的 ID

在EC2 dashboard,實例列表中查看實例ID;

4、獲得實例的公有 DNS 名稱

在EC2 dashboard,實例列表中查看實例的公有 DNS 名稱,列名為「公有DNS(IPv4)」;

5、查找私有密鑰並驗證許可權

這步就是使用後綴名為pem的文件進行登陸系統,前面已經配置了secureCRT就不需要這步了;

如果還需要的話,則使用下面的方式進行:

您的密鑰必須不公開可見,SSH 才能工作。如果需要,請使用此命令:
chmod 400 xxxx.pem
通過其 公有 DNS 連接到您的實例,如實例為:ec2-13-59-115-229.us-east-2.compute.amazonaws.com
則使用命令:ssh -i xxxx.pem 伺服器用戶名@ec2-13-59-115-229.us-east-2.compute.amazonaws.com

6、獲取用於啟動實例的 AMI 的默認用戶名稱

  • 對於 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 供應商核實。

7、允許從您的 IP 地址到您的實例的入站 SSH 流量

該步驟即配置安全組,開放22埠用於SSH連接,80或443用於訪問Web程序;

8、使用secureCRT連接實例伺服器

在secureCRT中直接點擊要登陸的伺服器,如下則表示登陸成功:

至此,實例已經全部配置完成,並成功連接。

安裝Nginx

因為使用的是ubuntu,則可以直接使用命令進行安裝:sudo apt-get install nginx

安裝完成後,啟動nginx,執行命令:sudo service nginx start檢測nginx在伺服器是否安裝成功,執行命令:curl http://localhost如果出現:如下圖則表示安裝成功。

參考:jianshu.com/p/a43c3e0f0

訪問

直接在PC瀏覽器地址欄輸入彈性IP地址,如果出現下圖則表示nginx安裝成,並且伺服器實例已經可用,後續就可以在伺服器部署相關程序。

其他

  • 刪除實例:在實例列表要刪除的實例上右鍵-實例狀態-終止即可,終止即代表刪除實例,但是不會馬上刪除,一般十分鐘左右會自動銷毀。

  • 設置伺服器root密碼:
    • 使用命令:sudo passwd root
    • 會提示需要輸入兩次密碼,輸入即可

  • 設置伺服器用戶密碼:設置完密碼後,後續登陸可以直接使用終端或者其他SSH客戶等登錄,使用彈性IP地址、用戶名、密碼即可
    • 切換到root用戶,使用命令passwd 你的用戶名
    • 輸入兩次密碼即可

總結

總的來說,配置的流程相對比較繁瑣,尤其是配置AWS CLI裡面內容比較多,官方文檔給的也比較多,如果疑問,請聯繫[email protected]

參考

AWS Command Line Interface介紹:docs.aws.amazon.com/zh_

Amazon EC2 實例介紹:docs.aws.amazon.com/zh_AWS EC2搭建web伺服器:jianshu.com/p/a43c3e0f0
推薦閱讀:
相關文章