阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

目錄

  1. 一般 AWS 開發營運問題

  2. CI/CD 管道問題

  3. 容器化和編排

  4. AWS Elastic Beanstalk 和 Lambda

  5. AWS EC2 和負載平衡

  6. AWS 雲端建置和自動化

  7. AWS 監控和日誌記錄

  8. AWS IAM 和安全性

  9. 版本控制和 AWS CodeCommit

  10. AWS 自動擴充

  11. AWS S3 和儲存

  12. AWS 網路

  13. AWS 彈性容器服務 (ECS)

  14. AWS 彈性 Kubernetes 服務 (EKS)

  15. AWS Lambda 和無伺服器

  16. AWS 監控和故障排除

  17. AWS 彈性負載平衡器 (ELB)

  18. AWS 彈性區塊儲存 (EBS) 與資料庫


一般 AWS 開發營運問題

  1. 什麼是 DevOps?

DevOps 是一組整合軟體開發 (Dev) 和 IT 營運 (Ops) 的實踐,旨在縮短開發生命週期,並根據業務目標頻繁交付功能、修復和更新。

  1. 使用 AWS 進行開發營運有哪些好處?

AWS 提供彈性運算雲 (EC2)、彈性容器服務 (ECS) 和 Elastic Beanstalk 等靈活的服務,有助於自動化和擴展開發和部署管道。功能包括可擴展性、自動化、CI/CD、基礎設施即程式碼 (IaC) 和監控工具。

  1. AWS 中的基礎架構即程式碼 (IaC) 是什麼?

IaC 是指透過程式碼而不是手動流程來管理和配置基礎架構。在 AWS 中,您可以使用 AWS CloudFormation 和 AWS CDK(雲端開發工具包)實作 IaC。

  1. 解釋 DevOps 和敏捷之間的差異。

敏捷是一種專注於迭代開發的方法,而 DevOps 是一種彌合開發和營運之間差距的實踐,以確保更快、更可靠的軟體交付。

  1. 有哪些流行的 AWS 開發營運工具?
  • AWS CodePipeline (CI/CD)

  • AWS CodeBuild(建置自動化)

  • AWS CodeDeploy(部署自動化)

  • AWS CloudFormation (IaC)

  • Amazon ECS/EKS(容器編排)

CI/CD 管道問題

  1. 什麼是 CI/CD 管道?

CI/CD 管道自動化了軟體開發的步驟,從整合、測試、部署到交付,確保應用程式的持續改進和交付。

  1. 您將如何在 AWS 中實施 CI/CD 管道?

您可以使用 AWS CodePipeline 建立 CI/CD 管道。將 CodeCommit(原始碼控制)、CodeBuild(建置)和 CodeDeploy(部署)組合起來形成完整的管道。

  1. 解釋 AWS CodePipeline。

AWS CodePipeline 是一項持續整合和持續交付服務,可在每次程式碼變更時協助自動執行發布流程的建置、測試和部署階段。

  1. 什麼是 AWS CodeBuild?

AWS CodeBuild 是完全託管的建置服務,可編譯原始程式碼、執行測試並產生可供部署的工件。

  1. 什麼是 AWS CodeDeploy?

AWS CodeDeploy 可自動將程式碼部署至任何實例,包括 Amazon EC2 執行個體和本機伺服器。

容器化和編排

  1. 什麼是容器?

容器是輕量級的獨立可執行套件,其中包含執行應用程式所需的一切,包括程式碼、執行時間、程式庫和系統相依性。

  1. Docker 和虛擬機器 (VM) 有什麼不同?

Docker 容器在作業系統層級進行虛擬化,而 VM 在硬體層級進行虛擬化。容器更加輕量級,共享主機作業系統內核,而每個虛擬機器都執行完整的來賓作業系統。

  1. 如何在 AWS 中編排容器?

使用 Amazon ECS(彈性容器服務)或 Amazon EKS(彈性 Kubernetes 服務)來管理和編排容器化應用程式。

  1. 什麼是亞馬遜 ECS?

