談了這麼多,現在才要開始談到正題,那就是我們要來啟動一台伺服器了。

每一台伺服器,在AWS上,都稱為一台EC2,而在啟動EC2前,仍有好多好多的事情需要處理,我們先一個一個來過。

EC2的計費方式與免費額度

EC2的計費方式

  EC2主要內容就是伺服器,也就是我們一般討論的CPU、Memory還有硬碟...!!什麼!!硬碟不算在EC2中!!而是要另外算...。

  嗯,所以EC2包含的只有CPU與Memory,硬碟我們稍候討論。

  想當然,CPU與Memory的等級越高,收費就越貴;而計費方式是依開機時間來計算的,不滿一小時以一小時計,而且系統不同,收費也不同;區域不同,收費也不一樣...。

  剛剛似乎聽到一個關鍵字「區域」!!沒錯,區域,因為AWS部署在全球,所以你可以根據你的所在地,選擇不同的區域,這樣可以加快網路的存取速度,以筆者目前寫這篇文章來說,離台灣最近的區域是東京,而且因為當地的物價與電價的影響,所以每個區域的收費也有小差別,而東京算是收費較貴的區域。

  回到原題,所以EC2的計費方式是依開機時間來計算的,再依照該區域的定價、EC2上執行的系統來收取相應的費用;這邊有一點需要注意的是:

開機時間指的是從開機到關機這段時間,而不滿一小時會依一小時計;所以假設我在一小時內將EC2關機(shutdown,不是reboot)後再開機,再關機,雖然時間是在一小時以內,但AWS的計算是二個小時。因為從開機到關機不滿一小時會以一小時計。

  AWS也將收費標準寫在網頁上,大家可以自行查詢,下圖是範例:

EC2免費的額度

  剛剛也談到了,AWS提供新用戶一年的免費額度,而EC2的一年免費額度是750小時/月,不過都是以當前AWS提供最小機型的CPU與Memory來運作。

註:EC2除了運行時間需要收費外,資料的傳輸(頻寬)費用是另外計算的,不過讀者先  記得幾個大原則即可:

  1. 傳資料進入到AWS不用錢。

  2. 內網傳輸不用錢。

  3. AWS跨區域傳輸要錢。

  4. 前一GB不用錢(每月重算)。

     記得這幾個大原則,基本上只要不太扯,是不會超過每個月的費用的。

EC2的建立

  瞭解它的計費方式後(...真的瞭解了嗎!?),我們就可以準備開始建立一台EC2了。首先進入AWS的操控頁,並記得先選擇區域(畫面的右上角),如下圖:

這是很重要的第一步,因為這個區域會影響我們後續架設的所有服務。選擇完區域後,我們就可以開始試著建立EC2了。

  找出主控台中的EC2並選擇:

  

進入後在左方的Menu中選擇Instances的Menu,就可以在左方的頁面中看到目前建立好的Instances。

上圖是建立好並執行中的EC2,我們來看看整個建立的流程。透過畫面上的按鈕「Launch Instances」,來建立一台新的EC2。

第一步要先選擇好想要的系統,如下圖:

AWS已經有預設好一些系統,我們可以直接使用;選擇好後按一下右方的藍色按鈕,進到下一步:

 

這裡可以看一到一個很明顯的Free文字,除了這個Free的之外,其他的都是要錢的,請小心。

第三步是網路的一些設定,如果我們沒什麼信心的話,可以先跳過一步,直接到下一步Add Storage去。

 

第四步要要求我們選擇硬碟,不過讀者還有印象嗎?硬碟是要另外付費的,下方我們快速的帶一下硬碟在AWS上的相關費用吧。

EBS(Elastic Block Store)

  AWS上的EBS,其實就是儲存裝置,快速理解的話,也就是硬碟;不過,儲存裝置不只是硬碟,AWS也有提供磁帶的儲存裝置,這個部份就需要各位讀者自行去研究了。

  EC2上使用的EBS,全部都是SSD裝置(AWS94狂)。

EBS的費用計算

  EBS的費用是依據每個月使用的GB數來計算的;當然,每個區域的收費方式都是不一樣的,不過,區域的選擇,我們是在EC2建立Instances之前就選擇了,所以在這裡純粹只是被告知而已。

EBS的免費額度

  EBS一樣有免費的額度,額度的內容為:

30 GB 的 Amazon EBS:一般用途 (SSD) 磁碟區或磁帶磁碟區的任意組合

換句話說,我們將硬碟設定到30G都還不是問題;不過,建議不要設定那麼大,畢竟到時候在備份時,會連同空白不使用的一起備份,這樣也是造成金錢上的浪費。

 

回到EC2的建立吧,基本上我們使用AWS預設的10G,應該就夠使用了,那我們接著下一步。

這個部份是看你要不要幫你的EC2建立一個Tag,建立這個Tag的意義在於,AWS有提供一些API讓使用者可以呼叫該使用者還存活的EC2,所以幫EC2建立Tag,可以讓使用者在呼叫API時,取得EC2的Tag資料,幫助程式進行判斷;這個部份不是必填,所以可以留空。

 

