AWS: EC2 part 1

今天,我決定來學網路雲端。

選雲端

如果要學網路雲端,首先當然要在 AWS, Azure, GCP 之間選一個。這大概是我從決定學雲端,到寫這篇文章之間,最煩惱的問題了。因為雲端的費用計算實在是太複雜,而我又想盡量免費。就像傳統網路託管那樣,有一塊小空間給我用。可這方面雲端又特複雜……

(偷偷抱怨下 Heroku 居然因為被詐騙濫用,而取消免費方案了。要命。)

首先當然考慮在臺灣彰化有資料中心的 GCP 雲。但……因為 GCP 的免費方案被我搞沒了、付款帳號又不能加,結果不能用只好放棄。這樣就剩下還沒註冊的 AWS 與 Azure 了。

這兩個的話……怎說呢?無比煩惱:我要的都有功能完成、都有免費時間、都是穩定的廠商……但最後還是決定選擇 AWS。

這背後的原因有幾個:最主要是因為看了些 Azure 的說明後,我發現手冊好像都假設我學了 Azure 就要用 Visual Studio (Code)、然後學 C# 與 ASP.NET、用 Windows Server 跑程式……當然我知道 Azure 還是有很多地方可以自己選,只是我不喜歡這種高度「整合」的假設。我比較喜歡選擇上留點自由的餘地。另外 Azure 的臺灣資料中心到現在都還沒有開、還有 AWS 的市占率高也是原因。

當然可以的話,我都想試試看;但既然免費使用都有期限,還是選 AWS 吧。

我的第一隻 AWS: EC2

既然選好 AWS 後,接下來就是來練練手了。問題是,要找啥來練手?最後決定選 AWS 最熱門的 EC2 試試看。

那這是啥?──我花了點時間研究後發現,原來 EC2 是雲端虛擬機來著──就像是在 AWS 開 VirtualBox 裝系統一樣。只是 AWS 順便幫你把作業系統安裝好。

地區選哪裡呢?我在日本韓國、以及印度傷腦筋。雖然韓國與印度比日本便宜,但最後還是選了日本──因為在本地地區,我可以選在臺北。

對了如果地區伺服器要選臺灣,請記得地區要選日本東京。


然後偷偷抱怨:

簡單來說,它就像是在雲端上租用的虛擬電腦。想像一下,如果你需要一台電腦來執行應用程式、儲存資料或執行任何需要計算的工作,但你不想要真實的實體電腦,那麼EC2就是很好的工具。
目前蠻夯的Gefroce Now也是用同樣的概念,就是你雲端的機器幫你裝好遊戲,只要你的網路是順暢的,就可以用破爛電腦玩3A的遊戲
~ [AWS]Ec2是啥個玩意兒? - 安安我里夫啦 - Medium

但如果網路是破爛的,再好的電腦也是烏龜 QQ

AWS EC2: 作業系統

EC2 有很多作業系統可以給你選。按照對 EC2 的理解,我最後選了兩個系統來玩,那就是 Windows ServerAmazon Linux

首先 Windows Server 最大的特點就是圖形界面,可以更快理解 EC2。那開了以後要怎麼進 Windows Server 呢?

首先你需要密鑰檔、還有連遠端桌面要用的 RDP 檔。這兩個 AWS 都會提供;然後在進 Windows Server 前,把下載好的密鑰檔給 AWS 解密。AWS 會透過密鑰檔把遠端桌面的密碼給你。這樣,就可以透過遠端桌面的密碼,進入 EC2 的 Windows Server 了。

我玩了一下,覺得很慢,等不到要裝 XAMPPIIS 就覺得煩死不想裝。刪掉。

我還是選 Amazon Linux 好了……用 SSH 進來快多了。

一般來說如果要在 Windows 用 SSH 的話,可能會找到 PuTTY 這玩意。但如果允許的話,推薦用 Windows 的 Windows Subsystem for Linux (WSL) 吧。大部分的程式運作都能比照 Linux 來用。

SSH 同樣地也需要密鑰檔。就從 Windows 複製密鑰檔到 WSL 後用該密鑰檔登錄。具體而言是:

  1. cp /mnt/{磁碟槽}/{路徑}/{密鑰檔}.pem ~/{WSL-路徑}/{密鑰檔}.pem
  2. ssh -i /{路徑}/key-pair-name.pem {帳號}@{AWS帳號名}

如果出現 Permissions xxxx for '.pem' are too open 代表密鑰檔權限設得太寬了,不要森777,很多事情森777不能解決。

結語

我們講完了 EC2 與作業系統。接下來架站!

參考資料