「Amazon Web Services の Arch Linux AMI」の版間の差分
(ページの作成:「Category:Arch の入手とインストール en:Arch Linux AMIs for Amazon Web Services ==公開されている Arch AMI を実行== ===Uplink Labs の AMI イ...」) |
Kusanaginoturugi (トーク | 投稿記録) (→Build process: 翻訳) |
||
(2人の利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
[[Category:Arch の入手とインストール]] |
[[Category:Arch の入手とインストール]] |
||
[[en:Arch Linux AMIs for Amazon Web Services]] |
[[en:Arch Linux AMIs for Amazon Web Services]] |
||
+ | パブリックコミュニティのArch AMI |
||
− | ==公開されている Arch AMI を実行== |
||
+ | {{Note|現在、Arch Linuxは公式なAmazon Machine Imagesを提供していません。ここにリストされているものはコミュニティによって作成されました。}} |
||
− | ===Uplink Labs の AMI イメージ=== |
||
+ | === AMI === |
||
− | Uplink Labs は約2ヶ月ごとに新しいイメージを作成しており、複数のリージョンで使うことができます: |
||
+ | '''Arch Linux の AMI はこちらにリストされています:''' http://arch-ami-list.drzee.net/ |
||
− | http://www.uplinklabs.net/projects/arch-linux-on-ec2/ |
||
+ | AMI は毎月 2 回(1 日と 15 日の午前 2 時 UTC)にビルドされ、'Opt-in' が必要でないすべてのリージョンで利用可能です。詳細はリージョンリストを参照してください。現在利用できないリージョンで AMI が必要な場合、そのリージョンに AMI をコピーすることができます。 |
||
− | ===他の AMI=== |
||
+ | 提供される AMI は EBS HVM AMI で、以下の 2 種類のカーネルで利用可能です: |
||
− | 以下の Arch Linux AMI が動作することが確認されています: |
||
+ | * '''std''' - EC2 使用に必要なモジュールで構成された標準の Arch Linux カーネルを使用。 |
||
− | {{bc| |
||
+ | * '''ec2''' - EC2 最適化カーネルを使用し、UplinkLabs が専用リポジトリでホスト: https://git.uplinklabs.net/steven/ec2-packages.git |
||
− | AMI Store Build Release Kernel Last verified |
||
− | ami-07be766e EBS 64 bit 2011-04-15 3.0+ 2012-01-14 |
||
− | ami-19be7670 EBS 64 bit 2011-11-18 3.0+ 2012-01-14 |
||
− | ami-26e8144f EBS 32 bit 2011-04-15 2.6 2012-01-14 |
||
− | ami-38e81451 EBS 32 bit 2011-04-15 2.6 2012-01-14 |
||
− | }} |
||
+ | これらのカーネルは、様々な EC2 インスタンスタイプ(t2, t3, t3a, m/r/c5, m/r/c6 および GPU を搭載した高性能ハードウェア)でテストされ、問題なく起動します。 |
||
− | 上記の AMI の Arch Linux カーネルは PV-GRUB によって起動します。 |
||
+ | |||
+ | {{Note|2023 年 6 月 12 日現在、UplinkLabs の EC2 最適化カーネルは XEN ハイパーバイザーを使用するインスタンスファミリー(例:{{ic|t2-micro}})で起動時にハングすることが確認されています。最新のカーネルに XEN カーネルモジュールが含まれていないため、起動に失敗します。新しい Nitro ハイパーバイザーを使用するインスタンスファミリーのみを使用してください:Nitro で構築されたインスタンスは、EC2 最適化カーネルとの互換性があります。}} |
||
+ | |||
+ | {{Note|'''ec2''' リポジトリは '''linux-ec2''' カーネル以外のパッケージも提供しています。デフォルトでは、'''ec2''' が {{ic|pacman.conf}} の最上位リポジトリとして設定されています。このため、'''ec2''' のパッケージが[[公式リポジトリ]]よりも優先されることがあり、パッケージの実際のバージョンによっては一貫性のない挙動が発生することがあります。}} |
||
+ | |||
+ | LTS カーネルを使用した AMI はビルドされていません。 |
||
+ | |||
+ | === AMIリストの REST API === |
||
+ | |||
+ | 利用可能な AMI の JSON を取得する REST API が利用可能です: |
||
+ | |||
+ | {{Note|API エンドポイントは現在、変更されないカスタムドメイン名を使用しています。}} |
||
+ | |||
+ | * 全AMIを取得: {{ic|https://arch-ami-api.drzee.net/}} |
||
+ | 各リージョンの最新 AMI リストを取得: {{ic|https://arch-ami-api.drzee.net/latest}}(これは JSON 形式でhttp://arch-ami-list.drzee.net/と同じリストを生成します) |
||
+ | * リージョン別の全 AMI を取得: {{ic|https://arch-ami-api.drzee.net/region}} - {{ic|region}}を希望のリージョンに置き換えてください: {{ic|eu-north-1}}, {{ic|eu-west-1}}, {{ic|us-east-1}}など。 |
||
+ | * CPU アーキテクチャ別のリージョン内の全 AMI を取得: {{ic|https://arch-ami-api.drzee.net/region/arch}} - {{ic|arch}}を{{ic|x86_64}}に置き換えてください。 |
||
+ | * CPU アーキテクチャとカーネルタイプ別のリージョン内の全 AMI を取得: {{ic|https://arch-ami-api.drzee.net/region/arch/type}} - {{ic|type}}を{{ic|std}}または{{ic|ec2}}に置き換えてください。 |
||
+ | * CPU アーキテクチャとカーネルタイプ別のリージョン内の最新 AMI を取得: {{ic|https://arch-ami-api.drzee.net/region/arch/type/latest}} - {{ic|region}}, {{ic|arch}}, {{ic|type}}を置き換えてください。 |
||
+ | |||
+ | === 初回起動 === |
||
+ | |||
+ | {{Note|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]] パッケージが事前にインストールされています。 |
||
+ | |||
+ | {{ic|/etc/xdg/reflector/reflector.conf}} で適切な設定を行い、ミラーリストを定期的に更新するためのタイマーサービスを有効にすることが推奨されます。詳細については [[Reflector]] パッケージのドキュメントを参照してください。 |
||
+ | |||
+ | または、独自のミラーリストを提供し、reflector パッケージを使用しないこともできます。 |
||
+ | |||
+ | === ビルドプロセス === |
||
+ | |||
+ | {{Note|このセクションでは AMI のビルドプロセスについて簡単な説明が提供されています。}} |
||
+ | |||
+ | ビルドプロセス全体は AWS 上で実行され、完全に自動化されています。 |
||
+ | |||
+ | 自動ビルド手順は、定期的に実行される Amazon EventBridge のタイムイベントを使用して起動される AWS ステップファンクションによって管理されます。 |
||
+ | |||
+ | ステップファンクションはビルドプロセスを開始し、より複雑な要素にはネイティブコールと AWS Lambda 関数の組み合わせを使用します。 |
||
+ | |||
+ | 新しい AMI セットは、以前の AMI で起動された EC2 インスタンスを使用して「作業またはビルドマシン」としてビルドされます。「ビルドマシン」は特別なビルドスクリプトでブートストラップされ、pacstrap といくつかの追加ステップを使用してイメージをビルドします。基本的な手順は以下のセクションで概説されています。 |
||
+ | |||
+ | AMI のビルドが完了すると、新しい AMI は EC2 インスタンスで「テスト起動」され、正しく起動するかどうかが検証されます。成功した場合、AMI はリージョンに配布され、DynamoDB データベースに登録されます。このデータベースは API REST エンドポイントを使用して照会することができます。古い AMI はリージョンおよび DynamoDB データベースから削除されます。 |
||
+ | |||
+ | === 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 AMI のビルド== |
||
+ | 独自の Arch Linux AMI を構築することもできます。詳細については [http://arch-ami-list.drzee.net/ami_build_howto.html] を参照してください。 |
||
− | [[AUR]] の {{AUR|linux-ec2}} パッケージは Xen モジュールを有効化して XSAVE パッチを適用した AWS 向けの Arch Linux カーネルをコンパイルします。 |
2024年5月31日 (金) 19:08時点における最新版
パブリックコミュニティのArch AMI
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 を搭載した高性能ハードウェア)でテストされ、問題なく起動します。
LTS カーネルを使用した AMI はビルドされていません。
AMIリストの REST API
利用可能な AMI の JSON を取得する REST API が利用可能です:
- 全AMIを取得:
https://arch-ami-api.drzee.net/
各リージョンの最新 AMI リストを取得: https://arch-ami-api.drzee.net/latest
(これは JSON 形式でhttp://arch-ami-list.drzee.net/と同じリストを生成します)
- リージョン別の全 AMI を取得:
https://arch-ami-api.drzee.net/region
-region
を希望のリージョンに置き換えてください:eu-north-1
,eu-west-1
,us-east-1
など。 - CPU アーキテクチャ別のリージョン内の全 AMI を取得:
https://arch-ami-api.drzee.net/region/arch
-arch
をx86_64
に置き換えてください。 - CPU アーキテクチャとカーネルタイプ別のリージョン内の全 AMI を取得:
https://arch-ami-api.drzee.net/region/arch/type
-type
をstd
またはec2
に置き換えてください。 - CPU アーキテクチャとカーネルタイプ別のリージョン内の最新 AMI を取得:
https://arch-ami-api.drzee.net/region/arch/type/latest
-region
,arch
,type
を置き換えてください。
初回起動
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 パッケージを使用しないこともできます。
ビルドプロセス
ビルドプロセス全体は AWS 上で実行され、完全に自動化されています。
自動ビルド手順は、定期的に実行される Amazon EventBridge のタイムイベントを使用して起動される AWS ステップファンクションによって管理されます。
ステップファンクションはビルドプロセスを開始し、より複雑な要素にはネイティブコールと AWS Lambda 関数の組み合わせを使用します。
新しい AMI セットは、以前の AMI で起動された EC2 インスタンスを使用して「作業またはビルドマシン」としてビルドされます。「ビルドマシン」は特別なビルドスクリプトでブートストラップされ、pacstrap といくつかの追加ステップを使用してイメージをビルドします。基本的な手順は以下のセクションで概説されています。
AMI のビルドが完了すると、新しい AMI は EC2 インスタンスで「テスト起動」され、正しく起動するかどうかが検証されます。成功した場合、AMI はリージョンに配布され、DynamoDB データベースに登録されます。このデータベースは API REST エンドポイントを使用して照会することができます。古い AMI はリージョンおよび DynamoDB データベースから削除されます。
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] を参照してください。