

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 上使用 AL2023 AWS
<a name="aws"></a>

您可以設定 AL2023 以與其他 搭配使用 AWS 服務。例如，您可以在啟動 [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/) (Amazon EC2) 執行個體時選擇 AL2023 AMI。

對於這些設定程序，您可以使用 AWS Identity and Access Management (IAM) 服務。如需 IAM 的完整資訊，請參閱下列參考資料：
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/iam/)
+ [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/)

**Topics**
+ [入門 AWS](#getting-started-aws)
+ [Amazon EC2 上的 AL2023](ec2.md)
+ [在容器中使用 AL2023](container.md)
+ [上的 AL2023 AWS Elastic Beanstalk](beanstalk.md)
+ [在 中使用 AL2023 AWS CloudShell](cloudshell.md)
+ [使用以 AL2023 為基礎的 Amazon ECS AMIs 託管容器化工作負載](ecs.md)
+ [在 AL2023 上使用 Amazon Elastic File System](efs.md)
+ [使用在 AL2023 上建置的 Amazon EMR](emr.md)
+ [在 中使用 AL2023 AWS Lambda](lambda.md)

## 入門 AWS
<a name="getting-started-aws"></a>

### 註冊 AWS 帳戶
<a name="sign-up-for-aws"></a>

如果您沒有 AWS 帳戶，請完成下列步驟來建立一個。

**註冊 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時 AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 [https://aws.amazon.com/](https://aws.amazon.com/) 並選擇**我的帳戶**，以檢視您目前的帳戶活動並管理帳戶。

### 建立具有管理存取權的使用者
<a name="create-an-admin"></a>

註冊 後 AWS 帳戶，請保護 AWS 帳戶根使用者、啟用 AWS IAM Identity Center和建立管理使用者，以免將根使用者用於日常任務。

**保護您的 AWS 帳戶根使用者**

1.  選擇**根使用者**並輸入 AWS 帳戶 您的電子郵件地址，以帳戶擁有者[AWS 管理主控台](https://console.aws.amazon.com/)身分登入 。在下一頁中，輸入您的密碼。

   如需使用根使用者登入的說明，請參閱 *AWS 登入 使用者指南*中的[以根使用者身分登入](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。

   如需說明，請參閱《*IAM 使用者指南*》中的[為您的 AWS 帳戶 根使用者 （主控台） 啟用虛擬 MFA 裝置](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**建立具有管理存取權的使用者**

1. 啟用 IAM Identity Center。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[啟用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，將管理存取權授予使用者。

   如需使用 IAM Identity Center 目錄 做為身分來源的教學課程，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[使用預設值設定使用者存取 IAM Identity Center 目錄](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理存取權的使用者身分登入**
+ 若要使用您的 IAM Identity Center 使用者簽署，請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。

  如需使用 IAM Identity Center 使用者登入的說明，請參閱*AWS 登入 《 使用者指南*》中的[登入 AWS 存取入口網站](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**指派存取權給其他使用者**

1. 在 IAM Identity Center 中，建立一個許可集來遵循套用最低權限的最佳實務。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[建立許可集](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 將使用者指派至群組，然後對該群組指派單一登入存取權。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[新增群組](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

### 授予程式設計存取權
<a name="install-aws-prereq.programmatic-access"></a>

如果使用者想要與 AWS 外部互動，則需要程式設計存取 AWS 管理主控台。授予程式設計存取權的方式取決於正在存取的使用者類型 AWS。

若要授予使用者程式設計存取權，請選擇下列其中一個選項。


****  

| 哪個使用者需要程式設計存取權？ | 到 | 根據 | 
| --- | --- | --- | 
| IAM | （建議） 使用主控台登入資料做為臨時登入資料，以簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs |  請依照您要使用的介面所提供的指示操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/aws.html)  | 
|  人力資源身分 (IAM Identity Center 中管理的使用者)  | 使用暫時登入資料簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs |  請依照您要使用的介面所提供的指示操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/aws.html)  | 
| IAM | 使用暫時登入資料簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs | 遵循《IAM 使用者指南》中[將臨時登入資料與 AWS 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)搭配使用的指示。 | 
| IAM | (不建議使用)使用長期登入資料來簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs |  請依照您要使用的介面所提供的指示操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/aws.html)  | 

# Amazon EC2 上的 AL2023
<a name="ec2"></a>

使用下列其中一個程序來啟動具有 AL2023 AMI 的 Amazon EC2 執行個體。您可以選擇標準 AMI 或最小 AMI。如需標準 AMI 和最小 AMI 之間差異的詳細資訊，請參閱[比較 AL2023 標準 (預設) 與最小 AMI](AMI-minimal-and-standard-differences.md)。

**Topics**
+ [使用 Amazon EC2 主控台啟動 AL2023](#launch-from-ec2-console)
+ [使用 SSM 參數和 啟動 AL2023 AWS CLI](#launch-via-aws-cli)
+ [使用 啟動最新的 AL2023 AMI CloudFormation](#launch-from-cloudformation)
+ [使用特定 AMI ID 啟動 AL2023](#launch-by-ami-id)
+ [AL2023 AMI 棄用和生命週期](#ami-deprecation)
+ [連線至 AL2023 執行個體](connecting-to-instances.md)
+ [比較 AL2023 標準和最小 AMIs](AMI-minimal-and-standard-differences.md)

## 使用 Amazon EC2 主控台啟動 AL2023
<a name="launch-from-ec2-console"></a>

使用 Amazon EC2 主控台來啟動 AL2023 AMI。

**注意**  
對於 ARM 型執行個體，AL2023 僅支援使用 Graviton2 或更新版本處理器的執行個體類型。AL2023 不支援 A1 執行個體。

請遵循下列步驟，以從 Amazon EC2 主控台並使用 AL2023 AMI 啟動 Amazon EC2 執行個體。

**使用 AL2023 AMI 啟動 EC2 執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **AMI**。

1. 從下拉式功能表中選擇 **Public images** (公有映像)。

1. 在搜尋欄位中輸入 **al2023-ami**。
**注意**  
確保 **Amazon** 出現在 **Owner alias** (所有者別名) 欄中。

1. 從清單選取映像。在 **Source** (來源) 下，您可以判斷 AMI 是標準或最小。AL2023 AMI 名稱可使用以下格式來解釋：

   `'al2023-[ami || ami-minimal]-2023.0.[release build date].[build number]-kernel-[version number]-[arm64 || x86_64]'`

1. 下圖顯示 AL2023 AMI 的部分清單。  
![\[Source (來源) 欄下的 AL2023 AMI 清單。\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/images/launch-instance.png)

如需啟動 Amazon EC2 執行個體的詳細資訊，請參閱《[Amazon EC2 使用者指南》中的 Amazon EC2 Linux 執行個體入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。 *Amazon EC2 *

## 使用 SSM 參數和 啟動 AL2023 AWS CLI
<a name="launch-via-aws-cli"></a>

在 中 AWS CLI，您可以使用 AMI 的 SSM 參數值來啟動新的 AL2023 執行個體。更具體來說，請使用下列清單的其中一個動態 SSM 參數值，並在 SSM 參數值/ 前面加 `/aws/service/ami-amazon-linux-latest/`。您可以在 AWS CLI中使用此方式來啟動執行個體。
+ `al2023-ami-kernel-default-arm64` 適用於 arm64 架構
+ `al2023-ami-minimal-kernel-default-arm64` 適用於 arm64 架構 (最小 AMI)
+ `al2023-ami-kernel-default-x86_64` 適用於 x86\$164 架構
+ `al2023-ami-minimal-kernel-default-x86_64` 適用於 x86\$164 架構 (最小 AMI)

**注意**  
每個*斜體*項目皆為範例參數。請以您自己的資訊取代。

```
$ aws ec2 run-instances \
  --image-id \
    resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 \
  --instance-type m5.xlarge \
  --region us-east-1 \
  --key-name aws-key-us-east-1 \
  --security-group-ids sg-004a7650
```

`--image-id` 旗標指定 SSM 參數值。

`--instance-type` 旗標指定執行個體的類型和大小。此旗標必須與您選取的 AMI 類型相容。

`--region` 旗標會指定您建立執行個體 AWS 區域 的 。

`--key-name` 旗標會指定用於連線至執行個體 AWS 區域的 金鑰。如果您沒有提供位於建立執行個體所在區域的金鑰，就無法使用 SSH 連線至執行個體。

`--security-group-ids` 旗標指定確定輸入和輸出網路流量存取權限的安全群組。

**重要**  
 AWS CLI 需要您指定現有的安全群組，以允許透過連接埠 從遠端機器存取執行個體TCP:22。如果沒有指定的安全群組，新執行個體會放置在預設安全群組中。在預設安全群組中，您的執行個體只能與 VPC 中的其他執行個體連線。

如需詳細資訊，請參閱《*AWS Command Line Interface 使用者指南*》中的[啟動、列出及終止 Amazon EC2 執行個體](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-instances.html)。

## 使用 啟動最新的 AL2023 AMI CloudFormation
<a name="launch-from-cloudformation"></a>

若要使用 啟動 AL2023 AMI CloudFormation，請使用下列其中一個範本。

**注意**  
`x86_64` 和 `Arm64` AMI 各自需要不同的執行個體類型。如需詳細資訊，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)

`JSON` 範本：

```
{
  "Parameters": {
    "LatestAmiId": {
      "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>",
      "Default": "/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64"
    }
  },
  "Resources": {
    "MyEC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "InstanceType": "t2.large",
        "ImageId": {
          "Ref": "LatestAmiId"
        }
      }
    }
  }
}
```

`YAML` 範本：

```
Parameters:
  LatestAmiId:
    Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
    Default: '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'

Resources:
  Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      InstanceType: 't2.large'
      ImageId: !Ref LatestAmiId
```

如有需要，請務必替換「預設」部分末尾的 AMI 參數。以下參數值可用於：
+ `al2023-ami-kernel-6.1-arm64` 適用於 arm64 架構
+ `al2023-ami-minimal-kernel-6.1-arm64` 適用於 arm64 架構 (最小 AMI)
+ `al2023-ami-kernel-6.1-x86_64` 適用於 x86\$164 架構
+ `al2023-ami-minimal-kernel-6.1-x86_64` 適用於 x86\$164 架構 (最小 AMI)

以下是動態核心規格。預設核心版本會隨著每次重大核心版本更新而自動變更。
+ `al2023-ami-kernel-default-arm64` 適用於 arm64 架構
+ `al2023-ami-minimal-kernel-default-arm64` 適用於 arm64 架構 (最小 AMI)
+ `al2023-ami-kernel-default-x86_64` 適用於 x86\$164 架構
+ `al2023-ami-minimal-kernel-default-x86_64` 適用於 x86\$164 架構 (最小 AMI)

## 使用特定 AMI ID 啟動 AL2023
<a name="launch-by-ami-id"></a>

您可以使用 AMI ID 啟動特定的 AL2023 AMI。您可以透過查看 Amazon EC2 控制台中的 AMI 列表，來確定需要哪個 AL2023 AMI ID。或者，您可以使用 AWS Systems Manager。如果您使用系統管理員，請務必從上一節列出的 AMI 別名中選取 AMI 別名。如需詳細資訊，請參閱[使用 AWS Systems Manager 參數存放區查詢最新的 Amazon Linux AMI IDs](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/)。

## AL2023 AMI 棄用和生命週期
<a name="ami-deprecation"></a>

每個新的 AL2023 發布都含有新的 AMI。當 AMI 註冊時，會標記棄用日期。每個 AL2023 AMI 的棄用日期都是自發行日起 90 天，以符合針對每個核心版本提供的 [AL2023 上的核心即時修補](live-patching.md) 時間段。

**注意**  
90 天棄用日期是指個別 AMI，並不是指 AL2023 [發行節奏](release-cadence.md) 或產品支援期限。

如需 AMI 棄用的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[棄用 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html)。

定期使用更新的 AMI 啟動執行個體，以確保執行個體使用最新的安全性更新 (包括更新的核心) 啟動。如果您啟動舊版 AMI 並套用更新，執行個體會有一段時間沒有最新的安全性更新。為確保您使用最新的 AMI，建議使用 SSM 參數。

如需使用 SSM 參數啟動執行個體的詳細資訊，請參閱：
+ [使用 SSM 參數和 啟動 AL2023 AWS CLI](#launch-via-aws-cli)
+ [使用 啟動最新的 AL2023 AMI CloudFormation](#launch-from-cloudformation)

# 連線至 AL2023 執行個體
<a name="connecting-to-instances"></a>

使用 SSH 或 AWS Systems Manager 連線到您的 AL2023 執行個體。

**使用 SSH 連線至您的執行個體**  
如需如何使用 SSH 連線至執行個體的指示，請參閱《*Amazon EC2 使用者指南*》中的[使用 SSH 連線至 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)。

**使用 連線至您的執行個體 AWS Systems Manager**  
如需如何使用 AWS Systems Manager 連接到 AL2023 執行個體的指示，請參閱《*Amazon EC2 使用者指南*》中的[使用 Session Manager 連接到 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/session-manager.html)。

**使用 Amazon EC2 Instance Connect**  
AL2023 AMI 不包含最小 AMI，預設會隨附安裝的 EC2 Instance Connect 代理程式。若要將 EC2 Instance Connect 與從最小 AMI 啟動的 AL2023 執行個體搭配使用，您必須安裝 `ec2-instance-connect`套件。如需使用 EC2 Instance Connect 的指示，請參閱《*Amazon EC2 使用者指南*》中的[使用 EC2 Instance Connect 連線至 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-eic.html)。

# 比較 AL2023 標準和最小 AMIs
<a name="AMI-minimal-and-standard-differences"></a>

您可以使用標準 （預設） 或最小 AL2023 AMI 來啟動 Amazon EC2 執行個體。如需如何使用標準或最小 AMI 類型啟動 Amazon EC2 執行個體的說明，請參閱 [Amazon EC2 上的 AL2023](ec2.md)。

標準 AL2023 AMI 隨附所有最常用的應用程式和工具。如果您想快速開始並且對自訂 AMI 不感興趣，建議使用標準 AMI。

最小 AL2023 AMI 是基本且簡化的版本，僅包含執行作業系統 (OS) 所需的最基本工具和公用程式。如果您希望將作業系統的使用空間降到最低，建議您使用最小 AMI。最小 AMI 可稍微降低磁碟空間使用率，並提高長期成本效益。如果您想要更小的作業系統，且不介意手動安裝工具和應用程序，則適合使用最小 AMI。

容器映像更接近套件組中的 AL2023 最小 AMI。

# 比較 Amazon Linux 2023 映像安裝的套件
<a name="image-comparison"></a>

AL2023 AMI、Minmal AMI 和 Container 映像上存在的 RPMs 比較。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/image-comparison.html)

# 在容器中使用 AL2023
<a name="container"></a>

**注意**  
 如需如何使用 AL2023 在 Amazon ECS 上託管容器化工作負載的詳細資訊，請參閱 [適用於 Amazon ECS 容器主機的 AL2023](ecs.md)。

 根據使用案例，AL2023 有多種可在容器內使用的方式。[AL2023 基本容器映像](base-container.md) 最類似 Amazon Linux 2 容器映像和 AL2023 最小 AMI。

 對於進階使用者，我們提供 AL2023.2 版本中介紹的最小容器映像，以及描述如何建置[準系統容器](barebones-containers.md)的文件。

 AL2023 也可用於託管容器化工作負載，無論是以 AL2023 為基礎的容器映像，或是以其他 Linux 發行版為基礎的容器。您可以直接使用 [適用於 Amazon ECS 容器主機的 AL2023](ecs.md) 或使用提供的容器執行期套件。`docker`、`containerd` 和 `nerdctl` 套件可以在 AL2023 上安裝和使用。

**Topics**
+ [使用 AL2023 基礎容器映像](base-container.md)
+ [AL2023 最小容器映像](minimal-container.md)
+ [建置裸機 AL2023 容器映像](barebones-containers.md)
+ [比較 Amazon Linux 2023 容器映像安裝的套件](al2023-container-image-types.md)
+ [比較 Amazon Linux 2023 最小 AMI 與容器映像安裝的套件](al2023-container-ami.md)

# 使用 AL2023 基礎容器映像
<a name="base-container"></a>

AL2023 容器映像是從包含在 AL2023 AMI 中的相同軟體元件所建置。該映像可用於任何環境中並作為 Docker 工作負載的基礎映像。如果在 [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/) 中的應用程式中使用 Amazon Linux AMI，則可以使用 Amazon Linux 容器映像對應用程式進行容器化。

在本機開發環境中使用 Amazon Linux 容器映像，然後使用 [Amazon Elastic Container Service](https://docs.aws.amazon.com/AmazonECS/latest/userguide/) (Amazon ECS) 將應用程式推送至 AWS 。如需詳細資訊，請參閱《*Amazon Elastic Container Registry 使用者指南*》中的[搭配使用 Amazon ECR 映像與 Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html)。

Amazon Linux 容器映像可在 Amazon ECR Public 使用。您可以透過指定的 AWS 代表提供 AL2023 的意見回饋，或在 GitHub 的 [amazon-linux-2023 儲存庫](https://github.com/amazonlinux/amazon-linux-2023/issues)中提出問題。

****從 Amazon ECR Public 中提取 Amazon Linux 容器映像****

1. 向 Amazon Linux Public 登錄檔驗證您的 Docker 用戶端。驗證字符有效時間為 12 小時。如需詳細資訊，請參閱《*Amazon Elastic Container Registry 使用者指南*》中的[私有登錄檔身分驗證](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html)。
**注意**  
使用最新版本的 第 2 AWS CLI 版支援 **get-login-password**命令。如需詳細資訊，請參閱《*AWS Command Line Interface 使用者指南*》中的[安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

   ```
   $ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
   ```

   輸出如下。

   ```
   Login succeeded
   ```

1. 使用 **docker pull** 命令提取 Amazon Linux 容器映像。若要在 Amazon ECR 公共映像庫上查看 Amazon Linux 容器映像，請參閱 [Amazon ECR 公共映像庫 - amazonlinux](https://gallery.ecr.aws/amazonlinux/amazonlinux)。
**注意**  
當您提取 AL2023 Docker 容器映像時，您可以使用下列其中一種格式的標籤：  
若要取得 AL2023 容器映像的最新版本，請使用 `:2023` 標籤。
若要取得 AL2023 的特定版本，您可以使用下列格式：  
`:2023.[0-7 release quarter].[release date].[build number]`
以下範例使用標籤 `:2023` 並提取 AL2023 最新可用的容器映像。

   ```
   $ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023
   ```

1. (選用) 在本機執行容器。

   ```
   $ docker run -it --security-opt seccomp=unconfined public.ecr.aws/amazonlinux/amazonlinux:2023 /bin/bash
   ```

**從 Docker Hub 提取 AL2023 容器映像**

1. 使用 **docker pull** 命令提取 AL2023 容器映像。

   ```
   $ docker pull amazonlinux:2023
   ```

1. (選用) 在本機執行容器。

   ```
   $ docker run -it amazonlinux:2023 /bin/bash
   ```
**注意**  
AL2023 的容器映像僅使用 `dnf` 套件管理員來安裝軟體套件。這表示沒有 `amazon-linux-extras` 或同等的命令可用於其他軟體。

# AL2023 最小容器映像
<a name="minimal-container"></a>

**注意**  
 標準 AL2023 容器映像適用於大多數使用案例，而適應最小容器映像可能比適應 AL2023 基礎容器映像更有效。

 在 AL2023.2 中引入的 AL2023 最小容器映像與基本容器映像不同，因為它只包含安裝其他套件所需的裸機最小套件。最小容器映像的設計是一組最小的套件，而不是一組方便的套件。

 AL2023 最小容器映像是由 AL2023 中已有的軟體元件建置而成。最小容器映像的主要差異是使用 `microdnf`來提供`dnf`套件管理員，而不是全功能Python型 `dnf`。這可讓最小容器映像更小，因為沒有包含在 AL2023 AMIs 和基礎容器映像中的`dnf`套件管理員完整功能集。

 AL2023 最小容器映像會形成 `provided.al2023` AWS Lambda 執行時間環境的基礎。

 如需最小容器映像中包含之套件的詳細清單，請參閱 [比較 Amazon Linux 2023 容器映像安裝的套件](al2023-container-image-types.md)。

## 最小容器映像的大小
<a name="container-minimal-size"></a>

 由於 AL2023 最小容器映像包含的套件少於 AL2023 基礎容器映像，因此也明顯較小。下表比較 Amazon Linux 目前和過去版本的容器映像選項。

**注意**  
 映像大小如 [Amazon ECR 公共映像庫的 Amazon Linux](https://gallery.ecr.aws/amazonlinux/amazonlinux) 所示。


| 影像 | 版本 | 映像大小 | 注意 | 
| --- | --- | --- | --- | 
| Amazon Linux 1 (AL1) | 2018.03.0.20230918.0 | 62.3MB | 僅限 x86-64 | 
| Amazon Linux 2 | 2.0.20230926.0 | 64.2MB | aarch64 比 x86-64 大 1.6 MB | 
| Amazon Linux 2023 基本容器映像 | 2023.2.20231002.0 | 52.4MB |  | 
| Amazon Linux 2023 最小容器映像 | 2023.2.20231002.0-minimal | 35.2MB |  | 

## 使用 AL2023 最小容器映像
<a name="using-container-minimal"></a>

 AL2023 最小容器映像可在 上使用，ECR`2023-minimal`標籤一律指向最新的 AL2023 型最小容器映像，而`minimal`標籤可能會更新為較 AL2023 更新的 Amazon Linux 版本。

 您可以使用 `docker`搭配下列範例提取這些標籤：

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:minimal
```

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023-minimal
```

下列範例顯示`Dockerfile`採用最小容器映像並在其上安裝 GCC 的 ：

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2023-minimal
RUN dnf install -y gcc && dnf clean all
```

# 建置裸機 AL2023 容器映像
<a name="barebones-containers"></a>

AL2023 容器映像是從包含在 AL2023 AMI 中的相同軟體元件所建置。它包含的軟體可讓基礎容器層的行為類似於在 Amazon EC2 執行個體上執行的行為，例如套件管理員 `dnf`。本節說明如何從頭開始建構容器，只包含應用程式所需的裸機最低相依性。

**注意**  
標準 AL2023 容器映像適用於大多數使用案例。使用標準容器映像可讓您輕鬆地以映像為基礎進行建置。裸機容器映像可讓您更難以在映像上建置。

**為應用程序建立具有最小相依性的容器**

1. 決定執行期相依性。這將根據您的應用程式而有所不同。

1. 構建一個可建置 `FROM scratch` 的 `Dockerfile` / `Containerfile`。下列的 `Dockerfile` 範例可用來建置只包含 `bash` shell 及其相依性的容器。

   ```
   FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as build
   RUN mkdir /sysroot
   RUN dnf --releasever=$(rpm -q system-release --qf '%{VERSION}') \
     --installroot /sysroot \
     -y \
     --setopt=install_weak_deps=False \
     install bash
   
   FROM scratch
   COPY --from=build /sysroot /
   WORKDIR /
   ENTRYPOINT ["/bin/bash"]
   ```

   1. 此 `Dockerfile` 的運作方式：

     1.  啟動名為 `build` 的 AL2023 容器。此容器將用於引導準系統容器，此容器本身不會部署，而是生成要部署的容器。

     1.  建立 `/sysroot` 目錄。此目錄將會是 `build` 容器安裝準系統容器所需相依性的目錄。在後續步驟中，`/sysroot` 路徑會封裝成準系統映像的根目錄。

         使用 `--installroot` 選項並以此方式 `dnf`，是建立其他 AL2023 映像的方式。這是 `dnf` 用來執行安裝程式和映像建立工具的功能。

     1.  調用 `dnf` 以將套件安裝到 `/sysroot`。

         `rpm -q system-release --qf '%{VERSION}'` 命令查詢 (`-q`) `system-release` 套件、設定查詢格式 (`--qf`) 以印出受查詢的套件版本 (`%{VERSION}` 變數是 `RPM` 版本的 `rpm` 變數)。

         將 `dnf` 的 `--releasever` 引數設為 `build` 容器中的 `system-release` 版本，每次發行 Amazon Linux 的更新版容器基本映像時，`Dockerfile` 就能用來重建準系統容器。

         您可以將 `--releasever` 設定為任何 Amazon Linux 2023 版本，例如 2023.10.20260325。這樣做意味著`build`容器將作為最新的 AL2023 版本執行，但無論目前的 AL2023 版本為何，從 2023.10.20260325 建置準系統容器。

         `--setopt=install_weak_deps=False` 組態選項會告訴 `dnf` 只安裝*必要*的相依性，而非推薦或建議的相依性。

     1. 將已安裝的系統複製到空白 (`FROM scratch`) 容器的根目錄中。

     1. 在此情況 `/bin/bash` 下，將 `ENTRYPOINT` 社為所需的二進位。

1. 建立目錄，並將步驟 2 範例的內容新增至名為 `Dockerfile` 的檔案。

   ```
   $ mkdir al2023-barebones-bash-example
   	$ cd al2023-barebones-bash-example
   	$ cat > Dockerfile <<EOF
   FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as build
   RUN mkdir /sysroot
   RUN dnf --releasever=$(rpm -q system-release --qf '%{VERSION}') \
     --installroot /sysroot \
     -y \
     --setopt=install_weak_deps=False \
     install bash && dnf --installroot /sysroot clean all
   
   FROM scratch
   COPY --from=build /sysroot /
   WORKDIR /
   ENTRYPOINT ["/bin/bash"]
   EOF
   ```

1. 執行下列命令來建置容器。

   ```
   $ docker build -t al2023-barebones-bash-example
   ```

1. 使用下列命令執行容器，以查看僅 `bash` 容器的最小程度。

   ```
   $ docker run -it --rm al2023-barebones-bash-example
   bash-5.2# rpm
   bash: rpm: command not found
   bash-5.2# du -sh /usr/
   bash: du: command not found
   bash-5.2# ls
   bash: ls: command not found
   bash-5.2# echo /bin/*
   /bin/alias /bin/bash /bin/bashbug /bin/bashbug-64 /bin/bg /bin/catchsegv /bin/cd /bin/command /bin/fc /bin/fg /bin/gencat /bin/getconf /bin/getent /bin/getopts /bin/hash /bin/iconv /bin/jobs /bin/ld.so /bin/ldd /bin/locale /bin/localedef /bin/pldd /bin/read /bin/sh /bin/sotruss /bin/sprof /bin/type /bin/tzselect /bin/ulimit /bin/umask /bin/unalias /bin/wait /bin/zdump
   ```

如需更實際的範例，下列程序會為顯示 `Hello World!` 的 C 應用程式建置容器。

1. 建立空白目錄，然後新增 C 原始碼和 `Dockerfile`。

   ```
   $ mkdir al2023-barebones-c-hello-world-example
   $ cd al2023-barebones-c-hello-world-example
   $ cat > hello-world.c <<EOF
   #include <stdio.h>
   int main(void)
   {
     printf("Hello World!\n");
     return 0;
   }
   EOF
   
   $ cat > Dockerfile <<EOF
   FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as build
   COPY hello-world.c /
   RUN dnf -y install gcc
   RUN gcc -o hello-world hello-world.c
   RUN mkdir /sysroot
   RUN mv hello-world /sysroot/
   RUN dnf --releasever=$(rpm -q system-release --qf '%{VERSION}') \
     --installroot /sysroot \
     -y \
     --setopt=install_weak_deps=False \
     install glibc && dnf --installroot /sysroot clean all
   
   FROM scratch
   COPY --from=build /sysroot /
   WORKDIR /
   ENTRYPOINT ["/hello-world"]
   EOF
   ```

1. 使用下列命令來建置容器。

   ```
   $ docker build -t al2023-barebones-c-hello-world-example .
   ```

1. 使用下列命令來執行容器。

   ```
   $ docker run -it --rm al2023-barebones-c-hello-world-example
   Hello World!
   ```

# 比較 Amazon Linux 2023 容器映像安裝的套件
<a name="al2023-container-image-types"></a>

AL2023 基礎容器映像上出現RPMs 與 AL2023 最小容器映像上出現RPMs 的比較。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/al2023-container-image-types.html)

# 比較 Amazon Linux 2023 最小 AMI 與容器映像安裝的套件
<a name="al2023-container-ami"></a>

AL2023 最小 AMI 上出現RPMs 與 AL2023 基礎和最小容器映像上出現的 RPMs 的比較。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/linux/al2023/ug/al2023-container-ami.html)

# 上的 AL2023 AWS Elastic Beanstalk
<a name="beanstalk"></a>

 AWS Elastic Beanstalk 是一種用於部署和擴展 Web 應用程式和服務的服務。您只要上傳程式碼，Elastic Beanstalk 即會自動處理部署作業；無論是容量佈建、負載平衡、自動擴展或應用程式運作狀態監控，該服務都能滿足所需。如需詳細資訊，請參閱 [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)。

 若要使用 Elastic Beanstalk，您須建立應用程式、將應用程式版本 (採用諸如 Java .war 檔案之應用程式原始碼套件的形式) 上傳至 Elastic Beanstalk，然後提供應用程式的部分資訊。Elastic Beanstalk 會自動啟動環境，並建立和設定執行程式碼所需的 AWS 資源。如需詳細資訊，請參閱[《AWS Elastic Beanstalk 開發人員指南》](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html)。

 Elastic Beanstalk Linux 平台使用 Amazon EC2 執行個體，而這些執行個體執行 Amazon Linux。自 2023 年 8 月 4 日起，Elastic Beanstalk 提供以下基於 Amazon Linux 2023 的平台分支：Docker、Tomcat、Java SE、Node.js、PHP 和 Python。Elastic Beanstalk 正在努力在更多 Elastic Beanstalk 平台上發佈對 AL2023 的支援。

 您可以在《[https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome)》的「[Elastic Beanstalk Linux 平台](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux.html)」一節中查看 Elastic Beanstalk 平台支援和目前建置在 AL2023 上的完整平台清單。

 您可以在 [Elastic Beanstalk 版本備註](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/relnotes.html)中查看新 Elastic Beanstalk 平台的版本備註以及現有平台的版本 

# 在 中使用 AL2023 AWS CloudShell
<a name="cloudshell"></a>

 AWS CloudShell 是以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。您可以從 AWS 管理主控台 幾種不同的方式導覽至 CloudShell。如需詳細資訊，請參閱[如何開始使用 AWS CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html#how-to-get-started) 

 AWS CloudShell目前以 Amazon Linux 2 為基礎的 將遷移至 AL2023。從 2023 年 12 月 4 日開始，遷移至 AL2023 的所有 都將開始推出。 AWS 區域 如需有關 CloudShell 遷移到 AL2023 的詳細資訊，請參閱[AWS CloudShell 從 Amazon Linux 2 遷移到 Amazon Linux 2023](https://docs.aws.amazon.com/cloudshell/latest/userguide/cloudshell-AL2023-migration.html)。

# 使用以 AL2023 為基礎的 Amazon ECS AMIs 託管容器化工作負載
<a name="ecs"></a>

**注意**  
 如需如何在容器內使用 AL2023 的詳細資訊，請參閱 [容器中的 AL2023](container.md)。

 Amazon Elastic Container Service (Amazon ECS) 為全受管容器協同運作服務，可讓您輕鬆部署、管理和擴展容器化應用程式。Amazon ECS 是全受管服務，內建 AWS 組態和操作最佳實務。它與 AWS 和第三方工具整合，例如 Amazon Elastic Container Registry (Amazon ECR) 和 Docker。這種整合可讓團隊能夠更輕鬆地專注於建置應用程式，而無需為環境分心。您可以在雲端跨 AWS 區域執行和擴展容器工作負載，而無需進行控制平面管理等複雜任務。

您可以使用以 AL2023 為基礎的 Amazon ECS 最佳化 AMI，在 AL2023 上託管容器化工作負載。如需詳細資訊，請參閱 [Amazon ECS 最佳化 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) 

## 與 AL2 相比，Amazon ECS 的 AL2023 變更 AL2
<a name="ecs-al2-changes"></a>

 如同 AL2, AL2023提供以 Amazon ECS Linux 執行個體身分執行 所需的基本套件。在 AL2 中，`containerd`、 `docker`和 `ecs-init`套件可透過 取得`amazon-linux-extras`，而 AL2023 會在核心儲存庫中包含這些套件。

 透過版本控制的儲存庫功能進行確定性升級時，每個 AL2023 AMI 預設都會鎖定到特定的儲存庫版本。AL2023 Amazon ECS 最佳化 AMI 也是如此。在部署之前，您可以仔細管理和測試環境的所有更新，並提供在發生問題時還原至先前 AMI 內容的簡單方法。如需此 AL2023 功能的詳細資訊，請參閱 [透過 AL2023 上的版本控制儲存庫進行確定性升級](deterministic-upgrades.md)。

 AL2023 透過 AL2 AL2。如需詳細資訊，請參閱[整合控制群組階層 (cgroup v2)](cgroupv2.md)。

**注意**  
 2AL2023.2.[20230920 之前的 AL2023](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.2.20230920.html) 版本 （第一個 AL2023.2 版本） 包含 cgroup Out-of-Memory `systemd` (OOM) 處理的 錯誤。cgroup 中的所有程序一律遭到終止，而不是 OOM-Killer 一次選擇一個程序，這是預期的行為。  
 與 AL2 行為相比，這是迴歸，截至 AL2023 的 2023.2AL202320230920 版本為止是固定的。

 建置 Amazon ECS 最佳化 AMI 的程式碼可在 [amazon-ecs-ami GitHub 專案](https://github.com/aws/amazon-ecs-ami)上取得。[版本備註](https://github.com/aws/amazon-ecs-ami/releases)說明哪些 AL2023 版本對應到哪些 Amazon ECS AMI 版本。

## 自訂基於 AL2023 的 Amazon ECS 最佳化 AMI
<a name="custom-ecs-amis"></a>

**重要**  
 我們建議您使用 Amazon ECS 最佳化 AL2023 AMI。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 最佳化 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)。 **

 您可以使用與 Amazon ECS 用來建立自訂 AMI 相同的建置指令碼。如需詳細資訊，請參閱 [Amazon ECS 最佳化 Linux AMI 建置指令碼](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-build-scripts.html)。

# 在 AL2023 上使用 Amazon Elastic File System
<a name="efs"></a>

Amazon Elastic File System (Amazon EFS) 提供無伺服器、完全彈性的檔案儲存功能，讓您無需佈建或管理儲存容量和效能，即可分享檔案資料。Amazon EFS 可隨需擴展至 PB 級，而不會中斷應用程式，並可隨著您新增和移除檔案而自動擴展及縮減。因爲 Amazon EFS 採用簡單的 Web 服務介面，您可以快速輕鬆地建立和設定檔案系統。此服務會為您管理所有檔案儲存基礎設施，這表示您可以避免部署、修補和維護複雜檔案系統組態的複雜性。

Amazon EFS 支援網路檔案系統第 4 版 (NFSv4.1 和 NFSv4.0) 協定，因此您目前使用的應用程式和工具都可以與 Amazon EFS 無縫配合使用。包括 Amazon EC2、Amazon ECS 和 在內的多個運算執行個體 AWS Lambda可以同時存取 Amazon EFS 檔案系統。因此，EFS 檔案系統可針對在一個以上運算執行個體或伺服器執行的工作負載和應用程式，提供共同的資料來源。

## 在 AL2023 上安裝 `amazon-efs-utils`
<a name="efs-utils"></a>

 `amazon-efs-utils` 套件可在要安裝和用於存取 Amazon EFS 檔案系統的 AL2023 儲存庫中使用。

**在 AL2023 上安裝 `amazon-efs-utils` 套件**
+ `amazon-efs-utils` 使用下列命令安裝 。

  ```
  $ dnf -y install amazon-efs-utils
  ```

## 在 AL2023 上掛載 Amazon EFS 檔案系統
<a name="mount-efs"></a>

 安裝 `amazon-efs-utils` 之後，您可以在 AL2023 執行個體上掛載 Amazon EFS 檔案系統。

**在 AL2023 上掛載 Amazon EFS 檔案系統**
+ 若要使用檔案系統 ID 進行掛載，請使用下列命令。

  ```
  sudo mount -t efs file-system-id efs-mount-point/
  ```

 您也可以掛載檔案系統，以便使用 TLS 加密傳輸中的資料，或使用 DNS 名稱或掛載目標 IP，而不是檔案系統 ID。如需詳細資訊，請參閱[使用 EFS 掛載協助程式在 Amazon Linux 執行個體上掛載](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-helper-ec2-linux.html)。

# 使用在 AL2023 上建置的 Amazon EMR
<a name="emr"></a>

 Amazon EMR 是一種 Web 服務，可讓您輕鬆地使用 Apache Hadoop 和 AWS提供的服務，以高效率地處理大量資料。

## AL2023 型 Amazon EMR 版本
<a name="emr-ami"></a>

 Amazon EMR 7.0.0 版是建置於 AL2023 的第一個版本。在此版本中，AL2023 是 Amazon EMR 的基礎作業系統，將 AL2023 的所有優勢帶入 Amazon EMR。如需詳細資訊，請參閱 [Amazon EMR 7.0.0 版本備註。](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-700-release.html)

## EKS 上基於 Amazon EMR 的 AL2023
<a name="emr-on-eks"></a>

 EKS 6.13 上的 Amazon EMR 是導入 AL2023 作為選項的第一個版本。在此版本中，您可以將 Spark 與 AL2023 同時啟動作為作業系統，並搭配 Java 17 執行期。如需詳細資訊，請參閱 [Amazon EMR on EKS 6.13 版本備註](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-6.13.0.html)和所有 [Amazon EMR on EKS 版本備註](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-releases.html)。

# 在 中使用 AL2023 AWS Lambda
<a name="lambda"></a>

 您可以使用 執行程式碼 AWS Lambda，而無需佈建或管理伺服器。您只要按實際使用的運算時間付費即可，未執行程式碼時不必支付任何費用。可以針對幾乎任何類型的應用程式或後端服務執行程式碼，且通常都不需要管理。您只需上傳程式碼，Lambda 就會處理執行程式碼及擴展所需的各項工作，藉此維持高可用性。

## AL2023 `provided.al2023`受管執行時間和容器映像
<a name="lambda-provided-al2023"></a>

 `provided.al2023` 基本執行期是以 [AL2023 最小容器映像](https://docs.aws.amazon.com/linux/al2023/ug/minimal-container.html)為基礎，並提供以 AL2023 為基礎的 Lambda 受管執行期和[容器基礎映像](https://gallery.ecr.aws/lambda/provided)。由於`provided.al2023`執行時間是以 AL2023 最小容器映像為基礎，因此遠小於 40 MB，遠小於 109 MB 的`provided.al2`執行時間。

 如需詳細資訊，請參閱 [Lambda 執行期](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)和[使用 Lambda 容器映像](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html)。

## AL2023 型 Lambda 執行時間
<a name="lambda-al2023-based"></a>

 受管語言執行時間的未來版本，例如 Node.js 20、Python3.12、21 Java 和 .NET 8，是以 AL2023 為基礎，並將使用 `provided.al2023` 做為基礎映像，如 [AL2023 型執行時間的公告](https://aws.amazon.com/blogs/compute/introducing-the-amazon-linux-2023-runtime-for-aws-lambda/)中所述。

**AL2023 型 Lambda 函數**
+ [AL2023 Lambda 函數寫入 Go](go.md#lambda-go)
+ [AL2023 Lambda 函數寫入 Rust](rust.md#lambda-rust)

 如需詳細資訊，請參閱《 *AWS Lambda 開發人員指南*》中的 [Lambda 執行時間](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)。