一般

問:什麼是 Bottlerocket?

Bottlerocket 是由 AWS 贊助和支援的 Linux 發行版本,專為託管容器工作負載而建置。Bottlerocket을 사용하면 컨테이너 인프라에 대한 업데이트를 자동화하여 컨테이너식 배포의 가용성을 개선하고 운영 비용을 줄일 수 있습니다.Bottlerocket은 컨테이너를 실행하기 위한 핵심 소프트웨어만 포함하므로, 리소스 사용을 개선하고 보안 공격 표면을 줄이며 관리 부담을 줄여줍니다.또한 Kubernetes 및 Amazon ECS와 같은 컨테이너 오케스트레이터와 통합되어 추가적으로 관리 및 운영 부담을 줄이면서 클러스터에서 컨테이너 호스트를 업데이트할 수 있습니다.

問:在哪些區域可使用 Bottlerocket?

在所有 AWS 商業區域、GovCloud 和 AWS 中國區域均可使用 Bottlerocket。Bottlerocket 是 VMware vSphere 和裸機上 EKS Anywhere 的預設作業系統。此外,VMware 中的 Kubernetes 工作者節點也可以在內部部署中使用,以及在裸機上針對 Kubernetes 工作者節點的 EKS 隨處使用。

問:使用 Bottlerocket 的好處有哪些?

a) 更長的正常執行時間、更低的營運成本和更低的管理複雜性:與 Linux 相比,Bottlerocket 僅包含執行容器所需的元件,具有較少的資源佔用、較短啟動時間和安全攻擊面。스토리지, 컴퓨팅 및 네트워킹 리소스의 사용이 줄어들어 더 작아진 설치 공간으로 비용을 줄이는 데 도움이 됩니다.소프트웨어를 실행하는 데 패키지 관리자가 아닌 컨테이너 기본 요소를 사용하므로 관리 부담이 줄어듭니다.

b) 자동 OS 업데이트로 개선된 보안: Bottlerocket에 대한 업데이트는 단일 단위로 적용되며, 필요한 경우 롤백이 가능하므로 시스템을 사용할 수 없는 상태로 만드는 ‘잘못된’ 업데이트의 위험이 없어집니다.패키지 단위 업데이트 중에 복구할 수 없는 실패로 인해 범용 OS에서 업데이트 실패는 매우 흔합니다.Bottlerocket에서 보안 업데이트는 최소한의 중단으로 제공되는 즉시 자동으로 적용되며 장애가 발생할 경우 롤백됩니다.

c) 오픈 소스 및 범용 가용성: 오픈 개발 모델을 통해 고객, 파트너 및 모든 이해 관계자가 Bottlerocket에 대한 코드를 작성하고 설계를 변경할 수 있습니다.

d) 高級支援:在 Amazon EC2 上使用 AWS 提供的 Bottlerocket 建置包含在同樣的 AWS 支援計劃中,這些支援計劃還涵蓋 Amazon EC2、Amazon EKS、Amazon ECR 等 AWS 服務。

問:Bottlerocket 與 Amazon Linux 有何差異?

Amazon Linux 是一種通用作業系統,用於執行與 RPM 套件管理器或容器封裝在一起的廣泛應用程式。Amazon Linux는 yum, ssh, tcpdump, netconf와 같은 기존 도구를 사용하여 워크로드에 필요한 만큼, 각 인스턴스를 구성하는 기능을 제공하도록 최적화되었습니다.반면, Bottlerocket은 컨테이너 실행을 위해 특별히 구축되었고, 자동화를 통해 많은 컨테이너 호스트를 관리할 수 있습니다.특히, Bottlerocket은 다음과 같은 점에서 Amazon Linux와 다릅니다.

  • Bottlerocket에는 패키지 관리자가 없으며 소프트웨어는 컨테이너로만 실행할 수 있습니다.Bottlerocket에 대한 업데이트는 하나의 원자 단계로 적용 및 롤백되므로 업데이트 오류가 줄어듭니다.
  • Bottlerocket 호스트를 관리하는 기본 메커니즘은 Kubernetes와 같은 컨테이너 오케스트레이터에 기반합니다.與 Amazon Linux 有所不同,不會頻繁登入個別 Bottlerocket 執行個體來進行進階偵錯和疑難排解。

