Skip to content

Commit a8074d7

Browse files
committed
feat: add aws
1 parent b192dbd commit a8074d7

1 file changed

Lines changed: 66 additions & 7 deletions

File tree

website/cicd/aws/aws.qmd

Lines changed: 66 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,67 +12,126 @@ Amazon Web Services(AWS)是一個由 Amazon 提供的雲端運算平台,
1212
## AWS 基礎設施
1313
### Region & AZ
1414

15-
AWS 的基礎設施由多個 `Region(區域)``Availability Zone(可用區)` 組成。
16-
Region 是地理上的資料中心區域(例如 ap-northeast-1 東京、us-east-1 維吉尼亞),每個 Region 彼此獨立,可用於資料隔離與降低延遲。
15+
AWS 的基礎設施由多個 `Region(區域)``Availability Zone(可用區)` 組成。
1716

18-
每個 Region 內包含多個 Availability Zone(AZ),每個 AZ 由一個或多個(最多6個)獨立資料中心構成,具備獨立的電力、網路與冷卻系統。AZ 之間透過高速網路連接,但彼此隔離,可提升系統的高可用性與容錯能力。
17+
`Region` 是地理上的資料中心區域(例如 ap-northeast-1 東京、us-east-1 維吉尼亞),每個 Region 彼此獨立,可用於資料隔離與降低延遲。
18+
19+
每個 Region 內包含多個 `Availability Zone(AZ)`,每個 AZ 由一個或多個(最多6個)獨立資料中心構成,具備獨立的電力、網路與冷卻系統。AZ 之間透過高速網路連接,但彼此隔離,可提升系統的高可用性與容錯能力。
1920

2021
在實務應用中,服務通常會部署於多個 AZ,以避免單一資料中心故障導致系統中斷;而跨 Region 部署則可進一步提升災難復原能力與全球服務效能。
2122

2223
## 如何使用 AWS
2324
### AWS CLI
2425

25-
::: {.callout-tip collapse="true"}
26-
## 如何獲取 access key
27-
28-
:::
26+
AWS 提供的`命令列工具`,讓使用者可透過終端機直接操作各種 AWS 服務(如 EC2、S3、IAM),用於自動化部署、資源管理與腳本化操作。
2927

3028
### AWS SDK
3129

30+
AWS 提供的`程式開發套件`,讓開發者可以在應用程式中(如 Python、Java、JavaScript)直接呼叫 AWS 服務 API(如 EC2、S3、DynamoDB),用於建構雲端應用與服務整合。
31+
3232
### AWS cloudshell
3333

34+
由 AWS 提供的`瀏覽器內建終端機環境`,已預先安裝 AWS CLI 並自動配置使用者憑證,讓你無需本地安裝即可直接管理 AWS 資源。
35+
36+
::: {.callout-important}
37+
適合臨時操作與學習使用,但不建議用於長期自動化或正式部署流程;正式環境應使用本地 CLI、CI/CD pipeline 或 Infrastructure as Code 工具(如 CloudFormation / Terraform)。
38+
:::
39+
3440
## 如何設定預算通知
3541
### AWS budget
3642

43+
成本管理工具,用來設定預算(如每月費用或用量),並在接近或超過預算時發送通知,協助監控與控制雲端支出。
44+
3745
---
3846

3947
# IAM
4048

4149
## IAM users
4250

51+
提供的身分管理機制,用來建立`個別使用者帳號`,並透過權限政策(Policy)控制其可存取的 AWS 資源與操作。
52+
4353
## IAM groups
4454

55+
用來將`多個 IAM Users` 集中管理的群組機制,透過將權限政策套用在群組上,讓使用者自動繼承相同權限。
56+
57+
::: {.callout-important}
58+
建議以角色或職責(如 Admin、Developer)建立群組,而非逐一指派使用者權限,以提升管理效率與一致性。
59+
:::
60+
4561
## IAM policies
4662

63+
定義在 AWS 中 `允許或拒絕存取資源的權限``文件(JSON 格式)`,可套用於 User、Group 或 Role。
64+
65+
::: {.callout-important}
66+
應遵循 最小權限原則(Least Privilege),只授予必要操作權限,避免使用過度寬鬆的 * 權限。
67+
:::
68+
4769
## IAM role
4870

71+
一種不屬於特定使用者的身分,`允許服務或使用者「暫時取得權限」``存取 AWS 資源`(透過 STS)。
72+
73+
::: {.callout-important}
74+
應優先使用 Role(如 EC2 Role、Lambda Role)取代長期金鑰(Access Key),以提升安全性並避免憑證外洩風險。
75+
:::
76+
4977
## IAM security tools
5078

79+
一組用於強化帳號與權限安全的工具,例如 IAM Access Analyzer、Credential Report、Password Policy 等。
80+
5181
## MFA
5282

83+
`Multi-Factor Authentication 多重驗證機制`,在登入時除了密碼外,需額外提供一次性驗證碼(如手機 App),以提升帳號安全性。
84+
5385
---
5486

5587
# EC2
5688

5789
## EC2 instance
5890

91+
虛擬伺服器(VM),可用於部署應用程式、網站或運算任務,並可依需求調整 CPU、記憶體與儲存資源。
92+
5993
## Security group
6094

95+
一種作用在 `EC2 上的虛擬防火牆`,用來控制進出流量(inbound / outbound),僅允許符合規則的連線。
96+
6197
## SSH EC2
6298

99+
`透過 SSH(Secure Shell)`協定遠端`登入 EC2 instance`(通常為 Linux),以進行系統管理與部署操作。
100+
63101
## Spot instance
64102

103+
一種使用 AWS 閒置運算資源的`低價 EC2`,價格通常可比 On-Demand 便宜 70–90%,但`可能隨時被中斷`
104+
65105
## Private IP & Public IP
66106

107+
EC2 會同時擁有私有 IP(VPC 內通訊)與公有 IP(對外網路),用於區分內部與外部連線。
108+
67109
::: {.callout-tip collapse="true"}
68110
## IPv4 & IPv6
69111

112+
IPv4 為傳統 32-bit 位址(如 192.168.x.x),數量有限;IPv6 為 128-bit 位址(如 2001:db8::),可提供幾乎無限的 IP 空間。
70113
:::
71114

72115
## Elastic IP
73116

117+
一個可靜態綁定與快速重新指派的公用 IPv4 位址,用來確保服務在實例重啟或更換時仍能維持固定對外 IP,一個帳號最多 5 個。
118+
119+
::: {.callout-important}
120+
通常不建議使用,被視為不佳的架構(tight coupling)。
121+
應優先使用 Load Balancer(如 ALB/NLB) 或 DNS(如 Route 53) 來實現高可用與彈性擴展。
122+
:::
123+
74124
## EC2 Placement groups
75125

126+
控制多個執行個體(instances)在實體硬體上的部署方式,以優化網路延遲、頻寬或提升高可用性的分組機制。
127+
128+
| 類型 | 說明 | 特色 | 適合用途 |
129+
| ------------- | --------------------- | ----------- | ---------------------- |
130+
| **Cluster** | 把 instance 放在同一個機架或區域 | 低延遲、高頻寬 | HPC、即時運算 |
131+
| **Spread** | instance 分散到不同硬體 | 高可用性、避免同時故障 | 關鍵服務、小型系統 |
132+
| **Partition** | 分成多個 partition(不同硬體群) | 隔離風險、可擴展 | 大型分散系統(如 Hadoop、Kafka) |
133+
134+
76135

77136

78137

0 commit comments

Comments
 (0)