この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
AWSチームのすずきです。
Amazon Linux 2 の 拡張リポジトリ で提供されている、 AWS 向けの最適化が施された Linux カーネルパッケージ (kernel-ng) を利用して、 最新LTSカーネル(5.4)を試す機会がありましたので紹介します。
Amazon Linux 2 Extras で、新しい Linux カーネルの AWS 最適化バージョンの提供開始
新しいカーネルには、A1 インスタンスでのパフォーマンスの向上、スモールインスタンスタイプでの帯域幅の拡大とレイテンシーの軽減などの機能強化が加えられています
環境
2020年5月にリリースされた、ARM ベースの AWS Graviton2 を搭載、 最新世代のインスタンス「m6g」を利用しました。
- AMI ID: amzn2-ami-hvm-2.0.20200406.0-arm64-gp2
- インスタンスタイプ: m6g.medium
※「x86_64」 用のパッケージ も提供されています。
インストール
拡張リポジトリ(拡張ライブラリ)を有効化し、新しいカーネル「kernel-ng」をインストールしました。
sudo amazon-linux-extras install kernel-ng
ログ抜粋
$ sudo amazon-linux-extras install kernel-ng -y
...
Installing kernel
...
amzn2-core | 2.4 kB 00:00:00
amzn2extra-docker | 1.8 kB 00:00:00
amzn2extra-kernel-ng | 1.8 kB 00:00:00
(1/7): amzn2-core/2/aarch64/updateinfo | 208 kB 00:00:00
(2/7): amzn2-core/2/aarch64/group_gz | 2.5 kB 00:00:00
(3/7): amzn2extra-docker/2/aarch64/updateinfo | 69 B 00:00:00
(4/7): amzn2extra-kernel-ng/2/aarch64/updateinfo | 69 B 00:00:00
(5/7): amzn2extra-docker/2/aarch64/primary_db | 46 kB 00:00:00
(6/7): amzn2extra-kernel-ng/2/aarch64/primary_db | 4.7 MB 00:00:00
(7/7): amzn2-core/2/aarch64/primary_db | 25 MB 00:00:00
...
Dependencies Resolved
========================================================================================================
Package Arch Version Repository Size
========================================================================================================
Installing:
kernel aarch64 5.4.38-17.76.amzn2 amzn2extra-kernel-ng 25 M
...
Transaction Summary
========================================================================================================
Install 1 Package
...
Running transaction
Installing : kernel-5.4.38-17.76.amzn2.aarch64 1/1
Verifying : kernel-5.4.38-17.76.amzn2.aarch64 1/1
...
Installed:
kernel.aarch64 0:5.4.38-17.76.amzn2
...
Complete!
0 ansible2 available [ =2.4.6 =2.8 =stable ]
1 httpd_modules available [ =1.0 =stable ]
2 memcached1.5 available \
[ =1.5.1 =1.5.16 =1.5.17 ]
4 postgresql9.6 available [ =9.6.8 =stable ]
5 postgresql10 available [ =10 =stable ]
6 redis4.0 available [ =4.0.10 =stable ]
7 R3.4 available [ =3.4.3 =stable ]
10 ruby2.4 available \
[ =2.4.4 =2.4.7 =stable ]
11 php7.2 available \
[ =7.2.13 =7.2.14 =7.2.16 =7.2.17 =7.2.19 =7.2.21
=7.2.22 =7.2.23 =7.2.24 =7.2.26 =stable ]
13 lamp-mariadb10.2-php7.2 available \
[ =10.2.10_7.2.11 =10.2.10_7.2.14 =10.2.10_7.2.16
=10.2.10_7.2.17 =10.2.10_7.2.19 =10.2.10_7.2.22
=10.2.10_7.2.23 =10.2.10_7.2.24 =stable ]
14 libreoffice available [ =5.3.6.1 =stable ]
16 docker=latest enabled \
[ =18.06.1 =18.09.9 =stable ]
18 GraphicsMagick1.3 available \
[ =1.3.29 =1.3.32 =1.3.34 =stable ]
19 tomcat8.5 available \
[ =8.5.32 =8.5.38 =8.5.40 =8.5.42 =8.5.50 =stable ]
20 epel available [ =7.11 =stable ]
21 testing available [ =1.0 =stable ]
22 ecs available [ =stable ]
23 corretto8 available \
[ =1.8.0_202 =1.8.0_212 =1.8.0_222 =1.8.0_232 =1.8.0_242
=stable ]
24 golang1.11 available \
[ =1.11.3 =1.11.11 =1.11.13 =stable ]
25 squid4 available [ =4 =stable ]
26 php7.3 available \
[ =7.3.2 =7.3.3 =7.3.4 =7.3.6 =7.3.8 =7.3.9 =7.3.10
=7.3.11 =7.3.13 =stable ]
27 java-openjdk11 available [ =11 =stable ]
28 lynis available [ =stable ]
29 kernel-ng=latest enabled [ =stable ]
30 BCC available [ =0.x =stable ]
31 nginx1 available [ =stable ]
32 ruby2.6 available [ =2.6 =stable ]
33 mock available [ =stable ]
34 postgresql11 available [ =11 =stable ]
35 php7.4 available [ =stable ]
過去バージョン
2019年11月 にリリースされた Linux 5.4、2020年2月にAmazonLinux2用のパッケージが利用可能となっていました。
aarch64
$ yum --showduplicates list | grep -e "^kernel.aarch64.* amzn2extra"
kernel.aarch64 4.19.58-21.57.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.58-21.64.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.66-22.57.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.72-25.58.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.75-27.58.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.75-28.73.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.82-30.69.amzn2 amzn2extra-kernel-ng
kernel.aarch64 4.19.84-33.70.amzn2 amzn2extra-kernel-ng
kernel.aarch64 5.4.20-12.75.amzn2 amzn2extra-kernel-ng
kernel.aarch64 5.4.38-17.76.amzn2 amzn2extra-kernel-ng
x86_64
$ yum --showduplicates list | grep -e "^kernel.x86.* amzn2extra"
kernel.x86_64 4.19.58-21.57.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.58-21.64.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.66-22.57.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.72-25.58.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.75-27.58.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.75-28.73.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.82-30.69.amzn2 amzn2extra-kernel-ng
kernel.x86_64 4.19.84-33.70.amzn2 amzn2extra-kernel-ng
kernel.x86_64 5.4.20-12.75.amzn2 amzn2extra-kernel-ng
kernel.x86_64 5.4.38-17.76.amzn2 amzn2extra-kernel-ng
確認
EC2インスタンスを再起動後、5.4 の カーネルが利用されている事を確認できました。
再起動前
$ uname -a
Linux ip-172-xx-x-xxx.ap-northeast-1.compute.internal 4.14.173-137.229.amzn2.aarch64 #1 SMP Wed Apr 1 18:09:02 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
再起動後
$ uname -a
Linux ip-172-xx-x-xxx.ap-northeast-1.compute.internal 5.4.38-17.76.amzn2.aarch64 #1 SMP Thu May 7 17:31:08 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
まとめ
Amazon Linux2の拡張リポジトリを利用する事で、最新 LTSカーネル を導入することが出来ました。 標準カーネル(4.17)との機能差などについては、追って報告させて頂きたいと思います。
尚、拡張リポジトリ で提供されるパッケージは Amazon Linux 2 の LTS サポート の対象外となる点には注意してご利用ください。