問:Bottlerocket 的核心元件是什麼?

Bottlerocket 的主要元件包括:

  • 컨테이너 런타임으로 Linux 커널, 시스템 소프트웨어 및 컨테이너를 포함하는 최소한의 OS
  • 하나의 단계로 OS 업데이트를 적용 및 롤백하는 원자 업데이트 메커니즘
  • 업데이트를 관리 및 오케스트레이션하기 위한 Kubernetes와 같은 컨테이너 오케스트레이터와의 통합.
  • 可選擇性地針對進階疑難排解和偵錯執行的「管理員容器」。

問:Bottlerocket 的定價為何?

AWS 提供的 Bottlerocket 建置版本可免費使用。您只需為所使用的 EC2 執行個體付費。

問:Bottlerocket 是否支援以秒計費?

是的,支援。Bottlerocket은 Amazon EC2 Linux/Unix 인스턴스 유형의 요금을 사용합니다.초당 결제는 AWS 제공 Bottlerocket 빌드를 EC2에서 기본적으로 사용하는 경우 지원됩니다.請注意,以 Bottlerocket 克為基礎建置的 AWS Marketplace 產品可能會產生相關的小時費用。

問:您是否有公有藍圖?

我們有!

問:如何與 Bottlerocket 社群聯絡?

在 Meetup 上加入 Bottlerocket 社群,以了解有關最新的 Bottlerocket 活動並與社群成員見面。모임 일정은 정기적으로 예약됩니다.

Bottlerocket 사용

AWS에서 Bottlerocket 사용을 시작하려면 어떻게 해야 하나요?

AWS는 AWS Console, CLI 및 SDK를 통해 지원되는 EC2 인스턴스 유형에서 실행하는 데 사용할 수 있는 Bottlerocket용 Amazon Machine Image(AMI)를 제공합니다.AWS는 EKS, ECS, VMware 및 베어 메탈의 EKS Anywhere에서 사용하도록 미리 구성된 Bottlerocket 빌드를 제공합니다.오케스트레이터를 사용하여 각 OS 인스턴스에 로그인하지 않고도 최소한의 가동 중단으로 OS를 업데이트하고 관리할 수 있습니다.

Bottlerocket에서 소프트웨어를 실행하려면 어떻게 해야 하나요?

오케스트레이터를 통해 Bottlerocket 인스턴스에서 컨테이너식 애플리케이션을 시작할 수 있습니다.또한, 이미지 사용자 지정 중에 Bottlerocket에 소프트웨어 및 시작 스크립트를 포함하고 사용할 수도 있습니다.자세한 내용은 Bottlerocket 설명서를 참조하세요.

Kubernetes를 사용하여 Bottlerocket을 배포하고 운영하는 단계는 무엇인가요?

다음 단계를 사용하여 Bottlerocket을 배포하고 지원할 수 있습니다.

  • 1단계: 가상 머신에서 다른 OS와 동일한 방식으로 Bottlerocket을 배포할 수 있습니다.AWS에서는 AWS Management Console, API 또는 AWS CLI를 통해 Bottlerocket을 EC2 인스턴스에 배포할 수 있습니다.Amazon EKS 클러스터에 등록하려면 각 Bottlerocket 인스턴스에 대한 사용자 데이터를 통해 구성 세부 정보를 제공해야 합니다.
  • 2단계: 오케스트레이터로 Bottlerocket을 운영하려면 클러스터에 통합 구성 요소를 배포해야 합니다.통합 구성 요소를 통해 오케스트레이터는 롤링 업데이트를 위해 가동 중단을 최소화하는 방식으로 재부팅을 시작하고 업데이트를 롤백하며 컨테이너를 대체할 수 있습니다.

