本想在EC2上部署一套RocketMQ,然后就開始搗鼓EC2。
一、什么是EC2
Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services (AWS) 云中提供可擴展的計算容量。使用 Amazon EC2 可避免前期的硬件投入,因此您能夠快速開發和部署應用程序。通過使用 Amazon EC2,您可以根據自身需要啟動任意數量的虛擬服務器、配置安全和網絡以及管理存儲。Amazon EC2 允許您根據需要進行縮放以應對需求變化或流行高峰,降低流量預測需求。
相當于阿里云的ECS
、騰訊云的CVM
。
官方文檔說的云里霧里,其實就是云服務器,云中的可擴展的虛擬計算資源。云服務器免去了您采購IT硬件的前期準備,讓您像使用水、電、天然氣等公共資源一樣便捷、高效地使用服務器,實現計算資源的即開即用和彈性伸縮。
二、概念
2.1 AMI
Amazon 系統映像 (AMI) 是一種包含軟件配置 (例如,操作系統、應用程序服務器和應用程序) 的模板。通過 AMI,您可以啟動實例,實例是作為云中虛擬服務器運行的 AMI 的副本。您可以啟動多個 AMI 實例。
2.2 實例
實例是云中的虛擬服務器。啟動時的實例配置是您在啟動實例時指定的 AMI 的副本。
您可以從一個單一的 AMI 啟動不同類型的實例。實例類型從本質上決定了用于您的實例的主機硬件。每一個實例類型提供不同的計算和存儲能力。選擇一種基于您打算在實例上運行的應用程序或軟件所需的存儲容量和計算能力的實例類型。有關每種 Amazon EC2 實例類型的硬件規格的更多信息,請參閱 Amazon EC2 實例類型。
啟動一個實例后,該實例看上去像一個傳統主機,您可以像與任何計算機交互一樣與其進行交互。您對實例有完全控制權;您可以使用 sudo 運行需要root權限的命令。
三、設置
3.1 創建密鑰對
AWS 使用公共密鑰密碼術來保護您的實例的登錄信息。Linux 實例沒有密碼;您可以使用密鑰對安全地登錄您的實例。 使用 SSH 登錄時,您在啟動實例時指定密鑰對的名稱,然后提供私有密鑰。
在創建EC2實例的時候可以創建密鑰對,如果您尚未創建密鑰對,則可以通過 Amazon EC2 控制臺自行創建。
創建密鑰對
打開 Amazon EC2 控制臺 https://console.amazonaws.cn/ec2/。
-
在導航窗格中,選擇 Key Pairs (密鑰對)。
選擇 Create key pair (創建密鑰對)。
對于 Name (名稱),輸入密鑰對的描述性名稱。Amazon EC2 將公有密鑰與您指定作為密鑰名稱的名稱相關聯。密鑰名稱最多可包含 255 個 ASCII 字符。它不能包含前導空格或尾隨空格。
-
對于 File format (文件格式),選擇要保存私有密鑰的格式。要以可與 OpenSSH 一起使用的格式保存私有密鑰,請選擇 pem。要以可與 PuTTY 一起使用的格式保存私有密鑰,請選擇 ppk。
選擇 Create key pair (創建密鑰對)。
-
您的瀏覽器會自動下載私有密鑰文件?;疚募侵付槊荑€對名稱的名稱,文件擴展名由您選擇的文件格式確定。將私有密鑰文件保存在安全位置。
重要: 這是您保存私有密鑰文件的唯一機會。
3.2 創建安全組
安全組用作相關實例的防火墻,可在實例級別控制入站和出站的數據流。您必須在安全組中添加規則,以便能夠使用 SSH 從您的 IP 地址連接到實例。您還可以添加允許來自任意位置的入站和出站 HTTP 和 HTTPS 訪問的規則。
請注意,如果您計劃在多個區域中啟動實例,則需要在每個區域中創建安全組。
創建具有最小特權的安全組
打開 Amazon EC2 控制臺 https://console.amazonaws.cn/ec2。
從導航欄中選擇安全組的區域。安全組特定于某一區域,因此您應選擇已創建密鑰對的區域。
-
在導航窗格中,選擇 Security Groups。
選擇創建安全組。
-
在 Basic details (基本詳細信息) 部分中,執行以下操作:
輸入新安全組的名稱和描述。使用一個容易記住的名稱,例如,您的用戶名稱,后跟 SG,加區域名稱。例如,meSGuswest2。
在 VPC 列表中,為區域選擇您的默認 VPC。
-
在入站規則選項卡上,創建以下規則(為每個新規則選擇添加規則):
從 Type 列表中選擇 HTTP,確保 Source 設置為 Anywhere (
0.0.0.0/0
)。從 Type 列表中選擇 HTTPS,確保 Source 設置為 Anywhere (
0.0.0.0/0
)。從 Type 列表中選擇 SSH。在源框中,選擇 My IP 以便使用本地計算機的公有 IPv4 地址自動填充該字段?;蛘撸x擇自定義并用 CIDR 表示法指定計算機的公有 IPv4 地址或網絡。要采用 CIDR 表示法指定單個 IP 地址,請添加路由前綴
/32
,例如203.0.113.25/32
。如果您的公司要分配同一范圍內的地址,請指定整個范圍,例如203.0.113.0/24
。
重要: 出于安全原因,我們不建議您允許從所有 IPv4 地址 (
0.0.0.0/0
) 對您的實例進行 SSH 訪問(以測試為目的的短暫訪問除外)。
- 選擇創建安全組。
我是要使用XShell連接管理EC2,所以配置的安全組規則如下:
四、啟動實例
使用 AWS 管理控制臺啟動 Linux 實例。
打開 Amazon EC2 控制臺 https://console.amazonaws.cn/ec2/。
從控制臺控制面板中,選擇啟動實例。
Choose an Amazon Machine Image (AMI) 頁面顯示一組稱為 Amazon 系統映像 (AMI) 的基本配置,作為您的實例的模板。選擇 Amazon Linux 2 的 HVM 版本。 請注意,這些 AMI 標記為“Free tier eligible”(符合條件的免費套餐)。
在 Choose an Instance Type (選擇實例類型) 頁面上,您可以選擇實例的硬件配置。選擇
t2.micro
實例類型 (默認情況下的選擇)。t2.micro
實例類型適用免費套餐。在t2.micro
不可用的區域中,您可以使用免費套餐下的t3.micro
實例。有關更多信息,請參閱 AWS 免費套餐。選擇 Review and Launch 讓向導為您完成其他配置設置。
-
在 Review Instance Launch (查看實例啟動) 頁面上的 Security Groups (安全組) 下,您將看到向導為您創建并選擇了安全組。使用以下步驟,您可以使用此安全組,或者也可以選擇在設置時創建的安全組:
選擇 Edit security groups。
在 Configure Security Group 頁面上,確保 Select an existing security group 處于選中狀態。
從現有安全組列表中選擇您的安全組,然后選擇 Review and Launch。
在 Review Instance Launch 頁面上,選擇 Launch。
當系統提示提供密鑰時,選擇 Choose an existing key pair,然后選擇您在進行設置時創建的密鑰對。
警告: 請不要選擇在沒有密鑰對的情況下繼續。如果您啟動的實例沒有密鑰對,就不能連接到該實例。
準備好后,選中確認復選框,然后選擇 Launch Instances。
確認頁面會讓您知道自己的實例已啟動。選擇 View Instances 以關閉確認頁面并返回控制臺。
在實例屏幕上,您可以查看啟動狀態。啟動實例只需很短的時間。啟動實例時,其初始狀態為
pending
。實例啟動后,其狀態變為running
,并且會收到一個公有 DNS 域名。(如果 Public DNS (IPv4) 列已隱藏,請選擇頁面右上角的 Show/Hide Columns (齒輪狀圖標),然后選擇 Public DNS (IPv4)。)-
需要幾分鐘準備好實例,以便您能連接到實例。檢查您的實例是否通過了狀態檢查;您可以在 Status Checks 列中查看此信息。
啟動完成的EC2實例
五、 XShell連接EC2
官網沒有相關的參考資料。
打開XShell,選擇“工具”菜單項
-
選擇“用戶密碼管理...”,打開“用戶密鑰”界面
-
在“用戶秘鑰”中選擇“導入”按鈕,導入之前準備好的PEM文件。導入之后,選擇“關閉”按鈕關閉該界面。
-
選擇“文件”菜單下的“新建..."項,我們開始新建一個到云服務器的會話連接
-
在左側列表框中選擇“連接”,在右側界面中輸入會話名稱和主機公網IP或者公網DNS域名。
如下圖:在EC2的控制臺他顯示的是“公有DNS(IPv4)
”表面也是我們理解的DNS服務器,一開始我還納悶告訴我們DNS我們也不需要知道啊,它實際表達的意思是可被公網DNS解析的EC2服務器的域名,我們可以直接訪問這個域名來連接。IP及公網DNS域名 -
在左側列表框中選擇“用戶身份驗證”
修改右側界面:
“方法”項的值改成“Public Key”
“用戶”項的值根據在云服務器上定義的用戶名,默認“ec2-user
”,這一點非常差勁,在導出證書也沒有告訴我用戶名,因為不知道,我就默認寫了個root在進行登錄連接,看到報錯提示發現是ec2-user這個用戶
“用戶密鑰”項的值是下拉框中選擇上一步導入的PEM文件
點擊”確定“按鈕,完成設置。
最后,進行連接后就可以正常的操作EC2了。
六、SSH命令行方式連接EC2
win10自帶了OpenSSH可以直接使用ssh命令進行Linux服務器的連接,參考文章:http://www.lxweimin.com/p/e9d20554956b