AWS EC2筆記

  朋友想搭一個境外網站,找我幫忙,希望服務器、域名都在境外。我沒有在境外建站的經歷,只能先嚐試。於是上網搜索了一下境外服務器,大家比較常用的是Digital Ocean和AWS,我索性打開這兩家的官網,打算自己比較一下,後來選擇AWS,是因爲他的官網打開的比Digital Ocean快,就這一點,我義無反顧地選擇了AWS。

  簡單介紹一下,AWS即Amazon Web Services,是Amazon提供的建站平臺,在上面可以購買空間、數據庫、雲計算等服務,官網地址https://aws.amazon.com/。要使用它的服務首先要註冊一個賬號,註冊的過程中會需要用到信用卡,還會接到一個電話要求輸入網站上提供的PIN碼用於驗證你填的手機號,跟隨指引,基本上很簡單就能完成。

 

第一部分 新建EC2例

  註冊完成後登錄管理控制檯,控制檯首頁可以看到幾個選項卡:

  很好理解,第一個就是構建虛擬機,以我的經驗,建站的空間就在這裏申請。點一下啓動虛擬機,進入如下界面

  這是我首次接觸EC2這個概念,搜索了一下,它是指Elastic Compute Cloud,即彈性雲計算,和國內的雲虛擬主機的概念差不多,一個EC2實例就是一個雲虛擬主機。接下來的步驟就是爲這個實例命個名:

  然後選擇操作系統,點擊每個操作系統會有簡介,可以根據自己的技術方向選擇,由於我一個都不熟,於是我打算選Amazon的親兒子Amazon Linux AMI,這也是經驗之談,既然是Amazon的主機,用Amazon定製的Linux肯定沒毛病。

  然後選擇實例類型,這是一個很人性化的界面,直接放了一個免費的類型,絕不會利用你看不懂就訛你錢,如果你是土豪並且有點文化可以選擇更多選項,像我這種掙扎在溫飽線的直接很HAPPY的選了免費型然後下一步

  然後就是創建祕鑰,給這個祕鑰命個名,然後下載祕鑰文件後保存,這個祕鑰文件(*.pem)很重要

  下載之後,點擊創建實例,就OK了。

  然後返回控制檯首頁,可以看到最近訪問的服務下面有個EC2,直接點擊EC2,就進入到EC2控制面板,然後點擊正在運行的實例

  可以看到我們剛纔創建的實例MyFirstInstance。

 

第二部分 使用PuTTY連接到實例(使用SSH協議)

  接下來的工作就是要想辦法連接上這臺主機,方便我們在上面部署網站。右鍵點擊實例,在菜單中選擇連接,會顯示連接方式

 

  這上面介紹了兩種方式,一種是使用SSH客戶端,一種是直接從瀏覽器連接,選擇直接從瀏覽器連接時會提示使用Chrome是不行的,請使用Firefox或者IE9+,並且還要安裝Java。

  java我已經很熟悉了實在懶得重複這個工作,而且僅僅爲了連一下虛擬主機在我電腦上裝java我覺得不划算(雖然我還是默默安裝了個firefox),而且SSH客戶端對我而言還是個新事物我比較有好奇心,我毫不猶豫決定選擇SSH客戶端,並且選擇了上面提到的PuTTY客戶端。下面介紹下如何用PuTTY客戶端連接到EC2實例。

  首先下載安裝PuTTY的過程就不說了,和一般軟件安裝過程一樣並且這個超級簡單。然後我們要做一些準備工作,在正在運行的實例列表中,選擇剛纔新建的實例,頁面底部可以看到實例的詳細信息,我們要記住的是實例的Public DNS(IPv4)

 

 

   然後我們要對剛纔創建實例時下載的密鑰文件進行格式轉換,從PEM格式轉成PPK格式才能在PuTTY上使用,PuTTY自帶轉換工具PuTTYgen,安裝PuTTY後在開始菜單很容易找到PuTTYgen工具,啓動它

  然後點擊Load,加載剛纔下載的私鑰pem文件,默認情況下選擇文件的界面那裏文件類型是*。ppk,我們要改成ALL FILES才能看到PEM文件

  然後Type of key to generate那裏選擇SSH-2 RSA,

 

  然後點擊Save private key,就可保存爲PPK文件了,這個PPK文件就是PuTTY可以用的密鑰文件,在一會兒的連接過程中會用到。

  準備工作做完了,接下來啓動PuTTY,在左邊的目錄中選擇Session,一般情況下啓動時默認就是Session界面,在HostName中輸入user_name@public_dns_name

  username按之前選的操作系統有幾種不同的值:

 

  • 對於 Amazon Linux AMI,用戶名爲 ec2-user

  • 對於 RHEL AMI,用戶名稱是 ec2-user 或 root

  • 對於 Ubuntu AMI,用戶名稱是 ubuntu 或 root

  • 對於 Centos AMI,用戶名稱是 centos

  • 對於 Fedora AMI,用戶名稱是 ec2-user

  • 對於 SUSE,用戶名稱是 ec2-user 或 root

  public_dns_name就是前面提到的必須要記住的Public DNS

  然後Connection type選擇SSH

 

  然後通過左邊的目錄切換到Conncetion——SSH——Auth,在右邊點擊Browse,選擇前面生成的PPK文件,然後切換回Session頁面,點擊Save,可以保存這些配置以供下次直接使用,點擊Open可以連接到EC2

 

  下面是連接成功後的界面,就是Linux系統的命令窗口,在這個窗口通過命令可以執行一切我們希望的操作,部署網站就靠它完成。

 