接來是很重要的一步,因為它關係著EC2啟動後,你能不能連進去的問題;這一頁的設定是屬於防火牆之類的設定,它可以控制那些IP、Port可以進出,所以我們先在這邊設定My IP(參考上圖紅框)可以連入,這樣我們才能在EC2啟動後連入進行操控。

 

最後一步是讓我們確認剛剛的設定是不是有什麼問題,如果沒有問題的話,就可以按「Launch」,這樣AWS就可以開始跟你收錢了;當然如果你還在免費的範圍內,AWS是不會跟你收費的。

  註:

如果你建立的EC2是屬於Linux系統,那麼在建立後EC2的途中,AWS會要求你上傳舊的pem檔,或是要求建立新的pem檔,並讓使用者下載,這個pem檔等同使用者要登入EC2的密碼檔,是很重要的,請不要弄丟。

連入EC2

  好不容易建立好了EC2,接下來的就是要連進去做操控了;可是,在連進去前,一樣有不少關卡等著我們,讓我們一一突破它吧。下方談論的,都是Linux系統的EC2,請注意。

EC2連線IP

  要連入EC2前,我們首先要知道它的IP,它的IP會被顯示在一開始的Instance頁面中,如下圖:

EC2登入帳號

  在整個建立EC2的流程中,你會發現,AWS並沒有讓我們有輸入帳號的機會,這是因為AWS已經幫忙建了一組預設的帳號名稱,如下圖:

所以視我們建立的EC2不同,預設的登入帳號就不同。

EC2登入密碼

  可能會有人問,有預設的帳號,那有預設的密碼嗎?答案是:沒有。所以為了登入EC2,AWS使用的不是密碼,而是金鑰;不過,麻煩的是,那組金鑰雖然可以在Linux上系統直接使用,但是如果在Windows系統想使用Putty連線的話,需要經過轉換。下面我們分別介紹Linux系統與Windows系統如何登入EC2。

Linux系統登入EC2

  因為linux系統在登入EC2比較簡單,所以我們先說明Linux系統上如果登入。

  Linux在登入其他的Linux上非常簡單,透過ssh指令即可,指令如下:

 

ssh ec2-user@IP -i /path/key.pem

Windows系統登入EC2

  Windows系統在登入EC2時,因為Putty無法直接使用pem檔,所以變得非常麻煩,必須要先用PuttyGen將pem檔轉為ppk檔;所以我們要先下載PuttyGen,開啟PuttyGen,並「Load」我們的pem檔:

在選擇檔案時,預設是看不到pem檔的,所以要將它改為All Files(如下圖),才能找到我們的pem檔。

最後再透過「Save private key」來完成檔案的轉換。

取得ppk檔之後,再回到Putty中,設定好檔案的位置:

這樣子才能成功連到EC2。

EC2連線障礙排除

  因為連線到EC2是一開始最重要的一步,但也因為是很早就遇到的一步,所以對不熟悉AWS的使用者來說,非常容易就卡住了,所以下面我們來將幾個會影響EC2的連線設定過一遍。

EC2登入帳號

  登入的帳號會隨系統不同而改變,也且也沒辦法確保AWS未來也是持續用固定的登入帳號,所以如果是第一次登入新建的EC2,但是一直登入不進去的話,那可以上網查一下預設的登入帳號。

EC2的pem檔

  因為EC2的Linux系統登入並無密碼設定,所以要登入時,必須先設定好pem檔,請確認你的pem檔是對應該台EC2的。

Security Groups(AWS上的防火牆設定)

  每一台EC2都必須套用一個AWS上的防火牆設定,這個部份在AWS的名稱是Security Groups,它的位置會在下圖紅框處。

請開啟這個Security Groups,並確保它可以讓你的IP連到這台EC2,如下圖:

可以看到圖片的下方有三筆SSH的資料,這表示套用這個Security Groups的EC2,只允許從三個IP連入。

   註:Security Groups與Linux上的防火牆(iptables)是二個防火牆,且同時作用,所以在開任何Port的時候,請同時考慮這二邊。

文章標籤
創作者介紹
創作者 JAVA Programmer 的頭像
JAVA Programmer

台灣的Web工程師

JAVA Programmer 發表在 痞客邦 留言(1) 人氣()


留言列表 (1)

發表留言
  • Hugh
  • 請問能不能分享一下如何分辨該選哪個AMI?
    謝謝
  • 基本上AMI都是人家幫忙裝好OS或者是連Server都幫忙安裝好了,所以其實是要看你本身到底需要什麼,所以這個問題等同在問我,該選Linux好還是Windows好之類的問題,很難一概而論,我只能建議你根據你的需求,上網找找對應的Server後,再去AMI看有沒有人已經安裝好了,或是你想要裝什麼Server後,再上網看看那一個OS安裝起來比較簡單。
    只能給你這樣的建議了。

    JAVA Programmer 於 2018/05/24 14:37 回覆