✅ Cloud Resume Challenge - Completed
從進入Tech相關領域之後做做大大小小的程式;使用各種線上課程講解網頁設計製作、Python程式語言、資訊安全等等;也在公司的督促下透過獲得證照來加強技術能力。完成 雲端履歷挑戰 - Cloud Resume Challenge 對我來說是個檢驗過去學習歷程的里程碑。
半路出家轉IT的各位應該都還記得決定踏出這一步時的恐懼和擔憂,因為這個產業不只有許多既有技術知識需要學習、工具方法的變化也比過往任何產業還要劇烈快速。如果對雲技術有興趣,推薦可以先看看 AWS Cloud Practitioner certification 。這個認證能讓你了解雲服務的基本運作和常用服務的內容,就算最後不打算往IT前進,在現代商業或是產品規劃上我想也會有一定的幫助。
第一次聽到 Cloud Resume Challenge 是在 GPS的影片:How to become a Cloud Engineer ,進一步閱讀 Forrest Brazeal 的文章,看到他當初是因為疫情導致失業率暴增、許多人想轉職加入IT產業卻不得其門而入而決定構築這個挑戰。
Cloud Resume Challenge #
Cloud Resume Challenge 簡而言之就是 用AWS雲服務(或其他平台)架設前端單頁網站,該網站會透過API存取後端資料庫記錄瀏覽人數。在此同時,用 IaS 部屬後端所需資源,同時用 CI/CD 自動化程式的更新或部署。
挑戰原本分為14個步驟,除了本來就取得 ✅ Task1 的 Practioner 認證,在進行的時候我將它們分成幾個區塊處理:
1. 設置 S3 靜態網頁 #
將簡單的 Html & CSS 檔案上傳到 S3 進行靜態網頁佈置的設定。靜態網頁算簡單的步驟,因此這裡我試著用 AWS CLI 來深化對權限、金鑰的理解,同時建立新的資源、上傳檔案和進行詳細設定等等。
用 AWS CLI 在 S3 上架設靜態履歷 The cloud resume challenge by Forest Brazeal – part1](https://www.yangijen.com/aws-s3-static-cli/){:target=”_blank”}
- ✅ Task 2
- ✅ Task 3
2. 靜態網站的網域 DNS 和內容發佈 CDN 設定 #
雖然可以直接公開S3的地址進行存取,但在安全和存取速度的考量下 CDN 部署似乎是必要的。這個步驟把 S3 網頁位址用 CloudFormation 進行 CDN 導向、透過 ACM 獲得 SSL 認證、然後使用 Route 53 把頁面設置到網站子網域上。
CDN 和 DNS設置 The cloud resume challenge by Forest Brazeal – part2
- ✅ Task 4
- ✅ Task 5
- ✅ Task 6
3. 設置 API Gateway 讓前端 Javascript 存取後端資料庫 #
這部分真的很要命,讓我想一頭把面前的玻璃窗撞碎。本來以為寫 Javascript 瀏覽計數器是個簡單的任務、但這部分需要自行設置 API 、用 Python 寫 Serverless Function 讓 Lambda 執行、還要確保後端資料庫和上述所有部份都正常運作。
因為要學習的東西實在太多,在 GUI 手動設置確認正常運作後我才回頭研究 CloudFormation 、使用 SAM 重新部署上述所需的資源。
用AWS API Gateway/ Lambda/ DynamoDB建立瀏覽人次計數器 The cloud resume challenge by Forest Brazeal – part3
- ✅ Task 7
- ✅ Task 8
- ✅ Task 9
- ✅ Task 10
- ✅ Task 11
4. CI/CD 自動化部署前端和後端的程式碼 #
我一直都很好奇 Github Actions 是什麼,透過這個步驟才知道原來日常生活可以寫程式處理重複行高的作業之外,我們也可以用程式自動化程式的部署。相較於其他工具,人人都有使用 Github 的經驗,因此把程式放到 repo 、啟用 Github Actions 就變成相對簡單的作業。
只能說我對這個步驟的了解還非常粗淺,但有了基礎概念總比一無所知來得好。
用 Github Actions 設置 CI/CD流程 The cloud resume challenge by Forest Brazeal – part4
- ✅ Task 12
- ✅ Task 13
結論 #
現在這篇文章,就是 ✅ Task 14 把學習和過程記錄起來寫成公開文章。至此完成 Cloud Resume Challenge。
剛進入 IT 時完全無法和朋友家人說明自己的工作內容,因為內容實在是太複雜連我自己也不理解。從最基礎的網路硬體設備、各種訊號的傳遞管理、到軟體層面會遭遇的各種程式碼問題,每層都有數不清的語言、工具、標準。這個挑戰讓我更了解一個雲端程式需要經過繁複的設置和巧思才能運作,更讓我知道自己擅長和需要加強的領域。這也印證了進 IT 領域時一直聽到的一句話:「You need to be willing to learn to survive in this field.」
完成著個挑戰後,計畫在一個月內獲得 AWS Solutions Architect – Associate 認證來測試我對各種服務的理解。Wish me luck 🙌🏼