【AWS徵文】使用 AWS EC2 安裝 Apache 服務

什麼是 AWS EC2

Amazon Elastic Compute Cloud (Amazon EC2) 直譯過來是一種可伸縮的計算雲,提供了普遍的實例類型選擇,這些實例類型通過優化以適應不一樣的用例,實例類型包括CPU、內存、存儲和網絡容量的不一樣組合,使咱們可以靈活地爲應用程序選擇適當的資源組合。每一個實例類型包括一個或多個實例大小,容許您將資源擴展到目標工做負載的需求。這裏是 EC2 實例類型一覽表,截部分圖在這裏展現html

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

說簡單一點: EC2 就是一個按照你需求配置的虛擬機,若是你須要在虛擬機上作 CPU 密集型的任務,那就選高 CPU 低內存的實例,若是是 I/O 密集型的,那就選擇低 CPU 高內存的實例,花最少的錢知足提供最貼合你須要的服務git

在 EC2 上安裝 Apache 服務

有了這個基本的瞭解事後,咱們就能夠在 EC2 上安裝 Apache 服務來進一步瞭解 EC2github

前置準備

因爲本身開通了 AWS free tier(綁定信用卡),能夠免費玩 12 個月,若是你也這樣作,建議設置好帳單閾值,當使用了產生費用的服務時,會給你提醒,以防產生過多開銷shell

新建 EC2

點擊下圖 Launch Instance 按鈕新建 EC2 實例瀏覽器

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

新建 EC2 實例主要按照下圖上方的七步完成,首先是選擇 AMI (Amazon Machine Images), 其實就像選擇操做系統,標記爲 Free tier eligible 的是咱們能夠無償使用的,下圖用紅色框線標記的則是 Amazon 封裝好的 AMI,裏面會包含 ECS agent 以及 Docker 的配置(本次 demo 不會用到這些服務),其餘 AMI 可能須要手動安裝,因此沒有特殊要求也建議選擇 Amazon AMI安全

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

點擊右側的 Select 按鈕進入下一步bash

選擇系統配置,Free tier eligible 只有這麼一種類型(1個vCPU,1GB Memory)網絡

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

繼續點擊 Confiture Instance Details,進行詳細內容配置,下圖中作了一些字段的說明,演示的狀況下多以默認設置爲主負載均衡

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

若是沒有額外的 non-required 的配置,能夠繼續點擊 Add Storage 進行存儲方面的配置,默認會有 8GB 的存儲空間,足夠咱們安裝 Apache 服務,因此這裏不會額外添加其餘 Volumecurl

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

繼續下一步 Add Tags

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

下一步 Configure Security Group, Security Group 其實就比如防火牆,分爲 Inbound Rule(默認deny all) 和 Outbound Rule(默認 allow all),下圖配置了兩種(SSH/HTTP)方式反問 EC2 實例,前者用於後續安裝 Apache 服務,後者用於瀏覽器驗證服務,這裏的 source 都是 0.0.0.0/0 (指任何訪問來源,這是很寬鬆的規則,實際業務中也是不容許這樣的)

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

到這裏就能夠點擊 Review and Launch 來發布 EC2 實例了

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

檢查配置內容,若是沒有問題,最終點擊 Launch,在最終 launch 以前,還須要生成 key pair(將其下載到本地),用於 SSH 訪問,若是已經生成過,也能夠選擇用已有的

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

最終 Launch Instances,就獲得了一個處在 running 狀態的 EC2 instance

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

從上圖中能夠看出,咱們也被分配一個 Public IP 54.145.44.9

若是咱們不使用 Elastic IP ,咱們每次 Launch 一個 EC2 服務都會獲得一個新的 Public IP,因此你的應該和個人不同

接下來,咱們就能夠用剛剛的 Key Pair 鏈接 EC2 來安裝 Apache 服務

鏈接 EC2

點擊上圖 Connect 按鈕, 有三種鏈接方式:

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

第一種鏈接方式就像你建立 github repo 同樣給出了你完整的操做步驟。默認狀況下,若是你直接使用下載下來的 Key Pair 來鏈接 EC2, 會報錯說「文件權限太大」。因此要經過 chmod 400 來給定合理的文件權限, 接下來就在 Mac 下作一下鏈接 EC2 的演示

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

其中 ec2-user 是 Amazon Linux 2 AMI 的默認用戶 (鏈接的前提必須是在 Security Group 的 Inbound Rule 支持 SSH 方式鏈接配置)

