AWS 雲端技術支援工程師體驗營心得

前言

在 Amazon 工作的學長某天丟了個雲端體驗營的報名連結給我,其實他之前就丟給我過了,那時剛好衝到畢業典禮,而我提畢又在當兵只能週六早上八點離營,忍痛放棄報名,這次有機會報名當然不能錯過啊!雖然這次撞期了某啟動交流會、資工校友盃(房間已經定好了說,噴 $600 😢),還是毅然決然的報名,畢竟是 FAANG 啊!

一開始會有個不算太難的前測,考一些基本 OS 與網路觀念,如果平常有接觸網管應該不難,沒接觸過網路上稍微查一下也會有答案,在會場跟其他人聊天時,就有聽到有人都查完複製貼上就進來了XD。

第一天

板南線從市政府站 3 號出口出去,週六大暴雨,縱使三分鐘路程也讓我鞋子濕透,捷運站剛出來就淹水實在讓人傻眼呢。

好不容易到了亞馬遜總部,可能是週六早上裡面幾乎沒人,只看到一位幫我開門的員工,看了 badge 好像寫著 Michael,簽完名後在交誼廳等了一會就被叫進去會議室上課。

中途 Eason 有問說大家應該都是為了應徵實習而來的吧,結果不少人面露驚訝,原來這不只是宣傳 AWS 服務,同時也是個實習生預選活動。

接著工商一下 AWS 上面的服務,但我覺得比較像是介紹、推薦等等,開開眼界,這裡稍微列一下:

上面這張圖挺有趣的,全世界的 AWS Region 都有互連,唯獨…

亞馬遜中流傳著一句經典名言「 Every day is day 1」,每天都會有新的挑戰,新的驚喜,永遠學不完的東西,姐夫(Jeff Bezos)這麼說的,員工也這麼覺得。

