Skip to content

Latest commit

 

History

History
81 lines (55 loc) · 4.87 KB

AWS雲端經典架構建置WordPress網站(參考資料1).md

File metadata and controls

81 lines (55 loc) · 4.87 KB

AWS雲端經典架構建置WordPress網站

目標/綱要 運用AWS雲端經典架構,建置出安全性高的WordPress網站,並完成自動化監控,並蒐集相關Log、自動備份 並預先規劃好未來要走高併發架構的下一步

aaa

文件撰寫範例: 文件範例

資源命名規則(含Tag)

cfc102-testAA-BBBBB-CCCCC AA是你的座號 BBBBB是你的應用或用途 CCCCC是你使用的資源名稱 ※例如: cfc102-test99-wordpress-EC2

功能及規格

項次 功能名稱 功能描述/規格 備註
1 雲端網路環境 描述:
新建一個網路環境,預先配置好後續會使用到的網路環境,AP伺服器及DB伺服器,將放置於此網路環境。


規格:
VPC
新建一個VPC
切割2個公網段、2個私網段
(預先配置網段,未來高併發架構時,可直接使用)
1公1私網段,同屬一個AZ可用區域

開啟Flow logs蒐集公網段的流量紀錄
CIDR可自訂
2 虛擬機器伺服器 描述:
新建一台機器,並將流程自動化,一開機器就能自動佈已經安裝好相關程式,採手動安裝及部屬的方式進行


規格:
EC2
使用EC2新建一台Instance
系統: Amazon Linux 2 AMI
規格: t2.micro type (1核/1G) 以上
防火牆: SG開80/443 port (建置過程中可開22)
固定IP: EIps
硬碟: EBS gp2 15GB
金鑰: cfc102-testXX.pem
(XX是座號)
與DB伺服器同一AZ可用區域
軟體: WordPress / PHPmyAdmin
開機自動化腳本: userdata
安裝docker
安裝docker-compose
安裝git
3 ELB及ACM的https加密 描述:
建置ELB連接到EC2,並透過ACM服務申請憑證,建立https加密連線機制,確保資料傳輸交付時的安全性


規格:
ELB監聽器 443 -> 80
ELB Health CHeck位置 /index.php
4 資料庫 描述:
將AP與DB分離成不同主機,並使用RDS服務,託管資料庫。


規格:
RDS
放置於私網段,不設定公開
MySQL / 5.7.31
db.t2.micro (1核/1G)
30GB
與AP伺服器同一AZ可用區域
5 內部DNS 描述:
建立一個內部DNS,並指向資料庫主機的位置


規格:
Route53
private hosted zones
Domain Name: cfc102testXX.internal.db
CNAME Record
6 資源監控與警告 描述:
建立監控指標,針對處理器及記憶體的資源負載進行監控


規格:
CloudWatch / SNS
警告閥值:
EC2的
CPU 平均使用率 60%
RAM 平均使用率 60%
信件通知自己信箱


設定自己一個儀表板,將WP伺服器的監控指標整合進去
CPU: 平均使用率
RAM: 平均使用率/可用容量/已用容量/總容量
DISK: 平均使用率/可用容量/已用容量/總容量
7 服務日誌紀錄 描述:
蒐集網站存取log並針對服務狀態進行監控


規格:
CloudWatch logs
蒐集WORDPRESS acces.log / error.log
並透過AWS CLI 設定排程,定期上傳至私有S3
8 用戶及資源權限控管 描述:
設定服務角色及使用者管理角色權限


規格:
IAM
設定EC2 Role,需與S3.RDS.Cloudwatch存取
設定使用者權限僅可操作功能列表內的服務
9 備份/還原 描述:
將虛擬主機及資料庫進行週期備份


規格:
Snapshot
Instance 7天一次循環快照
RDS 7天一次循環快照
最多保留兩個
10 物件儲存 描述:
WordPress內的圖片影片,都自動存放於S3內,並對外開放


WP Offload Media Lite – 可使用 Amazon S3、DigitalOcean Spaces 及 Google Cloud Storage


規格:
S3
建一個Bucket設定公開(串接WordPress媒體庫用)
建一個Bucket不公開(僅提供內部資料提取使用,包含儲存log使用)
11 外部DNS 描述:
將有一個對外的域名網址,可供用戶透過此域名網址,訪問此平台系統。


規格:
用老師的DNS
Domain Name: cfc102-testxx.cxcxc.name
設定CNAME Record,綁定至ELB位置


請至下方輸入DNS驗證及記錄資訊
CFC102_測驗_DNS
12 人員操作紀錄監控 描述:
透過CloudTrail進行人員及資源的操作紀錄,並已確認日後的存取操作行為的紀錄

指定的佈景主題: Astra 並安裝 starter templates

version: '3.8'

services:

  wordpress:
    image: wordpress
    restart: always
    container_name: wordpress-web
    ports:
      - 80:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 123456
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./html:/var/www/html

  phpmyadmin:
    image: phpmyadmin
    restart: always
    container_name: phpmyadmin-db-console
    ports:
      - 8080:80
    environment:
      - PMA_ARBITRARY=1