Amazon ECS 是一項完全託管的容器編排服務,可讓您執行、停止和管理叢集中的容器。

  1. 什麼是亞馬遜 EKS?

Amazon EKS 是一項託管服務,可讓您輕鬆在 AWS 上執行 Kubernetes,而無需安裝和操作您自己的 Kubernetes 控制平面。

AWS Elastic Beanstalk 和 Lambda

  1. 什麼是 AWS Elastic Beanstalk?

AWS Elastic Beanstalk 是一種平台即服務 (PaaS),可讓您使用 Java、Python、Ruby 等各種語言部署和管理應用程式,而無需擔心基礎架構。

  1. 如何使用 Elastic Beanstalk 部署應用程式?

您可以透過管理控制台、CLI 或 CI/CD 管道使用 Elastic Beanstalk 部署應用程式。上傳您的應用程式並指定環境配置。

  1. 什麼是 AWS Lambda?

AWS Lambda 是一種無伺服器運算服務,它會執行您的程式碼以回應事件並自動為您管理運算資源。

  1. AWS Lambda 如何與 CI/CD 整合?

您可以使用 AWS CodePipeline、CodeBuild 和 CodeDeploy 將 AWS Lambda 函數部署為 CI/CD 管道的一部分。 Lambda 函數也可以由 CodeCommit 或 GitHub 等儲存庫中的變更觸發。

  1. AWS Lambda 有哪些限制?

AWS Lambda 存在限制,例如最多 15 分鐘執行時間、10 GB 記憶體以及對某些程式庫和依賴項的有限支援。

AWS EC2 和負載平衡

  1. 什麼是亞馬遜 EC2?

Amazon Elastic Compute Cloud (EC2) 是一種 Web 服務,可在雲端中提供可調整大小的運算容量。

  1. 什麼是 EC2 執行個體?

EC2 執行個體是 AWS 中的虛擬伺服器,可用於在 AWS 雲端上執行應用程式。

  1. 如何自動擴展 EC2 執行個體?

使用 Auto Scaling 群組和 AWS CloudWatch 監控您的執行個體並根據預先定義條件(例如 CPU 使用率)自動擴充執行個體數量。

  1. 什麼是彈性負載平衡器(ELB)?

ELB 是一項自動在多個 EC2 執行個體、容器或 IP 位址之間指派傳入流量以確保高可用性的服務。

  1. AWS 中的負載平衡器有哪些類型?
  • 應用程式負載平衡器 (ALB)

  • 網路負載平衡器 (NLB)

  • 網關負載平衡器 (GLB)

AWS 雲端建置和自動化

  1. 什麼是 AWS CloudFormation?

AWS CloudFormation 是一項服務,可讓您使用範本以程式碼形式建模、預設和管理 AWS 基礎架構。

  1. CloudFormation 如何幫助 DevOps?

它支援基礎設施的自動化配置和管理,減少手動工作和錯誤,同時確保開發、登台和生產環境的一致性。

  1. 什麼是 CloudFormation 堆疊?

CloudFormation 堆疊是 AWS 資源的集合,您可以使用 CloudFormation 作為單一單元進行管理。

  1. 如何更新 CloudFormation 堆疊?

透過修改模板並套用變更來更新 CloudFormation 堆疊。 AWS 將自動確定所需的變更並套用它們。

  1. 可以回滾 CloudFormation 更改嗎?

是的,CloudFormation 支援失敗回滾,如果任何資源建立或更新失敗,它會自動將所有變更回滾到最後一次已知的良好狀態。

AWS 監控和日誌記錄

  1. 什麼是 AWS CloudWatch?

AWS CloudWatch 是一項監控和管理服務,可為 AWS 資源、應用程式和服務提供資料和可操作的見解。

  1. 什麼是 CloudWatch 警報?

CloudWatch Alarms 隨著時間的推移監視指標並根據預先定義的閾值執行操作,例如發送通知或擴展 EC2 執行個體。

  1. AWS CloudTrail 如何協助監控?

