# 雲端技術相關: AWS + OpenVPN ## 目的 * 紀錄EC2方案的平台建立方式 * AWS搭配OpenVPN建立私人的VPN * AWS CLI (Command-Line Interface)的常用指令 ## 參考影片 {%youtube g3jYKRG37FI %} ## 步驟 * AWS帳戶申請 * 方案選擇 * 我選擇Elastic Compute Cloud (EC2) * 具有以下優勢: * 新會員前12個月免費(須遵守條件規定) * 相較LightSail更完整的運算資源 * 使用方案為t2.micro(免費) * 若追求效能及流量可自行選擇其他方案 * 名詞解釋(若熟悉可跳過) * VPC (Virtual Private Cloud) * VPS (Virtual Private Server) * VPN (Virtual Private Network) * AMI (Amazon Machine Image) * 虛擬主機搭建步驟 * 主機區域選擇 * 登入帳戶後,在右上角選擇區域,這會成為之後VPN所應用的區域 * ![Location](https://imgur.com/EqOclDf.jpg) * AMI (Amazon Machine Image)的選擇 * 預設頁面有以下兩種可供選擇 * ![default image](https://imgur.com/o9dPZly.jpg) * 但我的目的是架設VPN,可直接在Market搜尋更專一的image * ![vpn image1](https://imgur.com/ZNmCG3m.jpg) * ![vpn image2](https://imgur.com/Gn7qEzW.jpg) * 選擇EC2的方案種類 * ![ec2 instance1](https://imgur.com/GxB6oKK.jpg) * ![ec2 instance2](https://imgur.com/Xel57r3.jpg) * 這裡是一些網路的細項設定,可以使用預設值 * ![net configure](https://imgur.com/ezygP0j.jpg) * 勾選: **protect against accidential termination** * ![protect](https://imgur.com/D8yDVPm.jpg) * 過程中會提供存取EC2所需的public key,請妥善保存,後續進行VPN設定時會用到 * 按下右下角的 **review and launch** 會秀出前面所有步驟進行的設定,若無誤就可以啟動 * ![protect2](https://imgur.com/uA1kP2b.jpg) * 可在dashboard看到剛建立的EC2 service,接下來要將這裡的彈性IP配置給EC2 service,作為之後VPN的專屬IP * ![dashboard1](https://imgur.com/qyYkrbA.jpg) * ![dashboard2](https://imgur.com/otTtGgv.jpg) * ssh到EC2 service(VPC)進行初始化 * 輸入Elastic IP,這裡將用到先前保存的public key * ex: `ssh -i <public_key.rem> openvpnas@<your_elastic_ip>` * ![ssh](https://imgur.com/qOZdkFk.jpg) * 設定openvpn的帳戶 * ![openvpn setting1](https://imgur.com/xbfLXg9.jpg) * ![openvpn setting2](https://imgur.com/0TW0Mk3.jpg) * 設定將來用於登入openvpn的密碼 * ![passwd](https://imgur.com/JO3Wl9O.jpg) * 設定OpenVPN * 下載OpenVPN客戶端 * 新增非admin帳戶作為日常使用 (ex: roykuo) * 輸入網址(`http://<your_elastic_ip>`)後進入設定頁面 * ![homepage](https://imgur.com/Febcs7W.jpg) * 新增一個非root的user以免誤觸系統核心的操作 * ![add user1](https://imgur.com/JnWFlAQ.jpg) * ![add user2](https://imgur.com/GTlKuLJ.jpg) * 請確保路由選項參考圖片中設定,VPN才能順利連上(允許VPN連線私有網路) * ![routing1](https://imgur.com/jTMVKB2.jpg) * ![routing2](https://imgur.com/FnkJZxS.jpg) * 開始使用 * ![success](https://imgur.com/cXkcm5e.jpg) * ![dashboard res](https://imgur.com/ELD5j7U.jpg) ## 參考連結 * 本教學參考自[Medium blog](https://medium.com/@tatianaensslin/how-to-create-a-free-personal-vpn-in-the-cloud-using-ec2-openvpn-626c40e96dab) ###### tags: `Cloud` `AWS` `Backend` `VPN`