Hi I’m Shiun

Backend, DevOps, Cloud and Cats!!!

AWS SAM 101 - 文長圖多!從安裝到部署你的 AWS Lambda

前幾天寫了一篇 Serverless Framework 101,今天就來寫寫 AWS SAM 的教學,這兩個都是用來部署及管理 Serverless 應用的框架,兩者可以說是競爭對手關係!待之後有空再來寫一篇這兩個產品的比較 Prerequisites 註冊 AWS 帳戶 建立 Admin IAM User 建立 access key ID and secret access key 安裝 AWS CLI 配置 AWS credentials 以上詳細內容請查看官方文檔: prerequisites 安裝 AWS SAM CLI Mac 的用戶要注意一下,從 2023/9 開始,AWS 不會在維護 AWS SAM CLI 的 Homebrew Installer 由於我現在是使用 Windows 作業系統的電腦,今天示範如何在 Windows 安裝 AWS SAM CLI Windows 安裝 Windows 安裝相當簡單,只要去官方文檔裡面下載 MSI File,接著無腦的 Next 按按按就裝好了 XD 下載好之後,輸入指令 sam --version 檢查是否安裝成功...

April 29, 2024 · 9 min

Serverless Framework 101 - 輕鬆開發並快速部署你的 AWS Lambda

Serverless Framework 簡介 Serverless Framework 是一個開源的無服務器應用框架,它允許開發者快速建立、部署和管理在 AWS Lambda、Google Cloud Functions、Azure Functions 等雲平台上運行的無服務器應用。這個框架使用一個簡潔的配置文件(通常是 serverless.yml),在其中定義了應用的所有資源和設定,讓開發者可以專注於編寫業務邏輯而非管理基礎設施。 安裝 Serverless Framework Prerequisites: 需要有 npm,若你的電腦沒有 npm,請去下載 NodeJS $ npm install -g serverless 創建一個 Service $ serverless ? What do you want to make? AWS - Node.js - Starter AWS - Node.js - HTTP API AWS - Node.js - Scheduled Task AWS - Node.js - SQS Worker AWS - Node.js - Express API AWS - Node.js - Express API with DynamoDB AWS - Python - Starter > AWS - Python - HTTP API AWS - Python - Scheduled Task AWS - Python - SQS Worker AWS - Python - Flask API AWS - Python - Flask API with DynamoDB Other 輸入指令後透過方向鍵選取你要的 Template,本文將已 AWS - Python HTTP API 示範...

April 28, 2024 · 3 min

AWS Internet Gateway vs NAT Gateway 及使用心得分享

在準備 SAA 的過程中,我覺得最難的部分就是網路,這篇文章主要先介紹一下 IGW 和 NAT Gateway 的差異,接著介紹一些使用心得。 另外分享一下活動,最近我們大使推出了一個「證照陪跑計畫」,可以透過這個活動拿到 50% 折價券、AWS 贈品、考照學習資源以及加入 DC 社群,一直招募到 2024/04/28,有興趣的讀者可以來報名!(報名表單連結) Internet Gateway (IGW) IGW 是一種允許 VPC(Virtual Private Cloud)與 Internet 之間通信的 VPC組件。它能讓 VPC 內的資源如 EC2 Instance 直接訪問 Internet,同時也能讓Internet 上的使用者訪問 VPC 內的資源。 主要功能包括: 雙向通信支持:允許配有 Public IP 的 Instance 訪問 Internet,同時也能接收來自 Internet 的數據。 高度的可靠性和擴展性:確保無需用戶干預即可維持服務的持續可用。 NAT Gateway NAT Gateway 是一種網路地址轉換服務,允許 Private Subnet 中的 Instance 連接到 VPC 外部的服務,同時阻止外部服務主動連接這些實例。這種設計特別適合需要訪問 Internet 但不需要從 Internet 接受直接訪問的敏感或保密環境。 NAT Gateway 價錢: NAT Gateway 收費 = NAT Gateway 開啟時間 USD 0....

April 21, 2024 · 1 min

如何使用 AWS EventBridge 及 Lambda 自動排程調整 AWS Aurora Serverless V2 ACU

EventBridge 簡介 EventBridge Scheduler 是 AWS 在 2022/11 推出的新服務,相較於傳統事件驅動的 EventBridge,新推出的 Scheduler 是時間驅動的一個服務,你可以很輕易的在上面設置一些排程任務去調用 AWS 的其他服務,截至 2024/04/06,官方文件是顯示可以調用 AWS 超過 270 種服務,就我目前使用下來的心得,真的是相當易用! 常見的使用場景: 自動調整服務容量: 如 Amazon ECS 任務的數量或今天要介紹的 Aurora Serverless V2 ACU (今天要示範的) 自動化維護任務: 定時啟動或停止 EC2 Instance,以節省成本或進行系統維護。 SasS 訂閱即將到期通知: 蠻多 SaaS 系統可能會需要在用戶快到期時發送信件通知客戶續訂 架構說明 關於本文,我會預設讀者們對於 AWS 有基本的操作能力和認識,對於一些較瑣碎的動作會省略不講解 本文要教學的是排程每天固定時間,會透過 EventBridge Scheduler 調用 Lambda Function 然後將 Aurora Serverless V2 的 ACU 降低。 關於這個動作,我們其實要拆解成兩個部分: 用 Lambda 去調整 Aurora Serverless v2 ACU 用 EventBridge 去 Trigger Lambda 下圖是從 AWS 官方 Blog 下載下來的架構圖,純示意圖大概讓各位認識 EventBridge 和 Lambda 的配合 整體的步驟大概會是...

April 6, 2024 · 2 min

Docker 初學常見問題 - CMD vs ENTRYPOINT 兩者的差異與範例

前言 很多人在初學 Docker 時,通常都會知道 CMD 和 ENTRYPOINT 基本上可以互換,但又覺得很疑惑既然兩個指令能互換為什麼要提供兩個指令給我們用? 但其實這兩者是有一些差異的,今天這篇文章就是來帶你了解 Dockerfile 中的 CMD 和 ENTRYPOINT CMD vs ENTRYPOINT 我這邊準備了兩個 Dockerfile,分別使用了 CMD 和 ENTRYPOINT FROM ubuntu:22.04 CMD [ "echo", "Hello from CMD" ] FROM ubuntu:22.04 ENTRYPOINT [ "echo", "Hello from ENTRYPOINT" ] 接著 build 了兩個 docker image,分別取名為 docker-cmd, docker-entrypoint $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker-entrypoint latest fa8ea026cc54 12 days ago 77.9MB docker-cmd latest bd73abaca1f4 12 days ago 77.9MB CMD 會被覆寫、ENTRYPOINT 則不會 理應來說我用 docker-cmd 這個 image 啟動一個容器,會打印出 Hello from CMD,執行結果確實也是如此:...

February 7, 2024 · 2 min