Workaround for AWS Grafana alerting

Workaround for AWS Grafana alerting

POSTED BY   Chris
2023 年 8 月 3 日

最近在公司有一個比較大的任務,就是負責處理 Datadog to Prometheus Migration,既然使用了 AWS managed Service for Prometheus (AMP),就免不了會用 AWS managed Service for Grafana (AMG),然後 ...在 AMG 就被雷到(淚) 先簡述一下問題,這問題其實滿雞助,就是如果是用 AWS Grafan...

AWS VPC Endpoint 使用場景

AWS VPC Endpoint 使用場景

POSTED BY   Chris
2022 年 3 月 14 日

VPC Endpoint 之前總是看過觀念和文件,沒實地 hands-on 過,這次剛好有同事提到相關問題,就趁著這次好好操作一次並釐清一些概念,順手記錄下來,不免俗的,一樣會用 AWS CDK 搭配觀看 AWS Management Console 來理解   為何需要 AWS VPC Endpoint ? 個人認為最主要有兩個原因,一個是安全性、一個是節費,安全性的意思是如果 applicat...

CDK 指定 Physical names 運作方式

CDK 指定 Physical names 運作方式

POSTED BY   Chris
2021 年 12 月 4 日

有看過 CDK 官方文件或 CDK best practice 文件的人大概都知道,當我們在開發 CDK 時,任何資源都盡量不要使用 physical name,而為什麼不這樣做的原因,在文件上的解釋雖然滿清楚,但具體上怎麼運作的還是不清楚,相信剛看完文件也可能會一知半解,所以這篇來講一下具體底層運作的方式   原理概述 CDK 底層都是 CloudFormation 在運作,Physical n...

CDK Pipelines – 專為 CDK 打造的  CI/CD 利器

CDK Pipelines – 專為 CDK 打造的 CI/CD 利器

POSTED BY   Chris
2021 年 11 月 7 日

在這 CI/CD 工具多如繁星的現在,常常會造成不知道要選擇哪一套工具,所以了解工具的特點及優勢就顯的重要,而今年正式 GA 的 CDK Pipelines,到底有什麼特點及優勢呢?使用場景是什麼?真實環境使用上如何使用以及要注意什麼?這些都是我剛接觸 CDK Pipelines 會問自己的問題,先來講一下特點及優勢部分   特點及優勢 CDK Pipelines 是屬於 high level 的...

gitpod vs codespace 開發環境上雲大比拼

gitpod vs codespace 開發環境上雲大比拼

POSTED BY   Chris
2021 年 9 月 23 日

近十年來 cloud service 大行其道,發展至今在一般公司內對外的服務,或多或少都有用到 cloud,這大大的改變了 IT 人員的習慣,原本凡事要先評估地端資源、購買 Server 等等,如今只要在 cloud provider 所提供的 web UI or CLI Tools,輕鬆點一點和下幾個指令,立即有可用的 Server or serverless computing,而且是 on...

使用 AWS CDK 實作 CodeDeploy Blue/Green、Canary 部署

使用 AWS CDK 實作 CodeDeploy Blue/Green、Canary 部署

POSTED BY   Chris
2021 年 8 月 23 日

原理和流程的部分在進階持續部署 – 使用 Blue/Green、Canary 降低發版風險已說明過,這篇來說明使用 AWS CDK 的實作方式   概述 此篇最主要介紹 ECS on Fargate 中使用 CodePipeline 整合 CodeDeploy 的方式來實現 Blue/Green or Canary 的部署方式 AWS CodePipeline 可以整合 CodeDeploy 一起...

進階持續部署 – 使用 Blue/Green、Canary 降低發版風險

進階持續部署 – 使用 Blue/Green、Canary 降低發版風險

POSTED BY   Chris
2021 年 8 月 22 日

繼之前寫過的一篇 持續部署 – 使用 ECS Rolling Update 實現 zero downtime 後,這次來介紹更進階的藍綠部署(Blue/Green) 和金絲雀部署 (Canary),Canary 算是 blue/green 的延伸應用,因為是基於 Blue/Green 的機制下去實現的,相較於 Rolling Update 的方式,Blue/Green 的方式在部署上更具備彈性,因...

AWS NAT Gateway 佈局和設定

AWS NAT Gateway 佈局和設定

POSTED BY   Chris
2021 年 8 月 3 日
AWS