Bottlerocket에 대한 업데이트를 적용하려면 어떻게 해야 하나요?

Bottlerocket 업데이트는 사용 가능할 경우 사전 구성된 AWS 리포지토리에서 자동으로 다운로드됩니다.업데이트를 적용하려면 Bottlerocket을 재부팅해야 하며, Kubernetes와 같은 오케스트레이터에서 수동으로 시작하거나 관리할 수 있습니다.재부팅에 대한 애플리케이션의 허용 범위와 운영 요구 사항에 따라 재부팅을 처리할 적절한 메커니즘을 선택해야 합니다.애플리케이션이 무상태이고 재부팅에 탄력적인 경우 업데이트가 다운로드된 후 재부팅이 즉시 수행될 수 있습니다.재부팅에 탄력적이지 않은 컨테이너에서 기존의 상태 유지 워크로드(예: 데이터베이스, 장기 실행 LOB 앱 등)를 실행하는 경우 재부팅 전에 상태가 유지되도록 해야 합니다.

Bottlerocket 재부팅은 중단을 줄이기 위해 클러스터에서 업데이트 롤링을 지원하도록 호스트에서 컨테이너를 드레이닝하고 다시 시작하여 오케스트레이터에서 관리할 수 있습니다.Bottlerocket에 대한 업데이트는 실패할 경우 지원되는 오케스트레이터 또는 수동 작업을 통해 안전하게 롤백할 수도 있습니다.Amazon EKS 클러스터Amazon ECS 클러스터에서 ‘Bottlerocket 업데이트 운영자’를 배포하고 사용하는 단계는 Bottlerocket 설명서를 참조하세요.

版本控制和變體

問:Bottlerocket 版本是如何進行版本控制的?

AWS 提供的 Bottlerocket 建置遵循 “major.minor.patch” 語義版本控制方案。Bottlerocket의 마이너 버전은 1년에 여러 번 출시됩니다(예: 새로운 EC2 플랫폼에 대한 지원, 새 오케스트레이터 에이전트에 대한 지원, 오픈 소스 구성 요소에 대한 업데이트).版本方案將指示更新是否包含重大變更。

問:有哪些 Bottlerocket 變體可供選擇?

變體是一種支援不同功能或整合特性 Bottlerocket 建置版本。AWS는 EC2, VMware 및 베어 메탈의 Kubernetes 워커 노드를 지원하는 Bottlerocket 변형을 제공합니다.또한 EC2의 ECS를 위한 Bottlerocket 변형도 제공합니다.您可以查看所有 AWS 提供的變體清單

問:Bottlerocket 是否有支援 NVIDIA GPU 型 Amazon EC2 執行個體類型的變體?

有。Bottlerocket에는 Amazon Elastic Container Services(Amazon ECS)와 EC2의 Kubernetes 워커 노드에서 NVIDIA GPU 기반 Amazon EC2 인스턴스 유형을 지원하는 Bottlerocket 변형이 있습니다.請參閱有關如何在 ECSEKS 上使用這些變體的部落格文章。

問:Bottlerocket 版本發行的頻率是多少?

Bottlerocket 功能版本 (次要版本,例如 1.10.0、1.11.0) 通常以 6 到 8 週的節奏發行。錯誤和 CVE 修正 (修補程式版本,例如 1.10.1、1.11.1) 會視需要進行發行,並且發行節奏視問題的嚴重程度而定。請參閱 CHANGELOG,其中顯示了所有 Bottlerocket 發行版本及其時間表。

支援

問:AWS 為 Bottlerocket 提供哪些類型的支援?

