"Infra"
- IaC 工具選型與 state 地基
Terraform / OpenTofu / CDK / Pulumi 的選型判準,state 作為 IaC 工具對現實的唯一記憶,以及 remote state backend 的自管與託管路線
- infra 投資的商業論證
用成本、風險、速度三條論述線把 infra 投資翻譯成商業語言,附一頁簡報邏輯與常見反對意見的回應
- infra 走 PR 流程與自動化護欄
infra 變更走 PR → plan → review diff → 合併 → apply,配 fmt / validate / tflint / checkov / tfsec 與 Atlantis 自動化,讓基礎設施可審查、可回溯、可交接
- Infrastructure as Code (IaC)
用程式碼描述基礎設施的最終狀態,由工具負責收斂現實與描述的差異
- Tagging 規範與 Secrets 不進 code
tag 讓資源可盤點、可清理、可歸屬;密鑰存在專用服務裡而非 code 或 state,兩者都屬於 day-1 就該立的治理地基
- 升級的共通操作框架
任何環境或系統升級的四階段模型:差異評估、平行環境驗證、分批切換、退役舊環境,以及貫穿全程的升級紀律
- 手動環境的可控底線與納管準備
還沒有 IaC 的環境怎麼守住底線、讓變更可追溯、降低未來納管成本,以及辨識何時該開始導入 IaC
- 可觀測性與 log 同生命週期管理
log group、metric、alarm 寫進建立資源的同一套 IaC,讓監控跟資源同生共滅,出事時追得到查得到
- 身分與憑證地基 — IAM 模型、OIDC 短期憑證與權限邊界設計
IAM 的 identity / policy / role 三元件、最小權限的持續收斂、用 OIDC 取代長期 access key,以及 SCP 與 Permissions Boundary 的環境隔離
- 從單一環境到環境分離:infra 需求的浮現過程
單一 EC2 + RDS 的結構在需要測試環境、多人協作時會撞到哪些操作極限,以及環境分離怎麼牽出身分、網路、變更流程等後續 infra 關注點
- 部署順序與資料庫上 IaC
核心服務的依賴圖決定部署順序,資料庫作為第一批上層服務需要最謹慎的 IaC 描述 — 涵蓋 RDS 接線、連線管理、read replica 與端點暴露
- 無 SSH 的 FTP / 面板管理環境接管
接手一個只有 FTP 和 phpMyAdmin(或 cPanel / Plesk)存取的 PHP 專案:沒有 SSH、沒有 CLI 時,怎麼盤點現況、建立本地開發環境、制定部署與資料庫變更紀律,以及找到升級路徑的切入點
- 網路地基 — VPC、subnet 分層與 security group 設計
VPC CIDR 規劃、public / private subnet 切分、route table 與 NAT 的可用性成本取捨、security group 最小開放設計,以及 NACL 的定位
- 環境分離與模組化 — 目錄結構、module 參數化與 retrofit 路徑
用目錄結構在第一天就隔開 dev 與 prod 的 state,用 module 讓環境共用同一套邏輯只差參數,以及已經單環境跑起來後怎麼安全拆分
- 斷網環境的通用原則
離線套件管理、內容搬運、變更追蹤的共通操作模式 — 所有斷網情境都要先建立的基礎能力
- Console 唯讀鐵律與最小可行資源集合
Console 只用來看不用來改的操作紀律、drift 的延遲浮現與偵測,以及能跑出第一個完整 apply 迴路的最小資源集合
- infra 的責任邊界、成熟度階梯與 day 1 鐵律
基礎設施承擔五個面向的責任,每一面都有獨立的失效模式;成熟度階梯用來對齊現況而非追求滿分,day 1 鐵律則劃出早期團隊該優先鋪的地基
- Runtime 版本升級
PHP / Node.js / Python 大版本升級的相容性評估、本地驗證、分批部署策略與常見陷阱
- Security Group 稽核與清理
盤點所有 security group 規則、找出 0.0.0.0/0 全開與未使用的 SG、依賴檢查後安全刪除、自動化治理
- State(IaC 狀態檔)
IaC 工具用來記錄每個納管資源在雲端真實樣貌的快照,是比對差異與排定操作順序的依據
- Terraform CI Pipeline 設定指南
用 GitHub Actions 建立完整的 Terraform CI pipeline:fmt → validate → tflint → plan → PR comment → apply,含 OIDC credential 與環境保護規則
- 成本可見性與最小可行治理節奏
用 tag 驅動的成本分攤讓帳單有人負責,以及判斷什麼治理該 day-1 就立、什麼等規模逼出來再加
- 有 SSH 但沒有 IaC 的雲端環境接管
接手一個全手動建立的雲端環境時,怎麼盤點資源、推導依賴關係、收斂 credential、驗證備份、建立變更紀律,以及什麼時候該開始導入 IaC
- 怎麼把 infra 推動起來 — 信任赤字、期望值對齊與知識共享
技術正確不等於推得動 — infra 在商業優先級裡吃虧的結構性原因,以及用可回退切片、期望值對齊與知識分散來跨過組織關卡
- 單環境到多環境的 Retrofit 操作手冊
把已經跑在單一環境的 Terraform 設定拆成 module + per-env 目錄結構的完整操作步驟,含 moved block、zero-change plan 驗證與常見陷阱
- 跨帳號策略 — Organizations、SCP 與帳號工廠
用 AWS Organizations 把環境拆成獨立帳號、用 SCP 設定連管理員都越不過的護欄、用帳號工廠讓每個新帳號自帶安全基線
- 運算平台上 IaC — ECS 與 EKS
容器運算平台的 IaC 描述:ECS 與 EKS 選型、task definition 與映像版本解耦、IAM task role 分離、auto-scaling 策略
- 斷網環境的 IaC
Terraform provider mirror、離線 plugin cache、本地 state backend、沒有雲端時的 plan/apply 流程與內網 CI
- checkov 與 tfsec 規則配置
靜態掃描工具的規則選擇策略、自訂規則、豁免管理、false positive 處理與 CI 整合,讓掃描從噪音來源變成可信的品質關卡
- Drift(設定漂移)
IaC 的 state 與雲端實際狀態之間的不一致,通常因為有人繞過 IaC 直接在 Console 改設定
- 平台遷移
FTP 面板主機到 VPS、VPS 到雲端、地端到雲端的遷移路徑 — 資料同步策略、DNS 切換、驗證與回退
- 有半套 IaC 但文件缺失的環境接管
IaC 覆蓋不完整、部分資源在 state 外、文件缺失的環境怎麼盤點差距、修復 state 健康、收斂 drift 並重建文件
- 團隊權限分級與存取管理
用 admin / operator / viewer 三級劃分團隊成員的雲端操作權限,設計臨時提權流程、定期 access review 節奏,以及 contractor 與外部 vendor 的存取邊界
- 儲存上 IaC — S3 bucket 的安全與生命週期
S3 bucket 的加密、版本控制、公開存取封鎖、生命週期規則、bucket policy 與事件通知怎麼寫進 IaC,讓儲存的安全與成本防線可審查可追蹤
- 斷網環境的容器與映像管理
Private registry 架設、映像搬運(docker save/load、skopeo)、base image 更新週期、離線漏洞掃描
- 職務交接與存取撤銷設計
人員異動時的存取撤銷順序、credential rotation、最小交接清單,以及讓交接成本結構性降低的 infra 設計原則
- 拿到雲端帳號的第一天
被指派 infra 工作、拿到 AWS 或 GCP 帳號、不確定該先做什麼時讀 — 第一小時安全底線、帳號現況判讀、後續學習路線分流
- Access Key 輪替手冊
從 credential report 盤點散落的長期 access key,到逐把輪替、自動化輪替與 key age 監控的完整操作步驟
- VPC(Virtual Private Cloud)
雲端帳號內的一塊邏輯隔離私有網段,是所有網路切分的起點與容器
- 入口上 IaC — ALB、TLS 與健康檢查
Application Load Balancer 的 listener、target group、健康檢查閾值設計,以及用 ACM 把 TLS 憑證的簽發、驗證與掛載整條鏈寫進版本控制
- 資料庫大版本升級
MySQL 5.7→8.0、PostgreSQL 13→16 等大版本升級的相容性評估、備份保險、平行驗證、切換策略與升級後監控
- 斷網環境的監控與可觀測性
Self-hosted 監控(Prometheus + Grafana)、離線 log 收集(Loki / ELK)、不能 phone home 的告警、NTP 時間同步
- OIDC Trust Policy 設定指南
GitHub Actions 與 AWS 之間的 OIDC 聯合設定:建立 provider、設計 trust policy 的 claim 收斂、plan 與 apply role 分離、常見錯誤排查
- OS 與基礎軟體更換
EOL 作業系統的遷移評估、目標 OS 選型、原地升級 vs 平行建置的取捨、應用層遷移清單,以及 Apache → nginx 等基礎軟體切換的操作要點
- Stateful 資源保護與跨服務依賴表達
stateful 資源的保護策略(multi-AZ、備份、刪除保護)、stateful 與 stateless 的操作差異,以及用 output 與 data source 表達服務間依賴
- Subnet(子網路)
VPC 內按可用區與暴露程度切出的子網段,決定資源有沒有一條通往網際網路的路徑
- 斷網環境要自建的服務清單
正常環境消費的 SaaS(GitHub、Docker Hub、npm、Datadog)在斷網環境全部要自建 — 服務清單、選型、部署順序、統一管理取捨與維護的隱藏成本
- ACM 憑證、DNS 與 HTTPS 設定
從 Route 53 hosted zone 到 ACM 憑證申請、DNS 驗證、ALB HTTPS listener 與 HTTP 重導的完整設定流程
- Security Group
掛在資源網卡層級的有狀態防火牆,逐埠決定哪些來源能連進這個資源
- 斷網環境的版本控制與 CI/CD
在沒有 GitHub、沒有 Docker Hub 的隔離網路裡,怎麼部署版本控制、設定 CI runner、跨邊界傳輸 commit、以及讓 PR review 流程運作
- ECS Fargate 成本分析與優化
Fargate 的計價模型、與 EC2 launch type 的成本交叉點、Spot 與 Savings Plans 的折扣機制、task 規格的 rightsizing 方法,以及何時該切回 EC2
- NAT Gateway
讓 private subnet 的資源主動對外連線、同時不被外部入站觸及的網路地址轉換服務
- 斷網環境的套件與容器映像 Registry
斷網環境裡每一個 apt install、npm install、docker pull 都需要內部來源 — 用 Nexus Repository 統一管理套件、用 Harbor 管理容器映像、建立定期搬運與安全掃描的更新週期
- OIDC 聯合
讓 CI/CD 平台用短期 token 取代長期 access key 存取雲端資源的身分聯合機制
- 斷網環境的基礎服務:DNS、NTP、CA 與 Secret Management
斷網環境裡其他所有服務的前提——內部 DNS 做名稱解析、NTP 做時間同步、內部 CA 簽發 TLS 憑證、Vault 管理機密值。這四個服務先部署、其他才能跟上。
- 環境分離
把同一套基礎設施定義複製成多份隔離的執行實例,各有獨立 state 與故障半徑
- 斷網環境的資安與權限控管
斷網環境的威脅模型從外部攻擊轉向內部人員與供應鏈——實體安全、離線認證、稽核日誌、更新延遲窗口、跨邊界傳輸審查各有專屬的操作方式
- CloudTrail
AWS 的 API 層稽核日誌服務,記錄誰在什麼時候對什麼資源做了什麼操作
- 無 SSH 環境的資料庫備份與變更管理
在只有 phpMyAdmin 或有限遠端連線的無 SSH 環境裡,怎麼建立可靠的資料庫備份策略、schema 變更紀律與還原演練流程
- ECS
AWS Elastic Container Service — 受管的容器編排服務,用 task definition 描述容器配置、由平台負責排程與健康管理
- 程式碼版控與 FTP 部署紀律
無 SSH 環境的 PHP 專案的程式碼怎麼從 FTP 拉回來建 Git repo、設定檔怎麼分離、FTP 部署怎麼建立可追蹤的流程、以及怎麼用 CI 取代手動上傳
- ALB
Application Load Balancer — 流量進入系統的第一站,負責 listener 路由、健康檢查與 TLS 終結
- Legacy PHP 的安全盤點
接手 legacy PHP 專案後的系統性安全審查:credential 掃描、PHP 版本風險、常見漏洞模式的 grep 偵測、.htaccess 防線、檔案權限、外部依賴與掃描工具
- CIDR(Classless Inter-Domain Routing)
用前綴長度表示 IP 地址範圍的表示法,決定 VPC 與 subnet 的地址空間大小
- 無 SSH 環境的監控與告警
無 SSH 環境沒辦法裝 agent、沒辦法串 log pipeline,用外部 HTTP check、錯誤追蹤服務與效能基線建立最低成本的監控能力
- IAM(Identity and Access Management)
雲端平台的授權系統,回答「某個身分能不能對某個資源做某件事」
- Route Table
掛在 subnet 上的流量轉送規則,決定封包離開 subnet 後往哪走
- SCP (Service Control Policy)
AWS Organizations 層級的權限天花板,套用到 OU 後連管理員都越不過
- Remote State Backend
把 Terraform state 從本地搬到團隊共享儲存的機制,同時滿足持久保存、並行鎖與敏感值保護
- Trust Policy
IAM role 的信任關係設定,規定哪個身分被允許 assume 這個 role
- Deletion Protection
雲端平台提供的防誤刪機制,開啟後刪除操作需要先顯式關閉保護才能執行
- checkov
開源的 IaC 靜態安全掃描工具,在不建立資源的前提下比對已知的壞寫法與安全反模式
- State 修復與清理
接手的 Terraform state 損壞、有 orphaned entry、或需要搬遷時,怎麼診斷問題、安全操作、以及從錯誤中回復
- Drift 分類處理指南
接手半套 IaC 環境時,怎麼讀 plan 輸出分類 drift、判斷保留還是回退、處理 stateful 資源的高風險漂移,以及批次收斂的工作流
- Fargate
AWS ECS 的無伺服器執行模式,由 AWS 代管運算實例,不需要管 EC2 capacity 或 AMI 更新
- phpMyAdmin
Web 介面的 MySQL / MariaDB 管理工具,透過瀏覽器操作資料庫
- Unmanaged Resource 批次 Import 工作流
把 Terraform state 外的雲端資源有系統地納入 IaC 管理:優先序判斷、import block 語法、generated HCL 的 review 要點、批次策略與常見失敗處理
- FileZilla
跨平台的 FTP/SFTP client,提供目錄同步瀏覽和檔案比較功能
- 兩套真相並存的過渡期操作
部分資源在 IaC、部分在手動時,怎麼安全操作避免比全手動更危險,以及怎麼縮短這個過渡期
- cPanel
Web 主機管理面板,提供 PHP 版本切換、cron、email、SSL、備份等功能的圖形介面
- .htaccess
Apache Web Server 的目錄層級設定檔,控制 URL rewrite、存取權限、PHP 設定覆寫與安全標頭
- .env
存放環境變數的純文字檔案,把機密值從程式碼分離出來
- php.ini / .user.ini
PHP 的執行期設定檔,控制記憶體上限、上傳大小、錯誤報告等 runtime 行為
- DNS
Domain Name System — 把域名轉成 IP 位址的系統,以及 A record、CNAME、NS、TTL 的角色
- SSL / TLS
加密 client 與 server 之間通訊的協定,讓 HTTPS 成為可能。TLS 是 SSL 的後繼者,但 SSL 憑證的稱呼仍廣泛使用
- SSH
Secure Shell — 加密的遠端 shell 連線,有 SSH 等於有 CLI 工具鏈,沒有就只能靠 FTP 和 web 面板
- FTP
File Transfer Protocol — 檔案傳輸協定,無 SSH 環境的主要檔案管理方式。SFTP 和 FTPS 是其加密變體
- cron
Unix/Linux 的排程工作系統,按時間表自動執行指令。接手維運時要盤點所有 cron job
- nginx
高效能 Web Server 與 Reverse Proxy,以集中設定檔取代 Apache 的 .htaccess 分散設定
- MySQL
最廣泛使用的開源關聯式資料庫。MariaDB 是其社群分支。大版本升級(5.7→8.0)有認證方式和查詢行為的 breaking change
- RDS
AWS 的受管關聯式資料庫服務,代管備份、更新與 failover,讓使用者專注在 schema 和查詢
- S3
AWS 的物件儲存服務,用 bucket + key 組織檔案,提供 versioning、加密、lifecycle 與存取控制
- EC2
AWS 的虛擬機器服務,提供可隨時啟停的運算實例,組成包含 AMI、instance type、EBS、security group 與 IAM role
- EBS
掛在 EC2 instance 上的持久化區塊儲存(虛擬磁碟),支援 snapshot 快照備份,跟 instance 獨立生命週期
- HCL
Terraform 使用的宣告式設定語言,用 resource block 描述基礎設施的目標狀態,工具負責收斂差異
- terraform plan / apply
IaC 的兩個核心操作:plan 只看不動(產出差異報告)、apply 真的動(執行差異)
- AMI
EC2 instance 的作業系統映像快照,包含 OS、軟體、設定與磁碟內容,從 AMI 開出的 instance 跟原始狀態一樣
- Composer
PHP 的套件管理工具,管理專案的第三方依賴、版本鎖定與安全掃描
- mysqldump
MySQL / MariaDB 的 CLI 備份工具,把資料庫匯出成 SQL 語句的純文字檔
- Reverse Proxy
代替後端服務接收外部請求、再轉發到內部服務的中介層,承擔 TLS 終結、負載平衡與路由分流
- Database Migration
用版本化的 SQL 腳本管理資料庫 schema 的變更歷程,讓 schema 變更可追蹤、可重現、可回退
- Prometheus
開源的 metrics 收集與告警系統,用 pull 模式從 target 拉取指標,斷網環境的預設監控方案
- Grafana
開源的監控視覺化平台,從 Prometheus / Loki / Elasticsearch 等資料源建立 dashboard
- HashiCorp Vault
機密管理系統,集中存放密碼、API key、TLS 私鑰,提供存取控制、稽核和自動輪替
- Harbor
開源的 container image registry,支援映像掃描、RBAC、複製,斷網環境取代 Docker Hub 的方案
- Helm
Kubernetes 的套件管理工具,用 chart 打包一組 K8s 資源的部署定義
- 給非工程背景決策者的 infra 說明
從管理視角解釋基礎設施在解決什麼營運問題、不做的代價、出事怎麼處理,讓參與資源決策的人能判斷投入的優先級
- 雲端部署裡已經存在的 infra 元件
VPC、security group、IAM、儲存 — 這些元件在任何雲端部署裡都已經在運作,差別在於有沒有被有意識地管理