AWS 跨帳號權限需要透過 Cross Account Roles 的方式來做,可以達到權責分離,不需要每個人在每個 AWS Account 開 IAM 帳號,達到管理便利的平衡。
上次 Migrate 2.x to 3.2 失敗,這次利用假期再試一次 migrate 2.x to 3.3.x。
整理開發 CloudFormation Template 和 Debug Stack 遇到的問題。。。
接著整理 EC2 Auto Scaling 中很重要的觀念:Lifecycle and Hooks。
EC2 Auto Scaling 系列文章
昨天去參加 Google 第一次在台灣辦的活動 Google Cloud onBoard,看到很多讓人興奮的東西。
花一點時間玩了 GCP 的 Compute, Storage, Networking 部分,順便跟 AWS 比較。
繼續整理 CloudFormation Stack 的筆記。主要包含 Stack 工作流程、Stack Status、Update Stack。
上一篇整理 CloudFormation Template Anatomy,本文整理很重要的概念:Resource Types、Attributes,包含以下:
- Resource Types of CloudFormation
- AWS::CloudFormation::Init
- AWS::CloudFormation::WaitCondition
- AWS::CloudFormation::WaitConditionHandle
- AWS::CloudFormation::Stack
- AWS::CloudFormation::Interface
- Resource Attributes:
- CreationPolicy
- DeletionPolicy
- DependsOn
- UpdatePolicy
本文整理 CloudFormation 整理官方文件學習筆記,主要是 Template Anatomy (結構) 的部分。
CloudFormation 是 AWS Infrastructure as code (IaS) 的實踐,整理一系列學習筆記與心得。基本概念、生命週期、Debug 技巧等 ….
這幾年 DevOps 盛行,大家都在討論,然後都在喊要 CI 、要自動化測試 ….
我從 Software Developer, Software QA (SQA), System Operation / Administrator 三種角色 / 職務都走過,做了幾年的 System Operation / Administrator 之後,最近開始有機會回到 Developer 身份,專注 Microservice 與架構,反思測試的重要性感覺又更深刻。
Software QA 的職能條件 有過去經驗的分享。
整理一下過去做 SQA Manager 時的 Test Strategies (測試執行策略) 與心得。
- 本文整理的資訊,大概只是
目錄、基本章法,有空再把內容展開,整理出完整的分享。
20230523 更新:本文內容部分收錄在 共同著作《軟體測試實務》 第一冊 第一章之中,歡迎大家彭場指導。
整理一些不錯的 Redmine Plugins and Themes。
產品 / 專案進行中,經常會有 新功能需求,有時候是來自老闆的突發奇想、或者市場反饋、或內部發想。這些資訊的流通,在組織內部是很重要的,畢竟大家要了解『需求』的來龍去脈之後,才能設計出有意義的功能,打到重點,否則會有越來越多溝通成本,所以 需求管理 (Requirements Management) 我覺得是件非常重要的事情。
不過現實跟理想總是有差距的。
本篇整理 CloudWatch 常見問答。
這是個我心裡埋藏已久的問號: Service Using Single IP in Global … 怎麼可能 @@?
但是看到 GCP 的文件說 “Global Load Balancing with Single Anycast IP“, 他是 Google ,所以我相信了 ….
心裡會這麼疑惑是因為很久以前在研究 ELB 原理 時,就一直在猜背後應該是靠 ASG + EC2 組出來的,然後每個 EC2 都有 EIP,所以 IP 不會是固定 …. bala bala … 認知上,實體的 Load Balancing 通常會是一台,但是通常也很貴。軟體的 LB 通常就是用 Auto Scaling 實作,而且很難跨地區。 ….
整理做系統效能測試的時候,如何利用 CloudWatch 作分析。
整理如何利用 CloudWatch 做 Log 分析。
本文整理 CloudWatch 最主要的應用:監控服務 與 告警系統 的建置。
整理 CloudWatch Metrics 的相關資料。
CloudWatch 是學習 AWS 之後,除了 EC2、S3 之外,最重要的 Services 之一,本文整理 CloudWatch 主要的功能介紹。
把 AP 的 Log 從機器送到 Log 服務,一直以來都是很重要的課題,這樣功能的角色稱為 Log Shipper。CloudWatch 提供的第一個版本的 Log Shipper 服務:awslogs
CloudWatch 是 AWS 的全託管 (Managed Service) 監控服務,在眾多 AWS 服務預設都會使用,了解他的基本概念與應用,在學習 AWS 服務中是相當重要的。
在 DevOps Taiwan Group 看到有人分享這篇文章:Microservice Prerequisites,其中的重點有三:
- Rapid Provisioning
- Basic Monitoring
- Rapid Application Deployment
剛好最近工作上這些事都有關係,整理關於第一個 Rapid Provisioning 的心得。
Updated 2023/07/19: 本文收錄在個人著作 《SRE 實踐與開發平台指南》 - 2023/08 上市
整理 AWS 很重要的核心功能之一:EC2 Auto Scaling 筆記,這篇整理核心功能以及概念。
AWS 另一個類似發表於 2018/01/16 的服務叫做 AWS Auto Scaling 則是超集 (Superset) 整合服務,可以管理 EC2 Auto Scaling Groups、EC2 Spot Fleet Requests、ECS、DynamoDB、Auroa … 等服務。本文介紹的只是其中一個子集。
去年 2016 re:Invent 宣布 IPv6 的訊息,當時只有在 ohio region 可以使用,現在已經可以在全部的 region 還有相關的服務 GA 了!
Context Switch 中文翻譯成環境切換,wikipedia 的解釋:
是一個儲存和重建 CPU 的狀態 (內文),因此令多個進程 (process) 可以分享單一 CPU 資源的計算過程。
把它放在人身上,就是一心多用。Context Switch 的成本很大,五顆球同時丟給一個人,最後可能只接著一顆,也可能一顆都接不住。所以創造能「專注」的環境很重要,不管是在工作環境,還是個人的學習。
『五顆球同時丟給一個人』這段是出自 “Steve Jobs 自傳” 某一章,不過我找不到原始段落了,有找到的人麻煩跟我說,感激不盡!
Updated 2023/07/19: 本文部分收錄在個人著作 《SRE 實踐與開發平台指南》 - 2023/08 上市
Redmine 用 Ruby on Rail (RoR) 開發的專案管理、團隊協同合作、議題管理工具。
我一直很想把他帶入公司,因為覺得每家公司應該都有這樣的協作平台,他可以扮演組織內部重要的潤滑劑,同時減少 溝通成本。
不過在介紹 Redmine 之前,先整理一些問題:
- 專案管理是什麼?
- 專案管理要呈現什麼?
- 協同合作工具在團隊裡是阻力還是助力?
- 有了這個工具能為組織帶來什麼好處?
最近在幫公司規劃 VPC,遇到以下的狀況與需求的組合:Cross Regions、Multiple VPCs、Multiple AWS Accounts、PCI DSS 的需求,另外畫了一個 VPC 給 Vault (保險櫃) 單獨使用,加上因為開發環境與正式環境的 AWS 帳號,形成相當複雜的環境。整理有以下要考慮:
- VPC CIDR 的規劃
- Multiple VPCs
- VPC for PCI DSS Vault
- 如果有其他 Cloud, e.g. Azure, GCP, 也要考慮
- Routing, Connections, and Network Topologies:
- VPC between different Region:BGP or Static Route
- Site to Site VPN, including HA and Failover
- VPC to On-Premises: VPN and Transit VPC
- VPC to VPC: VPC Peering
- Routing Policy
- 控管問題: Network ACL 以及 Security Group 的規範
- 異動管理 (Change Management)
- IPv6 與 IPv4 的管理規範
- 異動流程
- 多個 AWS Account 的管理
- 形成 AWS IAM 多帳號的管理問題
- IAM Role and Policy in Cross Account 的管理
AWS re:Invent 有個 Session 專門在說明這樣的需求:From One to Many: Evolving VPC Design (ARC302), Slideshare,整理一些重點:
AWS 終於支援 IPv6,目前只在新的 Region - Ohio (us-east-2) 可以使用。
在 IPv6 in the Cloud: Virtual Private Cloud Deep Dive (NET307), Slideshare 有詳細說明。整理一些筆記。
AWS 在 2015 年十月在 Blog 發表一篇標題:Are You Well-Architected?,描述怎樣是一個好的架構應該考慮的。文章標題引用知名傳奇吉他大師 Jimi Hendrix 的專輯標題 Are You Experienced?。這篇後來變成 AWS Well-Architected Framework 的源頭。
AWS Well-Architected Framework 以下簡解成 WA
EC2 Run Command 是用來執行遠端指令,管理 EC2 Instance、或者自己的 VM (on-primises) ,可以執行像是 Unix Scripts 和 Windows PowerShell 等。
SSM 全名是 Amazon EC2 Simple Systems Manager (SSM),主要就是用來控管 EC2 的代理程式,透過他可以自動化很多維運任務,常見的像是 Windows Update、SSM Agent Upgrade、Remote Script (bash or powershell),也可以做像是 CodeDeploy 的事情,然後用來做 CD。
EC2 Run Command & SSM Agent 不會另外收費。
感覺跟以前我在寫 Automation Test Framework 用的 STAF 概念類似,可以作為 Ops as Code 的底層架構。
我自己有好幾個 AWS Accounts 作為學習用途,但因為是自己的帳號,所以在 Security Groups 和 Billing 會特別管理。
我開了一台 EC2 Instance 在 Public Subnet,為了避免不必要的安全性問題,加上現在居住的環境不是固定 IP (每天都會變動),所以寫了一隻小程式,透過 Raspberry Pi 每天自動更新指定的 Security Group,在安全與便利取得平衡。
將公司在 AWS 上的 NAT Instance 換成 NAT Gateway,事前評估、驗證、溝通與執行紀錄。
AWS 範圍很大,有系統的學習是必要的。就像以前學音樂一樣,從各個面向整理 學習地圖,試著拼這張圖,過程中就可以知道自己哪裡還有缺,把缺的補上 (擁有技能)、把圖拼出來 (擁有知識)、把他們連結 (Connected and Linked) 起來 (產生智慧)、用他們創造 (產生創意)。
底下這張 mindmap 則是我自己的分類、重要性、以及學習的進度狀況,用以看到全貌:

以下依照 AWS Services 的分類、Solution … 等,整理過去的心得筆記。
新聞來源:AWS CloudFormation Update – YAML, Cross-Stack References, Simplified Substitution
有三個很重大的更新:
- YAML Support: 主要的新功能,可以用 YAML 寫 Template。CloudFormation 的 Function 則是用
!GetAtt表示。 - Cross Stack References: 可以用
ImportValuefunction 參考其他 stack 的變數。被參照的 stack reference 就不能刪除。 - Simplified Substitution: 可以用
This is ${VarName}的方式做字串取代。- 原本要都要透過
Fn:Join做字串串接,Template 會變得很難閱讀。 - 現在可以透過這樣的方式:
!Sub | "This is ${VarName}" - 很多地方需要使用
userdata啟動 ec2 時,需要把整段 bash 放入,透過這個新的表示方式就很容易閱讀
- 原本要都要透過