第三部分 使用FileZilla連接到實例(使用SFTP協議)

  這是一個題外話,但它介紹的內容也在後面的工作中承擔了很重要的作用:從Windows上傳文件到EC2實例中的Linux系統。使用PuTTY自帶的工具PSCP(基於命令的工具),或者WinSCP(基於windows GUI的工具)也可以從windows上傳文件到遠程Linux,爲什麼我選擇了FileZilla?理由很簡單,一是我恰好裝了FileZilla並且用的比較熟練,二是我想試試FileZilla行不行,因爲我以前一直用FTP協議連接遠程服務器,今天突然接觸到SSH協議,然後我就專門查了一下FTP和SSH區別,查的過程中別的沒記住,倒是記住了SFTP這樣一個由二者結合的協議,然後以前用FileZilla的時候有印象在選擇傳輸協議時有SFTP這個選項,所以想試試可不可以通過SFTP協議連接到EC2。

  我啓動FileZilla,下面的一切都憑經驗進行

  新建站點AWS,主機欄輸入Public DNS,端口輸22,協議選擇SFTP,登錄類型選擇密鑰文件,用戶前面解釋過了填ec2-user,密鑰文件選擇之前轉換成的PPK文件,其它的不管,點擊連接,由於是境外服務器網絡不穩定,經過多次嘗試後終於還是連接成功了,然後我還上傳了一個httpd-2.2.32.tar.gz文件,用於部署apache服務器的。

 

第四部分 部署Apache服務器

  在Linux部署Apache服務器的步驟,常見於LAMP環境搭建的教程裏面。LAMP,即Linux + Apache + MySQL + PHP,有時候M也指MariaDB。搜索amazon ec2、lamp關鍵詞,很容易就能找到在ec2上部署apache的教程,然而我一開始並不知道lamp這個概念,於是一直搜索在linux上部署apache的教程,查出來的教程相當複雜,而且我還各種沒成功。後來總算讓我找到了一篇,原來在ec2上部署apache是一件非常輕鬆的事情,只需要如下幾行代碼:

sudo yum update
sudo yum install gcc gcc-c++ make
sudo yum install apache mysql php php-mysql mysql-server

  上面第一行是更新系統環境,第2行是安裝C++編譯環境,第3行是安裝apache、mysql、php等組件。上述代碼運行完成後apache就成功安裝了。

  測試apache是否成功安裝的方法:

apachectl -v
httpd -v

  回顯版本號表示已經安裝成功

  安裝完apache後,接下來啓動apache web服務:

sudo service httpd start

  加sudo是爲了以管理員權限運行該命令,一般情況下這條命令需要有sudo纔會運行成功。

  在官方的API文檔裏面看的更清楚:

 

 

第五部分 測試Apache服務器

  在安裝apache服務器並啓動httpd服務後,接下來需要測試該服務器能否被正常訪問。在瀏覽器中輸入前面提到的Public DNS,應該就可以看到Apache測試頁面了。但一般情況下,只做到這一步的話,還看不到測試頁面,因爲還需設置下安全組規則。在EC2控制面板切到安全組頁面

  然後在右邊選中MyFirstInstance實例後,右鍵單擊它,在菜單中選擇“編輯入站規則”:

  在“編輯入站規則”中添加下面這樣一條規則:

  它的含義是允許任何地方通過HTTP協議80端口訪問本實例,也就是通過網頁方式訪問本實例。這個時候基本上就大功告成了,在瀏覽器輸入Public DNS或者公有IP就能看到Apache測試頁了。

 

 第六部分 關於彈性IP(EIP,Elastic IP)

   通常情況下,我們申請的EC2實例在每次重啓之後,Public DNS和公有IP都會改變,如果是要做一個網站,服務器IP經常改變,那域名解析也要跟着變,這是個很麻煩的事情。這時候就需要申請EIP,並將EIP與EC2實例關聯,這個EIP就可以作爲這個實例的永久IP,除非我們手動取消關聯。關聯之後,我們可以在瀏覽器地址欄輸入EIP來訪問EC2實例。

  申請EIP的方法:在EC2控制面板找到“彈性IP”頁面

  然後在右邊選擇“分配新地址”

 

  按照指引分配好新地址後,回到彈性IP頁面,右鍵點擊我們剛纔申請的EIP,選擇關聯地址,將前面的EC2實例關聯上去

然後就大功告成。

 

以上是這兩天的學習成果,很少,但學習過程也是十分繁瑣複雜,查了不少資料走了不少彎路浪費了不少時間,所以纔想寫一篇筆記記下來,讓以後少走彎路。後續將繼續學習在ec2上運行php的過程,在amazon申請域名並綁定到ec2實例的過程,逐步將網站建起來,學習過程中的經驗也會拿出來分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章