AWS 提供的 Bottlerocket 建置將接受安全性更新、錯誤修正,且包含在 AWS Support 計劃中。지정된 빌드의 지원 기간은 사용하는 컨테이너 오케스트레이터 버전에 따라 달라집니다.상응하는 오케스트레이터 버전이 더 이상 사용되지 않으면 Bottlerocket 빌드는 더 이상 사용되지 않습니다.예를 들어 aws-k8s-1.19는 더 이상 지원되지 않으며, 이는 Kubernetes 1.19에 대한 Bottlerocket 빌드입니다.이는 업스트림에서 더 이상 지원을 받지 못하는 Kubernetes 1.19와 일치합니다.따라서 고객에게 aws-k8s-1.19 노드를 클러스터에서 지원하는 최신 빌드로 교체할 것을 권장하고 있습니다.此外,GitHub 上提供了對 Bottlerocket 的社群支援,您可以在其中發佈問題、功能請求和報告錯誤。有關 CVE 發行和修正的詳細資訊將發佈在 Bottlerocket 變更日誌中。

Amazon Linux 2에 기반한 EKS 및 ECS에 최적화된 AMI는 계속해서 지원되나요?

Amazon Linux에 기반한 최신 EKS에 최적화된 AMI가 지원될 예정이며, 계속해서 보안 업데이트를 수신할 수 있습니다.如需支援生命週期的詳細資訊,請參閱 EKS 最佳化的 Amazon Linux 2 AMIECS 最佳化的 AMI

問:Bottlerocket 支援哪些運算平台和 EC2 執行個體類型?

除了 F、G4ad 和 INF 執行個體類型之外,HVM 和 EC2 裸機執行個體系列支援來自 AWS 的 Bottlerocket 建置。

問:EKS 受管節點群組是否支援 Bottlerocket?

有。자세한 내용은 이 블로그 게시물을 참조하세요.

更新

問:Bottlerocket 有哪些類型的可用更新?

AWS 針對 Bottlerocket 提供預先測試的更新,只需一個步驟即可套用。이 업데이트는 단일 단계를 통해 알려진 양호한 상태로 롤백할 수도 있습니다.결과적으로 일관되지 않은 상태로 인해 시스템을 사용할 수 없게 만드는 ‘잘못된’ 업데이트는 수동 수리가 필요하지만, Bottlerocket에서는 발생하지 않습니다.使用單一步驟原子更新時,複雜性較低,進而減少更新失敗情況。

問:如何將更新套用至 Bottlerocket?

AWS 提供的 Bottlerocket 建置的更新會在可用時自動從預先設定的 AWS 儲存庫中下載。업데이트를 적용하려면 Bottlerocket을 재부팅해야 하며, Kubernetes와 같은 오케스트레이터에서 수동으로 시작하거나 관리할 수 있습니다.재부팅에 대한 애플리케이션의 허용 범위와 운영 요구 사항에 따라 재부팅을 처리할 적절한 메커니즘을 선택해야 합니다.애플리케이션이 무상태이고 재부팅에 탄력적인 경우 업데이트가 다운로드된 후 재부팅이 즉시 수행될 수 있습니다.재부팅에 복원력이 없는 컨테이너에서 기존의 상태 유지 워크로드(예: 데이터베이스 또는 장기 실행 LOB 앱)를 실행하는 경우 재부팅 전에 상태가 유지되도록 해야 합니다.

Bottlerocket 재부팅은 중단을 줄이기 위해 클러스터에서 업데이트 롤링을 지원하도록 호스트에서 컨테이너를 드레이닝하고 다시 시작하여 Kubernetes와 같은 오케스트레이터에서 관리 가능합니다.기본적으로 Bottlerocket은 부팅 시 최신 보안 버전으로 자동 업데이트됩니다.如果透過支援的協調器或手動動作發生故障,也可以安全地回復 Bottlerocket 的更新。

問:Bottlerocket 如何協助確保更新的中斷時間最短?

與 Kubernetes 這樣的協調器整合可讓 Bottlerocket 更新的中斷時間最短。업데이트 프로세스 중에 오케스트레이터는 업데이트하는 호스트에서 컨테이너를 드레이닝하고 클러스터에서 다른 빈 호스트에 배치합니다.또한 업데이트에 실패하면 오케스트레이터는 Bottlerocket의 이전 버전으로 호스트를 롤백합니다.