Support Team 主要的業務如下:

  • 協助客戶 debug,通常是 they 的問題(?
  • 協助預熱測試
  • 協助選擇方案,例:5 秒內部署 1000 台
  • 協助那些文件沒寫的事情

Amazon Support 是個要另外付錢的服務,並且根據等級不同分成 Email、電話協助等等,Eason 特別提到 Amazon 是個重視客戶隱私的公司,Support 人員沒辦法看到、拿到客戶在亞馬遜雲端所儲存的資料的,因此大多數時候得靠客戶所回報的資訊來了解案情。

為了避免新進員工觀落陰能力不佳,內部有個標準問答解決方式 SOAP:

  • Subjective
    • 客戶描述-未被驗證(有可能是客戶誤判)
  • Objective
    • 事實,被你驗證後的資訊
  • Assessment or Assumption
    • 必須能完全吻合 Objective
    • 盡可能吻合 Subjective
    • 至少兩個以上假設
  • Plan
    • 了解工具的用途,它收集什麼資料? 它能看到什麼?它能驗證什麼?
    • 必須實際至少收集一次正常情況 ➡️ 分辨客戶狀況是否有問題
    • 盡可能學習愈多工具愈好 ➡️ 增加手中的武器
    • 使用對的武器來驗證你的假設
    • 如果找不到答案 ➡️ return Subjective()

至於為什麼要採用這種方式,講師有帶我們玩一些遊戲,來模擬真實情境中資訊混雜沒有條理,甚至充滿錯誤的情況底下,我們要去找出問題的發生原因以及解決方式,例如四個人中有人說謊那小偷是誰等等,而 SOAP 能達到以下特點:

  • 系統化組織化思考
  • 準確的命中要害
  • 有共同的語言以增進內部溝通效率
  • 協助練習思考並內化 Troubleshooting Methodology
  • 快速地取得資深同事的建議與指導

亞馬遜這種世界頂尖的公司,內部培訓是很完整充實的,因此不必擔心剛進去會無法處理這些事情。剛進去會有三個月的學習時間,也會有 mentor 帶你,不論是什麼問題都可以問,只不過 mentor 不一定是跟你位處同地區的人,例如有可能是澳洲人等等。公司會標配 Mac 筆電、兩個螢幕、全球的亞馬遜員工購物優惠等等,可惜的是目前台北分公司沒有提供午餐,因此得自己外食,幸好咖啡是免費的,這當然不是爆肝用的啦XDD,美商企業上下班很正常滴,報加班還會特別被關注。

午餐亞馬遜提供 Pizza 與汽水,不過份量有點不夠不少人反映吃不飽。

下午介紹了 EC2 的一些相關名詞,如 AMI, Instance, Instance Store, EBS, Security Groups 等等,官方文件介紹的很詳細,這邊就不列出了。

最後有個 lab 讓我們實作,總共兩題,講師只給大方向,怎麼做都得自己去查,彷彿親身體驗 Support Team 的工作內容:

  1. 建立新的 t2.mirco Instance,成功開機後,關機改成 c5.large
    • 這會遇到的問題是 ENA 驅動,基本上更新 kernel 後下 AWS CLI 指令開啟即可
    • 學生帳號在 aws configure 會有點問題,可以到 vocareum 頁面複製 Account Details 中 AWS CLI 區塊內容,並且全部貼上到 ~/.aws/credentials 檔案中即可,注意 token 沒幾小時就會過期,因此天天使用的人可能要一直貼
  2. 將講師給的一台 Instance 手動安裝 ENA 驅動,使 SSH 能夠連得上

結束後約了幾位今天認識的朋友到武鼎越豐吃飯,隨即趕回清大宿舍打心得。

第二天

昨天聽說從市政府站到會場可以不用淋雨,有天橋可以走,還真的被我找到了,沿著天橋底下走就可以到達。

早上主題是 Network,講師先是介紹基本的網路概念如 Netmask、Gateway 等等觀念,再來是 AWS 的架構,如「多台電腦組成 Datacenter,多個 Datacenter 組成 AZ,多個 AZ 組成 Region」、什麼是 VPC, CIDR, NACL, Load Balancers 等等,官方文件一樣介紹的很詳細,這邊稍微列一下圖。

下面的圖片都擷取自亞馬遜網站。

Feature Application Load Balancer Network Load Balancer Classic Load Balancer
Protocols HTTP, HTTPS TCP, UDP, TLS TCP, SSL/TLS, HTTP, HTTPS
Static IP Address X V X
Preserve Source IP Address X V X
Path-Based Routing V X X
Host-Based Routing V X X
Redirects V X X
Custom Security Policy X X V
Security Group Association V X V

講完之後,早上的 lab 是要做負載均衡,用過之後發現 AWS 滿不錯的,幫我們做好了許多事情,不必花太多時間在設定上,題目如下:

  1. 建立一個新的 VPC,並且有兩個 Public Subnet,分屬不同的 Avalability Zone
  2. 啟動兩台 EC2 Instance,分屬這兩個 Subnet,並且安裝 Web Server 使得能夠透過網頁辨識出這兩台
  3. 建立 ALB 並且監聽 80、8080 port,將從 8080 進來的用戶回傳 HTTP 3XX 導向至 80 port
  4. ALB 能夠負載均衡這兩台 EC2 Instance,也就是網頁重新整理會隨機顯示不同台 Instance 的網頁內容
  5. 禁止用戶直接透過那兩台 Instance 的 Public 透過 80 port 連上去

這 lab 不難且很實用,我卡關最久的地方應該是找出怎麼連上 Load Balancer,最後聽講師在跟別人解答時提到「DNS name」這個關鍵字我才明白,實在是不懂為何不直接叫做 Domain Name,而是要用 DNS name 這個不常見的名詞。講師有提到這算是 AWS 的 feature,不給你 Load Balancer 的 IP Address 而是給 Domain name(對,我硬要這樣叫XD)。

今天中午是吃麥當勞,每個人都有一份麥香雞漢堡、薯條、玉米濃湯,有吃得比較飽了哈哈。

下午則是進行小測驗(大屠殺),總共四小時的時間進行 14 道考題,題目大多是上課的內容,有十題是問答題,四題是 lab。lab 是給你一個網址,連過去後會有準備好的 stack 可以啟動,這些環境可能是有網路配置錯誤、系統錯誤等等問題,要想辦法 debug。

之後聽說這測驗實作的 lab 完全沒有開到任何的 EC2,是他們實習生花幾個月弄出來的系統,一切服務都是使用 AWS 上面的公開資源,這不禁讓我十分佩服!

總結

這個體驗營的確讓我更加了解 Support Team 的工作內容,也算是我第一次操作 AWS 因此學習了不少,有人帶的感覺真好,而且還是專業的 Support Team 成員 XD。

進來之前,總覺得自己未來應該會在竹科賣肝,不過沒想到這邊的工作內容更符合我的興趣,平常就喜歡網管的我經常沈浸在解 case 的樂趣之中,不過這裡面試很硬,問題都喜歡鑽研到底層實作,當兵後就比較少在碰網管的東西,研究所領域也與此較不相關,得督促自己在這方面不能過於懈怠。


comments powered by Disqus