AWS CloudTrail 記錄您帳戶中進行的 API 呼叫,提供使用者活動和資源變更的可見性,這有助於稽核和合規性。

  1. 什麼是 AWS X-Ray?

AWS X-Ray 透過追蹤請求並監控其效能,幫助開發人員分析和除錯分散式應用程式,例如使用微服務架建置立的應用程式。

  1. 如何將 CloudWatch 與 CI/CD 管道整合?

使用 CloudWatch 指標和警報來觸發 CI/CD 管道中的自動部署或回滾等操作。

AWS IAM 和安全性

  1. 什麼是 AWS IAM?

AWS Identity and Access Management (IAM) 是一項可讓您安全管理對 AWS 服務和資源的存取的服務。

  1. IAM 角色是什麼?

IAM 角色用於將存取權委託給使用者或服務,使他們無需長期憑證即可與 AWS 服務互動。

  1. 什麼是 IAM 政策?

IAM 策略是一個 JSON 文件,用於定義權限並控制允許或拒絕對 AWS 資源執行哪些操作。

  1. 如何保護 AWS 中的 CI/CD 管道?

使用 IAM 角色和政策確保只有授權使用者和服務才能存取您的 CI/CD 管道。對敏感資料實施加密並使用日誌記錄來監控存取。

  1. 什麼是 AWS KMS?

AWS Key Management Service (KMS) 是一項託管服務,可讓您建立和管理加密金鑰並控制跨 AWS 服務的加密使用。

AWS 安全性和最佳實踐

  1. 什麼是 AWS 盾?

AWS Shield 是一項託管的分散式阻斷服務 (DDoS) 保護服務,可保護在 AWS 上執行的應用程式。 AWS Shield 有兩層:標準層和高階層。

  1. 什麼是 AWS WAF?

AWS Web Application Firewall (WAF) 可讓您定義允許或封鎖特定要求的規則,以協助保護您的 Web 應用程式免受 SQL 注入和跨網站腳本 (XSS) 等常見 Web 攻擊。

  1. 如何保護 AWS 中傳輸中和靜態的資料?

對於傳輸中的資料,請使用 SSL/TLS 加密。對於靜態資料,AWS 提供 S3 伺服器端加密 (SSE)、AWS KMS 和 EBS 加密等服務。

  1. 如何在 AWS 中實作 MFA?

AWS 提供多重身份驗證 (MFA),透過要求兩種形式的身份驗證來存取 AWS 服務,從而增加額外的安全層。可以透過 IAM 為使用者帳戶啟用它。

  1. 什麼是 AWS Secrets Manager?

AWS Secrets Manager 可協助您安全地儲存和管理對存取 AWS 服務或第三方應用程式所需的憑證、API 金鑰和其他金鑰的存取。

版本控制和 AWS CodeCommit

  1. 什麼是 AWS CodeCommit?

AWS CodeCommit 是一項完全託管的原始碼控制服務,可讓您在雲端中私下儲存和管理 Git 儲存庫。

  1. AWS CodeCommit 如何與 CI/CD 管道整合?

AWS CodeCommit 與 AWS CodePipeline 無縫集成,在將變更提交到儲存庫時觸發建置和部署。

  1. CodeCommit 和 GitHub 有什麼不同?

兩者都是基於 Git 的版本控制系統。 CodeCommit 完全由 AWS 管理,與 AWS 服務更緊密地集成,而 GitHub 是具有更廣泛社群功能的外部 Git 託管服務。

  1. 如何自動將程式碼從 CodeCommit 部署到 EC2 執行個體?

您可以使用 CodePipeline、CodeDeploy 和 CodeCommit 自動執行程式碼部署,其中 CodePipeline 在推送提交時觸發部署,CodeDeploy 將程式碼部署到 EC2 執行個體。

  1. 您能否將 CodeCommit 與 Jenkins 等外部 CI/CD 工具整合?

是的,CodeCommit 可以使用 AWS 開發工具包和 API 與 Jenkins 整合。 Jenkins 可以輪詢儲存庫並根據變更觸發建置。