相容性與遷移

問:我可以在 Bottlerocket 上的容器中執行哪些容器映像?

Bottlerocket 可執行所有符合 OCI 映像格式規範和 Docker 影像的所有容器映像。

問:是否可以將在 Amazon Linux 2 上執行的容器移動到 Bottlerocket?

可以,您可以在 Amazon Linux 2 和 Bottlerocket 之間移動容器,而無需進行任何修改。

問:何時不應該使用 Bottlerocket?

如果要執行容器的營運工作流程設計在主機作業系統上使用 yum 安裝軟體、直接 SSH 至執行個體、個別自訂每個執行個體,或執行非容器化的第三方 ISV 軟體 (例如,用於記錄和監控的代理程式),則 Amazon Linux 2 可能非常適合。Bottlerocket은 컨테이너식 대규모 배포를 실행하고 관리하는 데 최적화되었으며, 위와 같은 많은 활동은 쉽게 허용되지 않습니다.

疑難排解和安全性

問:如何使用 Bottlerocket 偵錯問題?

您可以使用 Bottlerocket 的 API (透過使用者資料或 AWS Systems Manager 叫用) 執行「管理員容器」,然後使用 SSH 登入,以使用較高的權限進行進階偵錯和疑難排解。AWS는 sosreport, traceroute, strace, tcpdump와 같은 디버깅 도구를 설치 및 사용할 수 있도록 지원하는 관리 컨테이너를 제공합니다.不會頻繁登入個別 Bottlerocket 執行個體來進行進階偵錯和疑難排解。

問:什麼是管理員容器?

管理員容器是一種 Amazon Linux 容器映像,包含用於疑難排解和偵錯 Bottlerocket 的公用程式,且可以較高的權限執行。請參閱有關如何使用管理員容器的詳細資訊

問:Bottlerocket 提供哪些容器隔離和安全性功能?

Bottlerocket 可透過僅包含託管容器的必要軟體,進而實現自動安全性更新並減少遭受安全攻擊的風險。Bottlerocket은 컨테이너 간 격리를 위해 컨테이너 제어 그룹(cgroups) 및 커널 네임스페이스를 사용합니다.또한 시행 모드 및 seccomp에서 Security-Enhanced Linux(SELinux)도 제공합니다. 커널의 eBPF는 I/O, 파일 시스템 작업, CPU 사용, 침임 탐지 및 문제 해결을 추적하기 위해 오버헤드가 적은 추적 프레임워크를 제공하여 많은 하위 수준의 시스템 작업을 위해 커널 모듈의 필요성을 줄여줍니다.Bottlerocket은 device-mapper-verity(dm-verity)를 사용합니다. 이는 Linux 커널 기능으로, 루트 권한을 보유하고 있을수 있는 루트킷을 방지할 수 있도록 무결성 검사를 제공합니다.

Bottlerocket 노드에서 로그를 수집하려면 어떻게 해야 하나요?

여러 옵션을 사용하여 Bottlerocket 노드에서 로그를 수집할 수 있습니다.例如,可以使用 CloudWatch Container InsightsFluent Bit with OpenSearch

問:Bottlerocket 是否有 CIS 基準?

是的,Bottlerocket 有 CIS 基準。CIS 벤치마크는 Bottlerocket 고객이 간단하고 효율적으로 구성하거나 규정 미준수 구성을 문서화하는 데 도움이 되는 보안 중심 구성 설정의 카탈로그입니다.Bottlerocket 的 CIS 基準測試包括 1 級和 2 級組態設定檔,並且可以從 CIS 網站存取。

問:Bottlerocket FIPS 是否通過認證?

否,Bottlerocket 還沒有通過 FIPS 認證。我們的藍圖涵蓋了 Bottlerocket 的 FIPS 認證,但目前並未預計何時通過此認證。

問:是否可以使用 Bottlerocket 達到 PCI 合規性?

