Hi, All
本篇文章將會介紹從無到紀錄如何在 AWS 環境中,模擬出一個與地端相同 server 環境下圖是本次實驗的架構圖與 follow action,本篇文章主要是記錄每一個步驟,若是有元件概念不懂或者寫得不夠詳細的歡迎來信詢問。
- 建立自己的 VPC
- VPC 切開分群為 public subnet & private subnet
- 設定 IGW, 建立對外的 route table
- 建立 ACL 與 SG
- 建立 EC2
- 透過自己的 terminal 連接 AWS EC2
前提概要:
VPC: 172.16.0.0/16
Public Subnet, jackysideproject-web-1a: 172.16.10.0/24
Private Subnet, jackysideproject-db-1a: 172.16.20.0/24
EC2 Private IP: 172.16.10.10
Create Security Group: jackysideproject-web-sg
Security Group Allow Port: 22
Create IGW routing table: jackysideproject-web-rtb
標籤:
VPC: jackysideproject-vpc
Public Subnet: jackysideproject-web-1a
Private Subnet: jackysideproject-db-1a
IGW: jackysideproject-igw
Routing Table: jackysideproject-web-rtb
Security Group: jackysideproject-web-sg
建立自己的 VPC
參考文章: 什麼是 AWS VPC
第一步,點開我們的 VPC,Create VPC.
建立 VPC,設定 VPC subnet,建立 vpc tag。
建立完成。
Create Public/Private subnet
建立完 VPC 後開始切割網段,在這個部分我們將會分為 172.16.10.0/24, 172.16.20.0/24 兩個網段。
Public Subnet, jackysideproject-web-1a: 172.16.10.0/24
Regin: 1a
Tag: jackysideproject-web-1a
Private Subnet, jackysideproject-db-1a: 172.16.20.0/24
Regin: 1a
Tag: jackysideproject-db-1a
設定完成。
Setting IGW and routing table
參考文章: 什麼是 IGW
設定完兩個 subnet 以後此時 subnet 還沒有對外連網的功能,我們將 jackysideproject-web-1a 設定外網的功能。
設定 IGW。
從這裡可以看的到,目前設定好的 igw 是 detached 的狀態所以需要將 VPC attach 到 igw中。
選擇我們 create 好的 VPC。
接著我們需要設定 routing table,下圖這個是 default 的 routing table,主要的目的在於同一個 VPC 內的 IP 都能夠互通,但為了能夠連外網我們需要再建立一個 routing table。
建立 jackysideproject-web-rtb,這個 routing table 依賴於我們所建立的 jackysideproject-vpc。
從下圖可以看到我們建立完 routing table 了,接著將外網的流量導入進來。
設定 0.0.0.0/0, Target 我們自己設定的 IGW,此時所有的流量都會導入進來了。
但是我們還沒設定導入到哪一個 subnet 當中,所以我們選擇 routing table,並且將 routing table 導入到 web-1a 的 subnet 當中。
將 routing table 導入到 web-1a 的 subnet 當中。
接著我們去 subnets 的頁面看,就可以看到 web-1a 的 routing table 中多了一個對外的 0.0.0.0/0 的 content,此時我們就可以知道所有非 172.16.0.0/16 的流量都會被導入到 igw 做轉送。
建立 ACL 與 SG
做完上述的步驟以後,我們可以思考,在一個沒有安全機制的狀況下,所有 IP, Port 都可以連進到一個公開的 server 中,是否不太合理,因此本節的目標就是將我們的網路多設一層防護網,我們將只允許 SSH port 22, 可以流進我們的 EC2 當中,當然之後若是你想要再多開 80, 443, 8888 都可以。
點選 Security Group, Create security group.
建立 jackysidepojrect-web-sg,Inbound rules 設定 22 port, source 這裡設定 0.0.0.0/0,但其實這是不好的,比較佳的方式是輸入你自己的 IP,增加安全控管程度。
另外小 tips,aws 的 inbound 策略是,進得來的流量都出得去,大家可以去看參考文章有詳細講解喔。
建立 EC2
參考文章: 什麼是 EC2
安全跟基礎的網路建立起來後,我們就可以 create 我們的 EC2 instance 了。
在這裡我們選擇的是 Amazon Linux 2 AMI, 當然你也可以選擇 CentOS 或者 Ubuntu 都可以。
接著我們選擇免費的 Instance。
選擇我們前面建立好的 VPC, 以及我們對外的 web-1a subnet,另外 enable Public IP 這樣我們才可以從外網設備連的到 AWS 的網路
選擇 private IP
設定 tag name
選擇我們剛剛所建立的 Security Group,增加我們的安全性。
若是你是第一次使用 AWS 就選擇 create new key, 然後下載下來,下圖是我已經建立好的 ssh key,記得 ssh key 記得保存好喔。
確認 download 後儲存的位置。
# Setting your file permission
chmod 400 aws_ssh_key.pem
到剛剛 EC2 的地方,找一下你的 public IP,這個部分我碼起來了,哈哈,就是黑色框框的那個,把它記錄下來。
# SSH your EC2
ssh -i aws_ssh_key.pem ec2-user@Your_EC2_Public_IP
登入成功。
下集預告
下次會把 EC2 的 web 服務建立起來,以及連線到 private 的 DB,開始做一些有趣的應用。