一般在個人 AWS 測試帳號中,應該很少會長期去開啟 AWS NAT Gateway,因為價格滿貴,開啟一個每月就要價大約 1245 台幣(以目前匯率來計算),而且 AWS NAT Gateway 並非在 free tier 的方案裡面,也就是如果要測試的話,都是會產生費用的,這部分就要特定小心 而一般在企業中,正式 production 環境中如果 Lambda 需要掛上 VPC 連線非 AWS...

撰寫 Python CLI 工具並發佈到 PyPI

撰寫 Python CLI 工具並發佈到 PyPI

POSTED BY   Chris
2021 年 7 月 13 日

Python 除了在 ML 領域很紅外,在 DevOps 工具上也是滿多人用的,如很有名的 Ansible,就是以 Python 語言撰寫,再者如 AWS CLI,也是 Python 撰寫,所以這篇來介紹一下 CLI 套件工具,並且說明如何上傳到 pypi 後,經由 pip install 後,就可以有現成的 CLI 可以使用了   Python CLI 工具 Python CLI 工具非常的多,...

持續部署 – 使用 ECS Rolling Update 實現 zero downtime

持續部署 – 使用 ECS Rolling Update 實現 zero downtime

POSTED BY   Chris
2021 年 7 月 10 日

在 container 大行其道的現今,containerized application 已經很常見的應用在開發環境和線上環境之中,而這篇來介紹一下, ECS Cluster 中,使用 ECS Service 搭配 ELB,用 Rolling update 的部署方式來達成不停機的更新,而更靈活的部署方式,如 Blue / Green 、Canary 的部署方式,AWS CodeDeploy 也...

案例分享 – 原有專案導入 CI / CD

案例分享 – 原有專案導入 CI / CD

POSTED BY   Chris
2021 年 6 月 21 日

很多專案行之有年,在還未導入 CI / CD 時,總是需要工程師自己手動去做測試和部署,以 Lamba 為例,就需要先手動把 lambda code package 成 s3 zip,再去 AWS Management Console 中的 Lambda 操作,把 s3 zip 更新上去後,再由 Lambda 操作介面去測試,而這種狀況要導入 CI / CD 的機制,可以有很多種方式,這邊就來分享...

Dockerfile 撰寫時注意事項

Dockerfile 撰寫時注意事項

POSTED BY   Chris
2021 年 6 月 13 日

隨著近幾年 Container 時代的來臨,撰寫 Dockerfile 相信大家都不陌生,但有時候還是難免會忘記一些規則,所以在這邊記錄一下,最主要提醒自己,也能分享給看到這此文章的朋友   ARG 和 ENV 依實際使用經驗,大致上有幾個重點說明 ARG 是在 docker build 階段時使用,而 ENV 是在 docker run 階段時使用 ARG 因為只在 build 階段生效,而 D...

使用 CDK 打造 Docker Image 建置 Lambda

使用 CDK 打造 Docker Image 建置 Lambda

POSTED BY   Chris
2021 年 5 月 17 日

從去年底 AWS re:invent 2020 公佈 lambda 支持使用 docker image 建置,這個算是大消息,也是一個突破,一來 docker image 支持上限到 10G,二來在 deploy 之前,可以在本地啟動 docker 來測試 lambda,相當吸引人,可以參考一下這篇 AWS Blog Post ,再來大概介紹一下 CDK 怎麼建置   CDK IaC 建置 一般 ...

CDK 使用 ssm parameter 注意事項

CDK 使用 ssm parameter 注意事項

POSTED BY   Chris
2021 年 5 月 7 日
AWS, CDK

最近使用 CDK 常遇到有一個情境,就是開發 Construct 時,會使用到 lambda,然後 lambda 上需要有一些環境變數,而這些環境變數中不乏有敏感資料,如 GitHub Token、Slack token 等...,而 CDK 最終是 synth 成 CloudFormation,所以最終生成的 CloudFormation 中就要注意會不會曝露一些敏感資料,尤其在 GitHub ...

Projen 初探 – 打造 CDK 的利器

Projen 初探 – 打造 CDK 的利器

POSTED BY   Chris
2021 年 5 月 3 日

圖片來源: https://github.com/projen/projen/blob/main/logo/projen.svg 在開發程式時,不管開發何種程式語言,第一件事就是要配置開發環境,有些程式語言的框架會提供 scaffold 來下簡單的 cli 指令後,就能自動建立專案該有最基本的設定檔、專案結構目錄、檔案等,那 porjen 最不一樣的,就是它並非一次性 (one-off) 的自動生...