AWS 自動擴充

  1. 什麼是 AWS Auto Scaling?

AWS Auto Scaling 會自動調整您的資源容量,以盡可能低的成本維持效能和可用性。

  1. Auto Scaling 如何與 EC2 搭配使用?

您建立 Auto Scaling 群組,定義擴充策略(例如根據 CPU 使用情況進行擴充),AWS 將根據需要自動增加或減少 EC2 執行個體的數量。

  1. 垂直縮放和水平縮放有什麼區別?
  • 垂直擴展是指增加實例的大小(例如CPU、記憶體)。

  • 水平擴展是指增加更多實例來處理增加的流量。

  1. Auto Scaling 中的啟動配置是什麼?

啟動配置是 Auto Scaling 群組用於啟動 EC2 執行個體的模板,指定執行個體類型、AMI、金鑰對和安全群組。

  1. 如何使用 Auto Scaling 和 ELB 設定高可用系統?

建立跨多個可用區 (AZ) 的 Auto Scaling 群組,將其與彈性負載平衡器 (ELB) 關聯,並配置運作狀況檢查以確保流量僅路由到運作狀況良好的執行個體。

AWS S3 和儲存

  1. 什麼是亞馬遜 S3?

Amazon Simple Storage Service (S3) 是一種物件儲存服務,可提供可擴充性、安全性和效能,以便從任何地方儲存任意數量的資料。

  1. S3 中有哪些不同的儲存類別?
  • S3標準

  • S3智能分層

  • S3 標準-IA(不頻繁存取)

  • S3 一區-IA

  • S3冰川

  • S3 冰川深度檔案

  1. S3 中的版本控制是什麼?

S3 版本控制可讓您將物件的多個版本保留在同一個儲存桶中,防止意外刪除或覆寫。

  1. S3 加密如何運作?

S3 支援使用 S3 託管金鑰 (SSE-S3)、AWS KMS 託管金鑰 (SSE-KMS) 和客戶提供的金鑰 (SSE-C) 進行伺服器端加密 (SSE)。它還支援客戶端加密,其中加密是在 S3 外部處理的。

  1. 如何管理 S3 儲存桶的權限?

可以使用儲存桶策略、ACL(存取控制清單)和 IAM 策略來管理 S3 儲存桶的權限。

AWS 網路

  1. AWS 中的 VPC 是什麼?

Amazon Virtual Private Cloud (VPC) 可讓您建立 AWS 雲端的私有隔離部分,您可以在其中啟動您定義的虛擬網路中的 AWS 資源。

  1. VPC 中的子網路是什麼?

子網路是 VPC 中的一系列 IP 位址。您可以將 AWS 資源啟動到子網路中。子網路可以是公共的(存取網際網路)或私有的(無法存取網際網路)。

  1. 什麼是網際網路閘道 (IGW)?

IGW 是一個水平擴展、冗餘且高度可用的 VPC 元件,可讓 VPC 中的執行個體與網際網路之間進行通訊。

  1. 什麼是 NAT 閘道?

NAT 閘道允許私有子網路中的執行個體存取 Internet,同時阻止來自 Internet 的入站流量。

  1. AWS 中的安全群組和 NACL 是什麼?
  • 安全群組充當執行個體層級的虛擬防火牆,控制入站和出站流量。

  • 網路存取控制清單 (NACL) 在子網路層級提供無狀態流量過濾。

  1. 什麼是 VPC 對等互連?

VPC 對等互連是兩個 VPC 之間的網路連接,可讓您使用 IPv4 或 IPv6 位址在它們之間私下路由流量。

  1. 什麼是 AWS Direct Connect?

AWS Direct Connect 是從您的本地到 AWS 的專用網路連接,可實現更快、更安全的資料傳輸。

  1. 如何在 VPC 中實現高可用性?

在一個區域內使用多個可用區 (AZ)、設定負載平衡器並為關鍵資源設計故障轉移機制。

  1. 什麼是亞馬遜 Route 53?

