aws伺服器搭建節點
1. aws配置點到點vpn隧道
1、創建客戶網關
如下圖所示:注意IP地址是本地(北京vpn設備防火牆)的固定出口ip地址。
2、創建 虛擬私有網關
如下圖所示: 選擇需要連接本地的aws上的vpc網路。其他默認即可。
3、創建 站點到站點vpn連接
如下圖所示: 創建vpn連接,配置選項可按照如下配置,或者按照( https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html)括弧內連接地址配置。
4、此時我們需要配置路由表,需要連接vpn的子網的路由需要添加一條規則:
如下圖所示:我們需要將本地ip地址段目標配置為:虛擬私有網關。
5、下一步空基是配置安全組,我們必須讓本地ip地址段可以通過安全組訪問我們的實例資源。
1、配置本地vpn設備,使用華為防火牆作為vpn網關設備。
vpn隧道選項我們和aws上配置選項保持一致即可。
2、下面還有重要的一步,就是配置本地的路由表。
我們在斗皮謹核心交換機上配置172.40.0.0/16網段的路由嚇一跳設備為:華為防火牆。
3、此時,我們所有vpn配置都已完成。
ipsec診斷所有結果都是通過:
隧道詳情顯示IKE協商握春成功。
我們本地ping遠程aws上的伺服器實例:顯示ping可達。
4、本地和aws已建立完整的內網vpn連接。
1、華為路由器AR6140H-S,配置點對點vpn使用命令行更合適。
參考華為文檔: https://support.huawei.com/hedex/pages/EDOC1000163882DZG08147/14/EDOC1000163882DZG08147/14/resources/dc/dc_cfg_ipsec_0047.html?ft=0&fe=10&hib=7.1.10.6.12.4&id=dc_cfg_ipsec_0047&text=%25E9%2585%258D%25E7%25BD%25AE%25E6%2580%25BB%25E9%2583%25A8%25E9%2587%2587%25E7%2594%25A8%25E5%25AE%2589%25E5%2585%25A8%25E7%25AD%2596%25E7%2595%25A5%25E7%25BB%2584%25E6%2596%25B9%25E5%25BC%258F%25E4%25B8%258E%25E5%2588%2586%25E6%2594%25AF%25E5%25BB%25BA%25E7%25AB%258B%25E5%25A4%259A%25E6%259D%25A1IPSec%25E9%259A%25A7%25E9%2581%2593%25E7%25A4%25BA%25E4%25BE%258B&docid=EDOC1000163882
2. AWS服務建設之路-Docker集群
最近的項目處於種種原因要放到亞馬遜上面,也正好體驗一下世界最大雲計算平台的服務。於是又開始了漫長的爬坑路。不得不說AWS的管理交互台設計充滿了工業氣息,新手很難上手,但熟練工會覺得很直觀。
簡單來說分4步:
ECR是私有鏡像倉庫,先把自己的鏡像上傳上來,這一步的坑就在於要上傳鏡像不能直接 docker login 需要
ECS有一個很重要的概念,任務定義。這個概念類似於 k8s 的 pod。任務定義抽象出了任務這個概念,一項任務可以包含多個docker鏡像及對應的參數/環境配置,並且擁有CPU,內存限額。
任務定義擁有版本號,只能創建新版本不能修改以前版本。
而在集群中的調度則是以任務定義為對象。
所以我們為我們每一個服務創建了1個任務定義,一個任務定義包含1個鏡像。
這里有3種網路模式供選擇:
大部分情況我們都使用橋接模式,少部分情況使用 awsvpc 。主機模式則盡量不要使用,不利於編排。 awsvpc 的具體使用場景會在下文服務發現章節介紹。
動態埠映射 技術,是指將容器在宿主機上的外部埠隨機映射,只在橋接模式下有效。
勾上日誌配置,ECS就會自動把鏡像的標准輸出定向到 CloudWatch,就可以去那裡查看鏡像日誌了,當然專業的日誌系統還是得ELK。
ECS有2種集群,Fargate 與 EC2 linux。
Fargate是很酷炫的架構,特別是在資源佔用量不穩定,時間不確定的情況下很合適。而且全部使用awsvpc網路模式,所有的服務都可以擁有獨立IP,純正的無伺服器架構。只有一個缺點,貴(同樣資源量是EC2的3倍價格...
建議創建空集群,再自行添加伺服器,不然容易觸發一些 keng
上面說了任務定義,那麼任務這個概念也很簡單,被運行的任務定義。
一個任務可能包含多個容器,這個任務可能是在有限時間內執行完畢就停止的,比如攔冊蠢一次性腳本,也可能是無限運行的,比如nginx伺服器。
服務這個概念比較復雜,一個服務會管理一個任務定義在運行時的方方面面
服務沒有停止功能,只能修改任務數為0。
服務刪除後,需要手動停止已經運行的任務。
AWS提供基於Router53(DNS服務)的服務發現,其實很難用,awsvpc模式的很方便,橋接模式下特難用。
在awsvpc模式中 ,因為每個任務都有自己的IP,所以埠可以直接固定,不會存在沖突,配合基於Router53的服務發現可以直接完成完美的服務發現--無論如何更新重啟服務,總能通過固定域名訪問到服務。但因為一台伺服器只能綁定3張網卡,所以只能啟動3個awsvpc模式容器。
在橋接模式中 ,每個任務都使用宿主機的ip,以及隨機分配的埠,所以服務發現需要帶上埠,不然也不能正常發現。AWS提供SRV類型的DNS記錄用作服務發現,本身是沒有問題,但SRV並不是被廣泛接受的記錄類型,瀏覽器與網路庫均不能解析SRV記錄,所以要訪問服務還需要定製DNS解析。
所以我們最終選擇使用Eureka作為服務發現簡陪服務,使用awsvpc作為補充的服務發現服務,比如將Eureka本身及xxl-job等使用awsvpc部署。
在選用了Eureka之姿尺後,又遇到了問題。因為使用了動態埠映射,所以向Eureka注冊的埠不是Spring的監聽埠,並且容器內部無法知道宿主機的ip與埠。
這里通過多種方式配合破局:
不過要注意,啟用元數據服務,需要修改ECS代理配置,而這個配置是在集群創建時就寫入伺服器的,所以要修改ECS代理配置,必須要先修改自動伸縮組的初始化腳本,再刪除伸縮組內所有伺服器,再重新添加伺服器。
這樣就可以在Eureka中心正確展示服務信息了。
3. aws 部署項目遇到的問題
1、ssh連接伺服器連接不上
aws默認創建非root用戶,並且使用密鑰對登錄,公鑰存儲在/home目錄+用戶名的隱藏.ssh文件下,因為公司項目有要求也是只能通過密鑰對登錄就沒有修改賬戶密碼登陸,登錄後使用命令sudo -i 切換到root用戶。因為掛載磁碟在/home目錄下所以密鑰對沒有當斷開連接或超時自動斷開時就會再也連不上去了。所以可行的時掛載到/睜此mnt目錄或者掛載/home前備份文件,掛載後cp到/home下。
這個問題弄得我好埋帆煩,我以為是更改埠的問題,後面沒更改還是一樣出錯,而且aws還不允許初始化系統和還原快照好像。
創建root用戶密鑰對
其實這個也適合配置伺服器間ssh免登錄
2、修改默認埠
因為默認ssh埠不安全容易被黑客找到機會,要求更改默認埠,並且生產環境要求啟用防火牆,想著測試環境各種關閉防火牆部署環境那叫一個爽,到了生產就叫苦了。更改默認埠後需要開啟防火牆和selinux,雲上還要開啟安全組,記得開啟防火牆埠後要重載,selinux也需要開放埠,ssh需要重啟。
這里困擾了挺久的,我想到了防火牆和安全組,沒注意selinux。
3、防火牆
伺服器上部署etcd,服務連不上etcd,報錯no route to host,結果還是防火牆問題,開放2379和2380埠,並且記得重載。
4、啟動docker容器時報錯
5、nginx安裝失敗悉液迅
6、etcd連接不上
7、ip ping不通
這個是安全組未開放icmp埠,開放所有ipv4就可以了。
8、asw S3設置公開訪問許可權
這個配置我是真的挺無語的,設置了好久解決不了,還是json來配置吧。老外的思維和我們還是挺大的哈。
8、購買伺服器
購買伺服器選擇鏡像一定選擇官方鏡像,注意安全。
9、購買RDS
AWS RDS可以設置只對內網開放或公網開放,通過終端節點連接,所以不要去傻傻的找公網IP和私有IP了。
連接方式終端節點+埠+主用戶+主密碼。
10、nginx問題
Nginx 500錯誤(Internal Server Error 內部伺服器錯誤)
HTML 文檔的字元編碼未聲明。如果該文件包含 US-ASCII 范圍之外的字元,該文件將在某些瀏覽器配置中呈現為亂碼。頁面的字元編碼必須在文檔或傳輸協議層聲明。
原因是nginx配置以及許可權問題。
還有幾個是未解之謎,怪事年年有,aws特別多
文章僅給自己引以為戒,犯過的錯誤不要再犯,歸根結底還是對AWS不熟悉。
國外除了AWS,還有 https://www.linode.com/ , https://www.vultr.com/ ,這幾個都不錯的。
4. 如何在亞馬遜免費雲主機amazon ec2安裝lnmpa來搭建網站
登錄亞馬遜AWS管理控制台,通過郵箱進行注冊或登錄。進入後,選擇EC2服務,點擊「虛擬伺服器在雲端」開始啟動實例。選擇「啟動實例」按鈕,隨後在鏡像系統中選擇適合的操作系統,比如Windows Server 2012,或者您也可以選擇Linux等其他系統。配置伺服器時,依次點擊Next,直到配置伺服器名,然後設置開放埠規則,下一步選擇創建新的密鑰對,並下載密鑰對文件保存到本地。
伺服器搭建完成後,啟動實例並查看運行中的實例。通過右鍵點擊剛創建的伺服器,選擇獲取Windows密碼,上傳之前保存的密鑰對文件。記住伺服器的IP地址和密碼,保存在記事本中,以便後續使用。使用遠程連接工具連接到伺服器,確保連接成功。
接下來,安裝LNMPA環境。首先,登錄伺服器,安裝Nginx,使用命令:sudo apt-get install nginx。然後,安裝Mysql,使用命令:sudo apt-get install mysql-server。接著,安裝php,使用命令:sudo apt-get install php5-fpm。最後,安裝Apache,使用命令:sudo apt-get install apache2。
安裝完成後,配置Nginx,編輯配置文件/etc/nginx/nginx.conf,確保Nginx能夠正確訪問PHP文件。接著,配置MySQL,創建資料庫和用戶,設置相應的許可權。配置PHP,編輯php.ini文件,設置PHP的配置參數。最後,配置Apache,編輯httpd.conf文件,確保Apache能夠正確處理PHP請求。
完成所有配置後,重啟Nginx、MySQL、PHP和Apache服務,確保所有服務正常運行。使用瀏覽器訪問伺服器IP,測試網站是否正常運行。如有問題,檢查配置文件,確保沒有語法錯誤。如果一切正常,恭喜您成功在Amazon EC2上搭建了LNMPA環境。