Amazon Web Services の Arch Linux AMI

提供: ArchWiki
2024年5月31日 (金) 19:06時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎公開されている Arch AMI を実行: 差し替え。一部翻訳)
ナビゲーションに移動 検索に移動

パブリックコミュニティのArch AMI

ノート: 現在、Arch Linuxは公式なAmazon Machine Imagesを提供していません。ここにリストされているものはコミュニティによって作成されました。

AMI

Arch Linux の AMI はこちらにリストされています: http://arch-ami-list.drzee.net/

AMI は毎月 2 回(1 日と 15 日の午前 2 時 UTC)にビルドされ、'Opt-in' が必要でないすべてのリージョンで利用可能です。詳細はリージョンリストを参照してください。現在利用できないリージョンで AMI が必要な場合、そのリージョンに AMI をコピーすることができます。

提供される AMI は EBS HVM AMI で、以下の 2 種類のカーネルで利用可能です:

  • std - EC2 使用に必要なモジュールで構成された標準の Arch Linux カーネルを使用。
  • ec2 - EC2 最適化カーネルを使用し、UplinkLabs が専用リポジトリでホスト: https://git.uplinklabs.net/steven/ec2-packages.git

これらのカーネルは、様々な EC2 インスタンスタイプ(t2, t3, t3a, m/r/c5, m/r/c6 および GPU を搭載した高性能ハードウェア)でテストされ、問題なく起動します。

ノート: 2023 年 6 月 12 日現在、UplinkLabs の EC2 最適化カーネルは XEN ハイパーバイザーを使用するインスタンスファミリー(例:t2-micro)で起動時にハングすることが確認されています。最新のカーネルに XEN カーネルモジュールが含まれていないため、起動に失敗します。新しい Nitro ハイパーバイザーを使用するインスタンスファミリーのみを使用してください:Nitro で構築されたインスタンスは、EC2 最適化カーネルとの互換性があります。
ノート: ec2 リポジトリは linux-ec2 カーネル以外のパッケージも提供しています。デフォルトでは、ec2pacman.conf の最上位リポジトリとして設定されています。このため、ec2 のパッケージが公式リポジトリよりも優先されることがあり、パッケージの実際のバージョンによっては一貫性のない挙動が発生することがあります。

LTS カーネルを使用した AMI はビルドされていません。

AMIリストの REST API

利用可能な AMI の JSON を取得する REST API が利用可能です:

ノート: API エンドポイントは現在、変更されないカスタムドメイン名を使用しています。

各リージョンの最新 AMI リストを取得: https://arch-ami-api.drzee.net/latest(これは JSON 形式でhttp://arch-ami-list.drzee.net/と同じリストを生成します)

初回起動

ノート: AMI に焼き付けられたミラーリストはイメージビルド時に生成され、ドイツのサーバーを使用しています。

AMI を起動した後、pacman を初期化し、高速なローカルリポジトリを選択するために以下の手順の実行が推奨/必要です:

# pacman-key --init
# pacman-key --populate
# reflector --country "ISO 3166-1 Alpha-2 Country Code" --protocol https,http --score 20 --sort rate --save /etc/pacman.d/mirrorlist
# pacman -Syu

AMIには Reflector パッケージが事前にインストールされています。

/etc/xdg/reflector/reflector.conf で適切な設定を行い、ミラーリストを定期的に更新するためのタイマーサービスを有効にすることが推奨されます。詳細については Reflector パッケージのドキュメントを参照してください。

または、独自のミラーリストを提供し、reflector パッケージを使用しないこともできます。

Build process

ノート: This section provides a short description on how the AMIs are build.

The entire build process runs on AWS and is fully automated.

Overall the automated build procedure is managed by a AWS Step Function that is executed at regular intervals using a Amazon EventBridge timed event.

The step function will initiate the build process and uses a combination of native calls and AWS Lambda functions for more complex elements.

A new set of AMIs is build, by booting an EC2 instance with the previous AMI and using it as the work or build machine. The build machine is bootstrapped with a special build script that essentially uses pacstrap and some additional steps to build the image, the basics are outlined below in the next section.

Following the build of the AMI the new AMI is test booted on an EC2 instance to verify that it start up correctly. If successful the AMI is distributed to the regions and registered in a DynamoDB database. The database can be queried using the API REST endpoint. Old AMIs are deleted from the regions and the DynamoDB database.

Credits

Thanks to Steven from UplinkLabs for helping to understand the build process and test the initial quality of the images. Also thanks to Mathcom for an excellent shells script to help me get started (unfortunately the link to that has been removed), which accelerate putting the basic build process together.

You may send comments and suggestions (without any promise that they will be looked at) to: arch-ami 'at' drzee.net

Wishlist

  • Create official EC2/Cloud optimized kernels in the Standard Arch Linux repositories.
  • Add the AWS CLI v2 to the Standard Arch Linux repositories (v1 is available, but may be discontinued in the future)
    • Unfortunately AWS CLI v2 was removed from the Extra Repo due to issues with Python 3.12 - images are again build with aws-cli v1

Arch AMI のビルド

独自の Arch Linux AMI を構築することもできます。詳細については [1] を参照してください。