Amazon Route 53 是一項可擴展的 DNS 和網域註冊服務,可將最終使用者請求路由至 AWS 服務或其他網際網路資源。

  1. 如何在AWS實施多區域架構?

使用 Route 53 等 AWS 服務進行 DNS 故障轉移,使用 S3 跨區域複製等服務跨區域複製資料,並利用 Amazon DynamoDB 全域表等多區域資料庫。

AWS 彈性容器服務 (ECS)

  1. 什麼是亞馬遜 ECS?

Amazon Elastic Container Service (ECS) 是一項完全託管的容器編排服務,可協助您在 AWS 上執行和擴展容器化應用程式。

  1. ECS 和 EKS 有什麼差別?

ECS 是用於容器編排的原生 AWS 服務,而 EKS 是完全託管的 Kubernetes 服務,可在 AWS 中提供 Kubernetes 控制平面。

  1. 什麼是 ECS 任務?

ECS 任務是任務定義的執行實例,其中包括 Docker 容器配置、網路和容器的其他設定。

  1. ECS 中的 Fargate 啟動類型是什麼?

AWS Fargate 是一種適用於容器的無伺服器運算引擎,可讓您執行容器而無需管理底層基礎架構。

  1. ECS如何與IAM整合?

ECS 可讓您將 IAM 角色指派給任務,使您的容器能夠安全地存取 AWS 資源。

AWS 彈性 Kubernetes 服務 (EKS)

  1. 什麼是亞馬遜 EKS?

Amazon Elastic Kubernetes Service (EKS) 是一項完全託管的服務,可讓您在 AWS 上執行 Kubernetes,而無需管理 Kubernetes 控制平面。

  1. EKS 和 Kubernetes 有什麼不同?

EKS 是一項託管服務,可為您處理 Kubernetes 控制平面,而 Kubernetes 需要您手動設定和管理控制平面。 EKS 還提供與 IAM 和 VPC 等 AWS 服務的整合。

  1. 如何將 Kubernetes 應用程式部署到 EKS?

您可以使用 kubectl 將 Kubernetes 應用程式部署到 EKS。首先,設定 EKS 集群,配置 kubectl 以使用它,然後套用 Kubernetes 清單或 Helm 圖表。

  1. EKS 如何與 IAM 整合?

EKS 與 IAM 整合以控制對 Kubernetes 控制平面的存取。 IAM 角色也可以對應到 Kubernetes 服務帳戶來管理工作負載的權限。

  1. 什麼是 eksctl?

eksctl 是一個命令列工具,可簡化 Amazon EKS 叢集的建立、管理和刪除。它透過提供簡單的介面來消除設定 EKS 叢集的複雜性。

AWS Lambda 和無伺服器

  1. AWS Lambda 的關鍵用例有哪些?
  • 執行事件驅動的工作負載

  • 處理資料流(例如,AWS Kinesis、DynamoDB 流)

  • 使用 AWS API Gateway 建置 API

  • 自動化基礎設施管理任務

  1. AWS Lambda 如何處理擴充功能?

AWS Lambda 會根據傳入請求或事件的數量自動擴展,並根據需要建立盡可能多的函數執行個體來處理負載。

  1. AWS Lambda 中的冷啟動是什麼?

當由於負載增加而初始化新的 Lambda 實例或一段時間未呼叫函數時,會發生冷啟動。這可能會導致執行稍有延遲。

  1. 如何減少 Lambda 中的冷啟動延遲?

您可以透過最佳化函數的記憶體分配、保持較小的函數大小、使用預先配置的並發性或透過定期呼叫函數來保持函數「熱」來減少冷啟動。

  1. Lambda 中的預置並發是什麼?

預置並發可確保一定數量的 Lambda 執行個體始終處於熱狀態並準備好處理請求,從而減少冷啟動問題。

AWS 監控和故障排除

  1. 如何監控 AWS Lambda 函數?