若是你身邊沒有命令行工具或者 Putty,也能夠直接使用第三種經過瀏覽器鏈接的方式:

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

點擊 Connect,一樣會進入 EC2

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

從上圖能夠看出,有兩個 IP,一個 Public IP,一個 Private IP,若是經過 SSH 鏈接,注意使用前者

第二種鏈接方式因爲默認狀況沒有 IAM 配置,暫時沒辦法經過該種方式鏈接:

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

到這裏,咱們就能夠進入 EC2 來安裝 Apache 服務了

安裝 Apache 服務

切換爲超級管理員身份

sudo su

先作系統更新

yum update -y

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

安裝 httpd

yum install -y httpd.x86_64

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

啓動 httpd 服務

systemctl start httpd.service

Enable httpd 服務

systemctl enable httpd.service

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

到這裏 Apache 服務就已經安裝好了

測試 Apache 服務

直接在命令行中經過 curl 命名進行測試

curl localhost:80

從下圖能夠看出,Apache 服務已經安裝成功

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

這麼看着不是特別友好,因此經過瀏覽器再次訪問(經過 Public IP),就能夠友好的看到 Apache 服務的測試頁面了

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

按照測試頁面說明,更改一下測試頁面內容

echo "Hello AWS from $(hostname -f)" > /var/www/html/index.html

刷新瀏覽器頁面

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

到這完成的 Apache 服務就已經安裝完畢了

使用 EC2 User Data

若是在 EC2 instance 建成後安裝 1 個軟件還好,若是要安裝多個軟件,而且要在多個 EC2 instance 上運行,上面這種安裝方式顯然很不友好,AWS EC2 支持使用 User Data 來解決咱們上述痛點

其實就是在 EC2 instance 第一次啓動的時候須要執行的 shell 腳本

咱們能夠將上述安裝 Apache 服務的全部步驟編寫成一個 shell script

#!/bin/bash

sudo su

yum update -y
systemctl start httpd.service   
systemctl enable httpd.service
echo "Hello AWS from $(hostname -f)" > /var/www/html/index.html

有了這個腳本,咱們就能夠在 EC2 instance 的 Configure Instance 步驟時的高級選項中,就能夠添加User Data 腳本內容

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

後續步驟和上面同樣,這裏再也不重複了,方便了許多

使用 EC2 AMI

若是建立 EC2 instance,都須要輸入腳本,萬一哪次拷貝出現誤差,一樣會帶來一些問題和不變,因此 AWS 一樣支持將 EC2 打包成 image 的功能解決這個痛點(熟悉 Docker 的朋友應該秒懂建立 Image 的做用)以下圖

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

輸入相關的信息

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

一個 AMI 就這樣的建成了

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

本身建立的 AMI 能夠經過點擊左側菜單 AMIs 來查看

【AWS徵文】使用 AWS EC2 安裝 Apache 服務

後續在 Create Instance 的時候就能夠選擇從你本身的 AMI 中建立,到這裏,關於 EC2 種安裝 Apache 服務就介紹完畢了

總結

相信經過這篇文章,你對 EC2 有了一個基本的概念,經過安裝 Apache 服務,以及使用 User Data ,再到最後使用 AMI,也逐步豐富你對 EC2 相應功能的理解,以上的這些功能,也只是 EC2 的冰山一角,實際他能夠結合 EC2 Template作 AWS Batch Job 工做,以及多個 instance 經過 ASG 來管理。之後陸續展開說明

最後

瞭解過 EC2 基本功能後,也要及時 stop 或 terminate EC2 instance,以防長時間處在 running 狀態帶來開銷

我的感覺

EC2 是一個很是成熟的服務,有多種 instance 類型應對各類需求,同時水平擴展和垂直擴展策略也能夠從容應對各類突增請求。

在使用雲服務以前,要考慮基礎設施,網絡安全,負載均衡,健康檢查以及監控等,以上這些設置都要經過各類組件組合在一塊兒,反覆調試才能獲得一種相對較好的平衡。而 AWS EC2 藉助其餘服務 VPC, ALB,以及 CloudWatch 等能夠完美的將傳統搭建過程融合在一塊兒,大大下降了由於系統集成問題致使的 bug。無需搭建任何基礎設施,只須要簡單的配置,在保證穩定性,高可用的同時,大大縮短了一個 APP 上線週期。目前公司全部服務都已按照相應需求發佈到 EC2 實例上,單一的管理入口,讓多個服務管理也更加從容

相關文章
相關標籤/搜索