Skip to content

Instantly share code, notes, and snippets.

View JenHsuan's full-sized avatar

Sean Hsieh JenHsuan

View GitHub Profile
@JenHsuan
JenHsuan / 2025.md
Last active December 5, 2025 06:04
  • Meticulous libraries in Angular and React

    • ES Lint in Angular
    • xState
    • React query
  • Containerized technology (practice K8S in home lab)

  • Cloud platform (AWS)

  • Django/DRF

  • Software skills like presentation

Automatic backups Manual DB snapshots
Who trigger Daily full backup automatically Manually triggered by the user
Retention 0 ~ 35 As long as you want
Support region single multiple
sam sync sam build sam deploy cloudformation package cloudformation deploy
deploy incremental changes o x x x x
Resolve dependencies depends (--build) o x x x
Package artifact o o x o x
Upload artifact to S3 o x o o x
Turn template to CF stack depends x o x o
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "alayman-mcp-server",
"main": "src/index.ts",
"compatibility_date": "2025-01-29",
"compatibility_flags": ["nodejs_compat"],
"migrations": [
{
"new_sqlite_classes": ["AlaymanMCP"],
"tag": "v1"
{
"name": "alayman-mcp-server",
"version": "1.0.0",
"description": "MCP server for fetching articles from alayman.io",
"main": "src/index.ts",
"type": "module",
"private": true,
"scripts": {
"dev": "wrangler dev",
"deploy": "wrangler deploy",
@JenHsuan
JenHsuan / index.ts
Last active November 30, 2025 03:48
import { McpAgent } from "agents/mcp";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
// Article interface based on the API structure
interface Article {
id: number;
title: string;
subtitle: string;
image: string;
@JenHsuan
JenHsuan / kms.csv
Last active December 5, 2025 11:13
AWS-owned key AWS-managed key (CMK) customer-managed key (CMK) Customer-managed key imported
Is key free? o x x ($1/month) x ($1/month)
Does AWS own the key? o x x x
Does AWS manage the key? o o x x
Auto Key rotation? auto auto auto & on-demand manual
Mandanates HTTPS optional optional optional optional
CloudTrail Audit Logs x o o o
Can be controlled by the user? x x o o
Status Code ELB Nginx API Gateway
500 Internal Server Error ELB to server communication error Upstream server returns 500 Lambda or server integration error
502 Bad Gateway Server return connection reset/ malformed response proxy_pass server returns incorrect response server return incompatible output
503 Service Unavailable No avaliable targets/health check failed Upstream down/max_clients No avaliable server
504 Gateway Timeout server response timeout proxy_pass server time out server time out
LSI GSI
Across partitions x o
Key Alternatively Sort key (same Partition key as that of base table) Alternatively Primary key (hash or hash + range) and sort key
Created Time Must be defined at table creation time Can be added/modified after table creation
Read/Write Support Support Eventual consistency/Strongly consistency Only support Eventual consistency
RCU & WCU Use the RCU & WCU of the main table Must provision RCU & WCU for the index
Throttling consideration No special consideration The provisioned WCU for a GSI should be equal or greater than the WCU of the base table
Attribute Projections some or all attributes of the base table some or all attributes of the base table
Limitation Up to 5 LSI per table Up to 20 GSI per table
All at once Rolling Rolling with batch Immutable taffic splitting Blue/green
Failed Deployment Down time Single batch out of service Single batch out of service Minimal Minimal Minimal
Capacity During Deployment 0 -> 100% decrease gradually 100% 100% 100% 100%
Downtime 6 3 2 1 1 1
Deployment speed 6 4 3 4 2 4
Time Cost 1 2 4 3 5 4
Money Cost 1 2 3 4 4 ~ 4.5 5
DNS Change x x x x x o
Rollback Manual redeploy Manual redeploy Manual redeploy Terminate new instances Reroute traffics Swap URL
Rollback speed 3 4 4 6 5 6