是,可以使用 Bottlerocket 達到 PCI 合規性。Bottlerocket 인스턴스는 기능 세트를 최적화하고 공격 표면을 축소했기 때문에 더 적은 구성으로 PCI DSS 요구 사항을 충족할 수 있습니다.Bottlerocket 的 CIS 基準是強化指導的絕佳資源,可依據 PCI DSS 要求 2.2 版支援客戶對安全組態標準的要求。客戶也可以利用 Fluent Bit 來支援 PCI DSS 要求 10.2 版下的作業系統層級稽核記錄的客戶要求。AWS 會定期發佈新的 (已修補的) Bottlerocket 執行個體,以協助客戶滿足 PCI DSS 要求 6.2 (適用於 v3.2.1) 和要求 6.3.3 (適用於 v4.0)。

問:Bottlerocket 是否符合 HIPAA 監管工作負載使用的資格?
是,Bottlerocket 是符合 HIPAA 資格的功能,可與 Amazon EC2 和 Amazon EKS 的受管制工作負載搭配使用。如需有關 Amazon EKS 的組態指導,請參閱此白皮書以取得其他資訊。

問:如何依據 CIS 基準強化 Bottlerocket?
請參閱有關強化和驗證 Bottlerocket 的指南 (在其與 Amazon EKS 搭配使用時)。

問:Amazon Inspector 是否支援 Bottlerocket?
有。Amazon Inspector 是一項漏洞管理服務,可不斷掃描 EC2 和容器工作負載以尋找軟體漏洞和意外網路風險。Amazon Inspector 利用 AWS System Manager (SSM) 代理程式來掃描漏洞。在 Bottlerocket 主機中,SSM 代理程式會在控制主機容器範圍內執行,因此您需要確定已在主機中啟用此代理程式。

開放原始碼和商標

問:什麼是 Bottlerocket 的開放原始碼授權?

Bottlerocket 程式碼根據 Apache 2.0 OR MIT 取得授權。Amazon은 Rust에서 해당 Bottlerocket을 작성했습니다. 그래서 커뮤니티에 적합한 라이선스를 선택했습니다.基礎第三方程式碼 (如 Linux 內核) 仍然受其原始授權的約束。

問:如何檢視原始程式碼變更並將其提供給 Bottlerocket?

Bottlerocket 作為 GitHub 上託管的開放原始碼專案發行。설계 문서, 코드, 빌드 도구, 테스트 및 문서는 GitHub에 호스팅됩니다.프로젝트 관리를 위해 GitHub의 버그 및 기능 추적 시스템을 사용합니다.您可以使用標準 GitHub 工作流程來檢視和提供原始程式碼。

問:如何產生包含自有變更的自訂 Bottlerocket 建置版本?

您可以延伸 GitHub 儲存庫,執行變更並按照我們的建置指南進行操作。

問:是否可以建立和轉散佈自己的 Bottlerocket 建置版本?

有。如果您從未修改的原始程式碼建置 Bottlerocket 並轉散佈結果,則只有在分發名稱和與其相關聯的內容都清楚的情況下,才可以使用「Bottlerocket」,並且必須確定其建置時的遞交,包括遞交日期。

問:為了遵守本政策,我需要對修改後的 Bottlerocket 版本進行哪些作業系統變更?

您必須修改作業系統版本檔案,才能依據本政策使用 Bottlerocket,否則必須移除 Bottlerocket 商標。可以透過修改 packages/release/release.spec 和 tools/rpm2img 來完成此操作。您不需要變更系統根文件夾名稱 (/x86_64-bottlerocket-linux-gnu/sys-root)、分割區標籤、目錄路徑和服務檔案描述,即可符合此政策。

問:如果我發現濫用 Bottlerocket 商標的情況,該怎麼辦?

如果您發現對 Bottlerocket 商標有混淆或誤導性的使用或其他濫用,則可以透過以上所述與我們聯絡:trademarks@amazon.com,以便我們進一步調查。