雲端計算面試題及答案,AWS雲端計算面試題
如今,越來越多的人透過 AWS 來入門雲端計算。很多初學者都迫切地想要知道如何才能成為一名 Linux 管理員,於是我想透過本文詳細介紹一下雲端計算的相關知識,希望能夠藉此來解答開發者心中的疑問。本文既包括 AWS 的基礎知識,又包括複雜架構的自動化部署這樣的高階操作。讀者可以根據自己的背景和基礎,選擇自己感興趣的部分閱讀。
開始之前,我先假設你具備以下能力:
- 擁有初級或者中級的 Linux 系統管理技能。
- 至少熟悉一門程式語言或者指令碼語言。不必特別精通,但是要有實際的程式設計經歷。
- 願意花時間去解決一些複雜的問題。
- 需要花費一點錢購買 AWS 服務,從而提高自己的技能。
本指南使用須知:
- 首先,本指南不會一步一步手把手地教你如何操作。
- 我會循序漸進地引導你。因此,你需要真正理解每一部分,然後再閱讀下一部分。
- 遇到問題時你要善用谷歌搜尋、AWS 文件以及 Stack Overflow 網站去尋找答案。
- 使用最正確的方式,不要只顧圖快。當然,先用快速的方法完成,然後再進行重構也未嘗不可。
- 在學習過程中充分理解之後再去伺服器上進行實際操作。使用不到 50 美元的 AWS 版本即可完成本指南中的所有工作。重新構建的過程能夠幫助你加深理解。
- 跳過開頭先去閱讀“成本分析”和“自動化”兩部分的內容,閱讀其他部分的時候保證這兩部分的內容瞭然於胸。
- 最後,一定要多動手進行實際操作。此時不做,更待何時。
專案概況
本指南不是教你如何在 AWS 上開發網站。而是透過一個網站示例來介紹 AWS 提供給你的所有技術服務。透過概念的學習和實際操作,你能夠對 AWS 有非常全面的瞭解。
本指南將從最基本的網頁開始,最後使用極其便宜的 ASW 構建 Web 應用程式。雖然網站很小,但是無所謂。它可以做任何你想做的事情,可謂麻雀雖小,五臟俱全。
示例網站名為“每日財富”,每次載入頁面隨機顯示一個財富值,在頁面底部提供一個輸入框和一個按鈕,透過這兩個元件向隨機財富列表中新增新的財富資料。
帳戶相關的基礎知識
- 建立一個 IAM 使用者供你個人使用。
- 為 root 使用者設定 MFA,關閉所有 root 使用者的 API 金鑰。
- 設定帳單提醒,以便超過指定的價錢後你能夠及時知道。
- 使用 API 憑證為你的使用者配置 AWS CLI。
- 本階段目標:你可以使用 AWS CLI 查詢你的 AWS 賬戶資訊。
虛擬主機的基礎知識
- 部署 EC2 虛擬機器並顯示一個簡單的靜態網頁,頁面上呈現“每日財富網站即將推出”的字樣。
- 拍攝虛擬機器快照,接著刪除虛擬機器,然後從快照中部署一個新的虛擬機器,並選中基本的磁碟備份和磁碟還原功能。
- 本階段目標:你可以檢視 EC2 例項提供的簡單 HTML 頁面。
彈性伸縮配置
- 從虛擬機器中建立一個 AMI 並將其放入彈性伸縮組中,確保至少有一個虛擬機器在執行。
- 給虛擬機器新增彈性負載均衡器,並在兩個可用區域之間實行負載均衡。
- 本階段目標:你可以檢視來自兩個 EC2 例項的簡單 HTML 頁面。你任意關閉其中一個,網站仍然可以訪問。
資料庫訪問
- 建立一個 DynamoDB 資料庫表,並手動執行資料插入和檢索操作,然後透過本地計算機上的指令碼執行相同的操作。
- 將你的靜態頁面重構為每日財富網站,使用 Node、PHP 或者 Python 都可以,對 AWS DynamoDB 資料表中的財富資料執行讀取和更新操作。
- 本階段目標:你的網站現在可以在使用者和會話之間將資料載入並儲存到資料庫中。
虛擬主機 PaaS
- 將這個簡單的網站重新部署到 Elastic Beanstalk 上。
- 建立一個靜態的 S3 Bucket,上傳一些靜態的頁面檔案和圖片,並將這些資源新增到你的 Elastic Beanstalk 網站。
- 註冊一個域名,或者使用現有的域名,總之你得有一個。然後配置 Route53 域名服務。把 你的域名>.com 指向你的 Elastic Beanstalk,並配置 static.<你的域名>.com 從 S3 Bucket 獲取資料。
- 為你的靜態 S3 網站啟用 SSL,這很重要。
- 為你的 Elastic Beanstalk 網站啟用 SSL。
- 本階段目標:你的網站現在透過 HTTPS 提供所有資料。除非你不必自己管理伺服器、Web 服務軟體、網站部署或者負載均衡器,否則將會與從前一樣。
微服務
- 對你的 Elastic Beanstalk 網站進行重構,使其僅僅提供 API。只能透過 POST 和 GET 從 DynamoDB 資料庫更新和檢索特定的資料。使其成為一個簡單的 REST API,把 api.<你的域名>.com 作為 URL 提供。
- 將你的 Elastic Beanstalk 網站的 UI 部分移到你的靜態 S3 網站,當頁面載入時使用 Javascript 從 api.<你的域名>.com URL 中檢索資料。將資料傳送到 Elastic Beanstalk URL 以使其更新 DynamoDB 資料庫。將資料地址從 static.<你的域名>.com 改為 你的域名>.com。
- 本階段目標:你的 Elastic Beanstalk 部署現在只是一種從資料庫檢索資料的結構化方式。所有 UI 和應用程式邏輯均透過 S3 Bucket 提供。由於你不再使用昂貴的伺服器來提供網站的靜態資料,因此你可以支援更多的使用者。
Serverless
- 編寫一個 AWS Lambda 函式,每天晚上定時將 DynamoDB 表中的所有財富資料透過郵件傳送給你。可以使用 Python 3 的 Lambda、Boto3、亞馬遜 SES 或者 CloudWatch 的預定功能都可以。
- 將上述應用重構為無伺服器應用。這有點抽象,你需要自己做很多研究和實驗。
- 架構:靜態 S3 網站前端呼叫 API 閘道器,它執行 Lambda 函式來讀取和更新 DyanmoDB 表中的資料。
- 使用啟用了 SSL 的儲存區作為包含靜態內容的主域名登入頁面。
- 建立一個 AWS API 閘道器,使用它將 HTTP 請求轉發到 AWS Lambda 函式,該函式從 DynamoDB 查詢與 Elastic Beanstalk 微服務相同的資料。
- 你的 S3 靜態內容應該使用 Javascript 呼叫 API 閘道器,然後使用檢索到的資料更新頁面。
- 首先提供“Get Fortune”API 閘道器並確保 Lambda 函式能夠工作,然後提供“New Fortune”API。
- 本階段目標:你的 API 閘道器和 S3 Bucket 由 CloudFront 透過 SSL 進行配置。你沒有部署 EC2 例項。所有工作均由 AWS 服務完成,根據使用情況計費。
成本分析
- 熟悉 AWS 的定價方式,瞭解滿足自己服務的最低價。
- 當你構建服務時,問問自己下列問題:
- 每個月大概會花費多少錢?
- 將會進行怎樣的擴充套件,成本會如何變化?
- 明確架構
- 基本虛擬主機:靜態網頁使用 HA EC2 例項即可
- 微服務:Elastic Beanstalk SSL 僅適用於 API + S3 的靜態網站,所有靜態內容的靜態網站還需 DynamoDB 資料庫表 + Route53 + CloudFront SSL
- 本階段目標:使用 API閘道器 + Lambda 函式的無伺服器網站 + 針對所有靜態內容的 DynamoDB + Route53 + CloudFront SSL + S3 靜態網站
自動化
- 這些技術在自動化時最為強大。你可以在幾分鐘內建立一個開發環境,體驗之後可以隨意拋棄。這並不容易,只有真正熟練的人才擅長這樣做。
- 將上述系統進行自動化部署。使用任何你想要的工具。比較流行的是 AWS CloudFormation 或者 Teraform。將程式碼儲存在 AWS CodeCommit 或者 GitHub 上。是的,你可以使用原生 AWS 工具將上述所有內容進行自動化部署。
- 我的建議是,當你手動完成與應用程式相關的部分時,就會返回並自動執行基礎架構的配置。比如,自動配置你的 EC2 例項。在啟用靜態網站託管的情況下自動建立 S3 Bucket。這並不容易,但當你看到它工作時,這一切都是值得的。
持續交付
- 當你對自動化部署足夠熟悉之後,你應該去探索並實施持續交付。
- 開發一個 CI/CD 管道,以便在新程式碼釋出時自動更新基礎架構的開發部署,然後構建一個工作流程以在批准時更新生產版本。Travis CI 是一款強大的 SaaS 工具,Jenkins 的關注度也很高,如果你想堅持使用 AWS 特有的技術,可以試試 CodePipeline。
其他
以下內容也是 AWS 的重要主題,值得你探索:
- IAM:你應該真正瞭解如何建立複雜的 IAM 策略。為 EC2 例項角色和 Lambda 執行角色執行基本的角色和策略當然是必不可少的,但實際上這裡還有許多更加高階的功能。
- 網路:從頭開始建立一個新的 VPC,其中包含多個子網,當其正常工作之後,再建立一個 VPC 並將它們放在一起。在每個子網中獲取一個虛擬機器,互相使用其私有 IP 地址來通訊。
- KMS:重做早期的 EC2 例項,在磁碟上啟用加密。學習如何加密 AMI。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2648033/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 雲端計算面試題及答案,雲端計算崗位精品面試題面試題
- 雲端計算工程師面試題集錦,雲端計算面試題及答案工程師面試題
- 雲端計算面試題及答案,雲端計算工程師面試題集錦面試題工程師
- 雲端計算工程師面試題集錦,常見雲端計算面試題及答案工程師面試題
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案二面試題筆試
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案一面試題筆試
- 雲端計算面試題及答案,雲端計算主要就業崗位面試題就業
- 雲端計算面試題及答案,常見的Shell指令碼面試題面試題指令碼
- Linux雲端計算面試題第二彈,樂視雲端計算面試題Linux面試題
- 雲端計算大資料面試題,雲端計算大資料面試題集錦大資料面試題
- OpenStack及雲端計算(面試)常見問題面試
- 高薪崗位雲端計算面試題,雲端計算運維工程師必備高薪面試題運維工程師
- 雲端計算面試題:檔案定位路徑面試題
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題一程式設計師Linux面試
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題二程式設計師Linux面試
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題三程式設計師Linux面試
- 面試雲端計算崗位時這些面試題不能錯過面試題
- 雲端計算面試常見問題,怎麼理解shell?面試
- 雲端計算面試常見問題:Linux目錄結構面試Linux
- 好程式設計師Linux雲端計算教程分享Shell指令碼面試題程式設計師Linux指令碼面試題
- 協議有哪些相關面試簡答題?Linux雲端計算運維協議面試Linux運維
- 雲端計算每日一題每日一題
- 雲端計算40個問題
- 雲端計算面試中如何突顯自己?程式設計師面試的7個小貼士面試程式設計師
- 雲端計算每日一題(NO.0009)每日一題
- 雲端計算每日一題(NO.0002)每日一題
- 雲端計算安全,主要面臨哪些威脅?
- 【雲端計算小知識】什麼是雲端計算?雲端計算特點是什麼?
- 什麼叫雲端計算?雲端計算通俗解釋
- 41道計算機網路高頻面試題(附帶答案)計算機網路面試題
- 基礎面試題 — 計算機網路面試題計算機網路
- 雲端計算和Linux什麼關係?linux雲端計算Linux
- 雲端計算開發教程,雲端計算能幹什麼?
- 什麼叫做雲端計算?學習雲端計算先要理解
- 邊緣計算與雲端計算
- Java併發程式設計40道面試題及答案——面試穩了Java程式設計面試題
- 什麼是雲端計算雲端計算能幹什麼?雲端計算學習筆記工具素材筆記
- 2021年UI設計面試問題及答案解析UI面試