第一次在AWS EC2 執行Docker 就上手,新手入門之實作教學 ...
文章推薦指數: 80 %
使用心得
Skiptocontent
LastUpdatedon2020-05-29byJeslyn
翻翻工程師的職缺,越來越多高薪工作將AmazonAWS列為加分技能,甚至是必要技能。
深究其中,不難發現企業對於如AWS、GCP、Azure等雲端主機的需求愈來愈大(尤其AWS使用最普遍),為什麼呢?
因為雲端主機最大的優點–可擴展性(scalability),只要架構得對,就算突然流量暴增,也能自動生出新的伺服器分流,特別是電商公司最怕優惠活動時大量訪客湧入,網站卻被打掛而喪失訂單。
本篇文章將從頭到尾分享如何註冊AWS帳戶、創建EC2,最後在EC2上執行Docker以提供應用程式服務。
本文章之快速連結
AWS概述AWS免費方案AmazonEC2簡介用途和優點計費方式Docker概述AWS帳戶註冊步驟AWSEC2建立與使用選擇服務主機建立EC2SSH連到EC2instance在MacOS或一般LinuxOS操作在Windows操作在EC2上執行Docker安裝Docker執行應用程式其他注意事項使用心得
AWS概述
AWS(AmazonWebServices),由Amazon提供的雲端運算服務,讓使用者不需維護IT基礎設施,減少維護成本,也不需考慮架設備的地理因素和其他各種硬體因素,並且可以根據使用需求擴展,以量訂價。
對新創公司、小型企業、個人使用者來說,AWS非常方便,若有較高的硬體設備需求,不必一下子就花很多錢構建與維運,或者想做評估才決定是否投入開發某產品的人,也可先利用AWS試驗、研發,成本小。
AWS免費方案
AWS提供許多免費方案,一註冊就可以先試用,等到使用量比較大或需要更多功能時,可以再付費增加或升級。
(點我到AWS免費方案頁面)
AWS的服務爆炸多,主要有10種:AmazonEC2、AmazonVPC、AmazonS3、AmazonRDS、AmazonSES、AmazonSNS、AmazonCloudFront、AWSIAM、ElasticLoadBalancer、AWSAutoScaling。
這麼多服務項目,讓人「霧煞煞」,不知道要怎麼開始,對新手很不友善。
不過在這其中,AmazonEC2是最常用的,故本文章以EC2為主,介紹如何實現部署Docker的目標。
AmazonEC2簡介
AmazonElasticComputeCloud(AmazonEC2)在AWS雲端提供可擴展的運算容量,又稱AWSEC2。
每個EC2使用的單位是instance(實例)。
若單獨使用它就像虛擬主機,需要選硬體規格和資源。
用途和優點
可以減少一開始所需要的硬體投入成本,快速開發且部署應用程式。
可以依照需求啟動任意數量的虛擬伺服器、設定安全和聯網功能,還有管理儲存。
可以彈性地擴展或縮減規模,因時處理需求的變更,減少不必要的資源浪費與成本投入。
計費方式
以小時計費,關掉它就不會算錢,但要注意運算實例以外的部分若有使用到也要算錢,比如硬碟空間可以加錢擴增,或是固定連外IP也需要負額外費用…。
你可以在登入主控台後,從「我的帳單儀表板」去看目前的使用到什麼服務與使用量,以及花費。
在免費方案中,EC2的用量上限是一個月750小時,硬碟空間是30G。
若啟用多個instances,它會加總用量,比如我啟用2個instances,一起用了30小時,時數的用量計算即2*30=60小時。
再次提醒,AWS的免費方案讓你使用某些服務在一定的範圍內不用錢,一旦超過就開始收費,所以如果你只想先試用但不想花錢,務必小心使用!
Docker概述
Docker為開放原始碼,是一个很棒的工具,用來打包程式碼,將應用程式自動化部署成可攜式、可自足的容器,在雲端或內部部署上執行,使其在開發、測試和production環境運作方式一致,減少解決不同環境所產生之問題的時間。
若是想更深入且詳細的瞭解Docker,可以看Docker官方文件或參考微軟的文件。
AWS帳戶註冊步驟
(1)建立AWS帳戶(點我到帳戶建立頁面),填好E-mail、密碼、帳戶名稱後,按「繼續」。
(2)選擇帳戶類型,有「專業級」和「個人」2個選項,專業級帳戶需要多填公司名稱和一些相關資料,如果只是自己試用就選「個人」。
ps.本文是新手自學的分享,所以這裡選個人帳戶。
ps.選「專業級」的話,一段時間沒去用,AWS可能會來找你,關心一下是否有什麼問題。
如果有公司的需求或相關稅務問題,直接打電話給AWS,目前它們在台灣有辦公室,不只能回答問題,還能提供更詳細的資訊。
此外,地址的部分最好填英文,可以到中華郵政的網站將中文地址英譯。
(3)接著,會要求你填信用卡資訊。
除非用量超過AWS免費方案的限制,不然不會向你收費。
(4)然後,完成電話驗證。
如果填好電話的資訊後,一直沒有接到電話打來,可以換個電信公司的電話號碼試試看。
ps.據說台灣之星的號碼比較不容易收到。
(5)最後,選擇基本免費方案,就可以開始使用了。
(6)選完後,AWS會問你的角色和興趣,並在下面提供一些教學影片,你可以都不理它,直接點「登入主控台」。
ps.這裡有可能會要你再輸入帳密一次,重新登入,才會到AWS管理控制台頁面。
AWSEC2建立與使用
EC2就像是虛擬主機,唯一不同的點,在於一般的虛擬主機你租用什麼等級,就只能固定使用該等級,而EC2具擴展性,你可以隨時依照需求彈性地擴增或縮減。
這也是企業喜歡用EC2的緣由,有時難免因特殊情況而流量暴增,EC2可以馬上應付突發情況,不像虛擬主機要手動更改設定;之後流量回穩降低,EC2也能立刻調整,而虛擬主機則可能改不回來,無法降級。
選擇服務主機
進入AWS管理控制台後,先點擊右上方選擇要把服務掛在哪裡,如果主要服務的客群在台灣,可以選東京或新加坡。
建立EC2
(1)第一次使用要先創建虛擬機器。
如果在「最近瀏覽的服務」有EC2,可以點進去再「Launchinstance」;或者,直接到下面「建置解決方案」裡點「啟動虛擬機器」,都會進到同樣的建立頁面。
(2)進入正式創建虛擬主機步驟。
首先,要決定選用哪一種Linux主機。
如果有「Freetiereligible」表示有包含免費方案可以免費使用,沒有的話就沒有免費。
我們要建在Linux環境上,所以選UbuntuServer,建議選最新版本,按「Select」。
(3)接著,要選擇instance的類型。
如果想用免費方案,基本上只有1個選項可選,而且裡面的其他設定其實也不太能改什麼。
選好後,若沒有其他特別想設定的,可以直接點擊「ReviewandLaunch」,跳到最後一步「Review」;或者,點擊「Next:ConfigureInstanceDetails」。
(4)在”ConfigureInstanceDetails”頁面,可以看到一些基本設定。
如果你只是新手初學,想試用看看,原則上這裡的設定都不用動,然後下一步。
ps.如果未來要建實際上線的instance,可以對「Enableterminationprotection」勾選Protectagainstaccidentaltermination作為一個保護措施,不會因為不小心刪掉,instance就不見,但在測試階段容易刪減修改,就不需要特別勾選。
(5)在”AddStorage”頁面,是關於硬碟空間的設定,預設8GB,免費方案最多30GB,多用要多收費。
硬碟空間可以動態擴充,一開始不須擔心是否夠用。
你可以先用8GB,之後不夠用要增加,改設定就可以了,改完後只需要把instance關掉重開,不必砍掉重建,非常彈性。
(6)“AddTags”頁面並沒有什麼要注意的地方,直接下一步。
(7)“ConfigureSecurityGroup”這個步驟很重要,預設只打開port22,讓你用SSH連過去,其他都是鎖起來的狀態,如果有其他需求,比如架wordpress網站等,可以點「AddRule」多開port80、443。
(8)“ReviewInstanceLaunch”會列出所有設定讓你再確認一下,如果都沒問題,就按「Launch」。
(9)由於accessAWSinstance沒辦法用帳號、密碼,需要使用keypair才能建入管理畫面,所以launch前會要求設定keypair。
如果之前有建過其他keypair,可直接選用;如果沒有,就輸入keypairname自己建一個,然後下載keyfile。
一定要注意下載後的檔案不能搞丟,一旦launch成功後離開頁面,就不能再回來重新下載!
(10)最後,給它一點時間launch起來,完成後可以點「Viewinstances」,或到EC2的控制頁,看到所建instance的一些資訊,還可以操作它、改設定…。
SSH連到EC2instance
選擇instance,點擊上面的「Connect」,會有如何連到此instance的方法,這裡文件寫得蠻詳細的,其實只要照做就可以了。
在MacOS或一般LinuxOS操作
直接打開終端機,跟著下圖紅框框裡的步驟,下linux指令:
cd到keyfile的位置。
cdmod改變keyfile的權限。
400表示只有建立者可以”read“,其他人什麼事都不能做。
將example的ssh指令照貼到終端機,Enter後就可以直接連進instance。
在Windows操作
利用PuTTY連過去,可點擊”connectusingPuTTY“(或點我看文件),有很完整的文件。
原則上,這裡最主要的2個重點為:
(1)打開PuTTYgen,把keyfile(.pem檔)轉成.ppk檔。
→這個步驟只要有做過一次,之後若key不變就不需再重複做。
(2)打開PuTTY。
(下圖一為步驟全覽)
在HostName輸入PublicDNS或IPv6,這裡以PublicDNS為例,你可以從AWSinstance的管理頁面找到(如下圖二)。
設定SSH的Auth,選擇之前轉換好的keyfile(.ppk檔),然後「Open」。
(圖一)
(圖二)
(3)連線成功後,要輸入username,我們這裡用的是免費方案的UbuntuServer,預設是”ubuntu“。
在EC2上執行Docker
建議先瞭解docker的基本架構與一些常用語法,比如對image、container…的操作指令。
安裝Docker
最方便快速的方法就是使用apt安裝:
sudoapt-getinstalldocker.io
可以把自己的使用者帳號加入docker群組:(這裡的使用者帳號是ubuntu)
sudousermod-aGdockerubuntu
ps.記得要重新登入後才會生效。
執行應用程式
(1)先把想要的dockerimage從dockerhub拉下來。
(點我看dockerpull文件)
dockerpull[OPTIONS]NAME[:TAG|@DIGEST]
舉例:(這裡假設要用的是demo_account/test,其中,demo_account是dockerhub帳號,test是repository,v1是版本號)
dockerpulldemo_account/test:v1
(2)接著,下dockerrun指令,它會自己部署到container後執行應用程式。
(點我看dockerrun文件)
dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]
舉例:(這個例子要開的是用flask做的網站,需要有hostport和containerport(分別是80和5000),底層是用python寫的程式碼,所以要用python執行app.py)
dockerrun-d-p80:8050demo_account/test:v1pythonapp.py
(3)以我的例子,在run完後,到瀏覽器輸入我的publicDNS(下圖二),就能連到我的網站,其他人也可以連到(下圖一)。
(圖一)
(圖二)
ps.本文章只是大致介紹常用的docker語法與步驟,其他語法你可以參考docker文件,並且示範我的例子,你可以依自己的需求,自己拉dockerimage到EC2instance,然後執行應用程式。
其他注意事項
將應用程式上到EC2,使用一段時間後,發現有些地方需要特別注意:
#1)PublicIP不是固定的,你從instance的管理頁面看到的IP和進入server後下”ifconfig“指令所看到的IP是不一樣的。
#2)也許是本身具備彈性增減的功能,instance如果一段時間沒有使用,會自己死掉,需要把它”Stop”後再”Start”。
#3)幾乎每次instance關掉重開後,publicDNS都會變動。
使用心得
整體來說,AWSEC2蠻好用的,只要軟體程式開發完部署上去,能夠正常運作,其他跟設備相關的東西(如伺服器流量、防火牆、網路…)都不必考慮,真的很方便。
或者,公司的某項軟體還在研發階段,但要跟讓客戶試用,不希望連到公司自己的網域,也可以把EC2當作sandbox,不必擔心研發尚未完整、可能潛在一些缺陷的東西,影響到其他正式營運的產品。
如果有興趣學習更多關於AWS知識,現在已經有越來越多相關的線上課程和書籍。
點我到Hahow看AWS相關課程
點我到Udemy看AWS相關課程
※相關書籍:–AWS實戰:快速開發、建立和部署應用程式–WordPress+AWS架設企業級雲端網站
希望大家看完這篇文章,對AWS有初步瞭解,並開始動手嘗試,跟我一起學習!
如果覺得這篇文章有幫助,請幫我拍手5下鼓勵我、支持我,讓我繼續有創作的動力!
如果有任何問題或想分享的資訊,歡迎在下方留言!
文章導覽
←Previous文章Next文章→
LeaveaCommentCancelReply發佈留言必須填寫的電子郵件地址不會公開。
必填欄位標示為*Typehere..Name*
Email*
Website
在瀏覽器中儲存顯示名稱、電子郵件地址及個人網站網址,以供下次發佈留言時使用。
Δ
搜尋關鍵字:
寫文章也能增加收入線上課程學習
機票比價找優惠
近期留言「Jeslyn」在〈想學寫程式該如何入門?初學者怎麼選擇程式語言?完全沒有技術背景也可以學嗎?〉發佈留言「文帥」在〈想學寫程式該如何入門?初學者怎麼選擇程式語言?完全沒有技術背景也可以學嗎?〉發佈留言「Jeslyn」在〈法拍屋好賺嗎?投資法拍屋的重要心態&競標前一定要注意且審慎評估的5大風險〉發佈留言「Ryan」在〈法拍屋好賺嗎?投資法拍屋的重要心態&競標前一定要注意且審慎評估的5大風險〉發佈留言分類
旅遊分享(18)
印尼旅遊(6)
英國旅遊(11)
高雄旅遊(1)
理財投資(13)
ETF投資(4)
法拍投資(7)
理財觀念(2)
程式開發(7)
Python開發(4)
初學寫程式(1)
軟體應用(2)
聯盟行銷(1)
遠距工作(2)
延伸文章資訊
- 1AWS使用心得– 嚇嚇叫
介紹使用AWS ( Amazon Web Service ) 的程式開發使用心得 ... 以前使用Windows有一個常用的指令tracert ww… ... by Liu Jeff on 12...
- 2第一次在AWS EC2 執行Docker 就上手,新手入門之實作教學 ...
使用心得
- 3Amazon Web Services之門外漢心得 - 高見龍
EC2的安裝也很方便,你可以用AWS提供的Image檔(Linux跟Windows平台都有),也可以找一些社群熱心人士貢獻的。安裝時間也是出乎意料的短,只要點幾下滑鼠, ...
- 4[心得] AWS 雲端專業級解決方案架構師(SAP) 準備心得
使用的客戶也是最多, 另外幾個知名公司如, Apple , Nextflix等等, 都是AWS的忠實的愛用者, 這次來說說考試的心得了. AWS solution architect ...
- 5(一)前言--AWS經驗教學@ 台灣的Web工程師
前言AWS,全名Amazon Web Services,簡單地說是將公司營運的整套網站、資料庫,全數丟到AWS上去 ... 說了AWS那麼多的缺點,那麼為什麼還要使用AWS呢?