使用 AWS CloudWatch 監控 Lambda 函數。 CloudWatch 提供呼叫計數、持續時間、錯誤計數和限制等指標。

  1. 什麼是 AWS CloudTrail,它如何幫助審計?

AWS CloudTrail 記錄您的 AWS 帳戶中進行的所有 API 呼叫,以協助進行稽核、合規性和安全性監控。

  1. 如何排除 AWS CodeDeploy 中失敗的部署?

您可以透過檢查 AWS CodeDeploy 中的部署日誌、查看 CloudWatch 中的應用程式日誌以及驗證部署配置來排查失敗的部署。

  1. 什麼是 AWS 可信顧問?

AWS Trusted Advisor 是一種線上資源,可提供即時指導,幫助您遵循 AWS 成本優化、效能、安全性和容錯能力的最佳實踐。

  1. 什麼是 CloudWatch Logs,它們如何幫助監控?

CloudWatch Logs 從 AWS 服務和應用程式擷取日誌資料。它們可協助即時監控、排除故障並分析應用程式和系統日誌。

AWS 彈性負載平衡器 (ELB)

  1. 應用程式負載平衡器 (ALB) 和網路負載平衡器 (NLB) 有什麼不同?
  • ALB 在應用層(第 7 層)執行,用於路由 HTTP/HTTPS 流量。

  • NLB 在傳輸層(第 4 層)執行,用於超低延遲和高吞吐量連接,處理 TCP/UDP 流量。

  1. 應用程式負載平衡器 (ALB) 如何處理路由?

ALB 依據 URL 路徑、主機名稱和 HTTP 標頭等規則路由傳入流量。它提供高級功能,例如黏性會話和 SSL 終止。

  1. 什麼是 SSL 終止,ELB 如何處理它?

SSL 終止是指在負載平衡器層級(而非後端實例)解密 SSL 流量的過程。 ELB 可以為您管理 SSL 憑證並終止 SSL 連線。

  1. 如何使用 Application Load Balancer 設定黏性會話?

您可以透過設定目標群組將使用者會話綁定到特定後端實例來為 ALB 啟用黏性會話(會話親和性)。

  1. 什麼是跨可用區負載平衡?

跨區域負載平衡可確保傳入流量均勻分佈在註冊到負載平衡器的所有執行個體上,無論它們位於哪個可用區域。

AWS 彈性區塊儲存 (EBS) 與資料庫

  1. 什麼是亞馬遜 EBS?

Amazon Elastic Block Store (EBS) 提供持久性區塊儲存磁碟區以與 EC2 執行個體一起使用。 EBS 磁碟區可用作需要頻繁更新的資料(例如資料庫或日誌檔案)的主儲存。

  1. EBS 卷有哪些不同種類?
  • 通用SSD (gp3/gp2)

  • 預先設定 IOPS SSD (io2/io1)

  • 吞吐量最佳化 HDD (st1)

  • 冷硬碟 (sc1)

  1. 什麼是亞馬遜 RDS?

Amazon Relational Database Service (RDS) 是一項託管服務,可讓您輕鬆在雲端設定、操作和擴展關聯式資料庫。它支援 MySQL、PostgreSQL、MariaDB 和 Oracle 等多種引擎。

  1. 什麼是亞馬遜極光?

Amazon Aurora 是完全託管的 MySQL 和 PostgreSQL 相容關聯式資料庫,可提供效能改善和高可用性。

  1. 什麼是亞馬遜 DynamoDB?

Amazon DynamoDB 是一項完全託管的 NoSQL 資料庫服務,可提供快速且可預測的效能以及無縫可擴充性,專為高可用性應用程式而設計。


這 100 個問題涵蓋了廣泛的 AWS 開發營運主題,從基本概念到進階實踐。如果您需要有關任何特定主題的更詳細解釋或有其他問題,請告訴我!

👤 作者

橫幅

加入我們的Telegram 社群||在 GitHub 上關注我以獲取更多 DevOps 內容!


原文出處:https://dev.to/prodevopsguytech/100-aws-devops-interview-questions-and-answers-3g1i


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