LoginSignup
25
16

More than 5 years have passed since last update.

Amazon Linux と Amazon Linux 2 の技術面の違い

Last updated at Posted at 2018-01-18

Amazon Linux 向けに書いた Ansible Playbook を Amazon Linux 2 に対応させるときに気づいた点をまとめておきます。

個人ブログに書いた「Ansible で Amazon Linux と Amazon Linux 2 を見分ける」も参考にしてください。

TL;DR

Amazon Linux はもともと CentOS とよく似た構成なので、概ね CentOS 6 から 7 への変更点と同じです。

大きな変更点

init デーモン

init デーモンが Upstart から systemd に変更されています。 pstree コマンドで見ると PID 1 のデーモンが init から systemd に変わっていることがわかります。

Amazon_Linux_2
$ pstree -p --ascii
systemd(1)-+-agetty(3177)
           |-agetty(3178)
           |-amazon-ssm-agen(3204)-+-{amazon-ssm-agen}(3208)
           |                       |-{amazon-ssm-agen}(3209)
           |                       |-{amazon-ssm-agen}(3210)
           |                       |-{amazon-ssm-agen}(3211)
           |                       |-{amazon-ssm-agen}(3212)
           |                       |-{amazon-ssm-agen}(3213)
           |                       `-{amazon-ssm-agen}(3215)
           |-atd(3162)
           |-auditd(2567)---{auditd}(2568)
           |-chronyd(2630)
           |-crond(3164)
(snip)
Amazon_Linux
$ pstree -p --ascii
init(1)-+-acpid(2415)
        |-agetty(2605)
        |-amazon-ssm-agen(2250)-+-{amazon-ssm-agen}(2262)
        |                       |-{amazon-ssm-agen}(2263)
        |                       |-{amazon-ssm-agen}(2264)
        |                       |-{amazon-ssm-agen}(2265)
        |                       |-{amazon-ssm-agen}(2266)
        |                       |-{amazon-ssm-agen}(2271)
        |                       |-{amazon-ssm-agen}(2281)
        |                       |-{amazon-ssm-agen}(2282)
        |                       `-{amazon-ssm-agen}(2638)
        |-atd(2580)
        |-auditd(2258)---{auditd}(2259)
        |-crond(2566)
(snip)

ファイルシステム

ファイルシステムが ext4 から xfs に変更されています。

Amazon_Linux_2
$ df -T /dev/xvda1
Filesystem     Type 1K-blocks    Used Available Use% Mounted on
/dev/xvda1     xfs    8376300 1055844   7320456  13% /
Amazon_Linux
$ df -T /dev/xvda1
Filesystem     Type 1K-blocks    Used Available Use% Mounted on
/dev/xvda1     ext4   8123812 1072296   6951268  14% /

軽微な変更点

ユーザー

ec2-user の uid と gid が 500 から 1000 に変更されています。

Amazon_Linux_2
$ id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)
Amazon_Linux
$ id
uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)

パッケージ管理

Yum リポジトリがひとつに集約されました。 /etc/yum.repos.d/ 以下を見ると、epel リポジトリが削除されたことがわかります。

Amazon_Linux_2
$ yum repolist
Loaded plugins: langpacks, update-motd
repo id                            repo name                              status
!amzn2-core/2017.12/x86_64         Amazon Linux 2 core repository         7,102
repolist: 7,102

$ ls -l /etc/yum.repos.d/
total 4
-rw-r--r-- 1 root root 1003 Dec 12 20:52 amzn2-core.repo
Amazon_Linux
$ yum repolist
Loaded plugins: priorities, update-motd, upgrade-helper
repo id                               repo name                           status
!amzn-main/latest                     amzn-main-Base                      5,883
!amzn-updates/latest                  amzn-updates-Base                     738
repolist: 6,621

$ ls -l /etc/yum.repos.d/
total 24
-rw-r--r-- 1 root root 1014 Nov  1 19:45 amzn-main.repo
-rw-r--r-- 1 root root  327 Nov  1 19:45 amzn-nosrc.repo
-rw-r--r-- 1 root root 1041 Nov  1 19:45 amzn-preview.repo
-rw-r--r-- 1 root root 1041 Nov  1 19:45 amzn-updates.repo
-rw-r--r-- 1 root root  957 Mar  1  2013 epel.repo
-rw-r--r-- 1 root root 1056 Mar  1  2013 epel-testing.repo

NTP クライアント

NTP クライアントが ntpd から chronyd に変更されています。

Amazon_Linux_2
$ ps aux | grep -e ntpd -e chronyd
chrony    2633  0.0  0.8 120480  4356 ?        S    22:53   0:00 /usr/sbin/chronyd
Amazon_Linux
$ ps aux | grep -e ntpd -e chronyd
ntp       2506  0.0  0.8  29772  4280 ?        Ss   22:53   0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

MTA

MTA が Sendmail から Postfix に変更されています。

Amazon_Linux_2
$ alternatives --display mta
mta - status is auto.
 link currently points to /usr/sbin/sendmail.postfix
/usr/sbin/sendmail.postfix - priority 30
 slave mta-mailq: /usr/bin/mailq.postfix
 slave mta-newaliases: /usr/bin/newaliases.postfix
 slave mta-pam: /etc/pam.d/smtp.postfix
 slave mta-rmail: /usr/bin/rmail.postfix
 slave mta-sendmail: /usr/lib/sendmail.postfix
 slave mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz
 slave mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz
 slave mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz
 slave mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz
Current `best' version is /usr/sbin/sendmail.postfix.
Amazon_Linux
$ alternatives --display mta
mta - status is auto.
 link currently points to /usr/sbin/sendmail.sendmail
/usr/sbin/sendmail.sendmail - priority 90
 slave mta-mailq: /usr/bin/mailq.sendmail
 slave mta-newaliases: /usr/bin/newaliases.sendmail
 slave mta-rmail: /usr/bin/rmail.sendmail
 slave mta-sendmail: /usr/lib/sendmail.sendmail
 slave mta-pam: /etc/pam.d/smtp.sendmail
 slave mta-sendmailman: /usr/share/man/man8/sendmail.sendmail.8.gz
 slave mta-mailqman: /usr/share/man/man1/mailq.sendmail.1.gz
 slave mta-newaliasesman: /usr/share/man/man1/newaliases.sendmail.1.gz
 slave mta-aliasesman: /usr/share/man/man5/aliases.sendmail.5.gz
Current `best' version is /usr/sbin/sendmail.sendmail.

まとめ

ひとつの Playbook の中で Amazon Linux と Amazon Linux 2 に対応するのはなかなか大変なので、fork して別の Playbook を書いたほうが楽かもしれませんね。

25
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
16