Amazon Linux 2023 初期設定をする


はじめに

Amazon Linux 2023(以下 AL2023)の初期設定を参考までに記載しようと思います。AL2023は、ベースがこれまでのRHELからFedoraへ変更となったため、これまでのAmazon Linuxと設定がやや違う部分もあるかと思いますので注意いただければと思います。

前提

前提として、EC2(AL2023)インスタンスは起動していて、かつ、OSへのコンソールログインができていること。各コマンドはSSMセッションマネージャーを通して(ssm-userとして)実行してます。

ホスト名を変更する

$ sudo hostnamectl set-hostname <HOSTNAME>

参考として、ホスト名を「test-server」に変更してみます。

$ hostname
ip-10-0-10-100.ap-northeast-1.compute.internal

$ sudo hostnamectl set-hostname test-server

$ hostname
test-server

ユーザの作成

参考として、「testuser」を実際に作成します。

$ ls /home/
ec2-user  ssm-user

$ sudo adduser testuser
$ sudo passwd testuser
Changing password for user testuser.
New password:
Retype new password:

$ ls /home
ec2-user  ssm-user  testuser

$ su testuser
Password:
[testuser@test-server bin]$ 

「testuser」をec2-userと同じグループ(wheel)に所属し、sudoコマンドを打てるようにする

$ sudo usermod -aG wheel testuser
$ less /etc/group | grep wheel
wheel:x:10:ec2-user,testuser

パッケージのアップデート

「dnf」を利用します。

$ sudo dnf update

タイムゾーンをAsia/Tokyoにする

$ date
Thu Jun 15 02:25:31 UTC 2023

$ sudo timedatectl set-timezone Asia/Tokyo

$ date
Thu Jun 15 11:26:49 JST 2023

タイムゾーン状態の確認。JSTに変わっていることを確認できます。

$ timedatectl status
               Local time: Thu 2023-06-15 11:27:57 JST
           Universal time: Thu 2023-06-15 02:27:57 UTC
                 RTC time: Thu 2023-06-15 02:27:56
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

ロケールの設定

$ echo $LANG
C.UTF-8

$ export LANG=ja_JP.UTF-8

$ echo $LANG
ja_JP.UTF-8

SELinuxの設定変更

※この作業は影響をよくよく検討してから行ってください。

まずは現在のモードをgetenforceで確認します。
AL2023のデフォルト設定は「Premissive」です。

$ getenforce
Permissive

sestatusコマンドで現在の設定を確認します。ステータスはenabledになっていますね。
このあたりの詳しいことはAWSドキュメントに記載があります。

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

もし、SELinuxを無効化したい場合は、grubbyコマンドを使って以下の手順となります。こちらもAWSドキュメントを参考にします。

$ rpm -q grubby
grubby-8.40-51.amzn2023.0.4.x86_64

$ sudo grubby --update-kernel ALL --args selinux=0
$ sudo reboot
$ getenforce
Disabled

直接configファイルを書き換えたい場合は、以下の手順でもSELinuxの無効化が可能です。

$ sudo sed -i -e "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config

$ reboot
$ getenforce
Disabled

rsyslogをインストールする

AL2023はデフォルトでrsyslogがインストールされてません。
/var/log/messagesなどが初期状態では存在しません。メッセージログはjounalに保存されていてjounalctlを使ってログを確認します。
参考:https://note.com/hiroyu0510/n/n02e530fd609d

/var/log/配下を確認してみましょう。
messagesやmaillog、secureが存在してませんね。jounalが存在しています。

$ sudo ls -la /var/log/
total 1464
drwxr-xr-x.  9 root   root             16384 Jun 15 11:07 .
drwxr-xr-x. 19 root   root               266 Jun 15 11:07 ..
lrwxrwxrwx.  1 root   root                39 Jun 10 05:43 README -> ../../usr/share/doc/systemd/README.logs
drwxr-xr-x.  3 root   root                17 Jun 15 11:07 amazon
drwx------.  2 root   root                23 Jun 15 11:07 audit
-rw-rw----.  1 root   utmp                 0 Jun 10 05:43 btmp
drwxr-x---.  2 chrony chrony              72 Jun 15 11:07 chrony
-rw-r-----.  1 root   adm               6238 Jun 15 11:30 cloud-init-output.log
-rw-r-----.  1 root   adm             258219 Jun 15 11:30 cloud-init.log
-rw-r--r--.  1 root   root            848395 Jun 15 11:30 dnf.librepo.log
-rw-r--r--.  1 root   root            265285 Jun 15 11:30 dnf.log
-rw-r--r--.  1 root   root             81311 Jun 15 11:30 dnf.rpm.log
-rw-r--r--.  1 root   root              2479 Jun 15 11:30 hawkey.log
drwxr-sr-x+  3 root   systemd-journal     46 Jun 15 11:07 journal
-rw-rw-r--.  1 root   utmp                 0 Jun 10 05:43 lastlog
drwx------.  2 root   root                 6 Jun 10 05:43 private
drwxr-xr-x.  2 root   root                18 Jun 15 11:07 sa
drwxr-x---.  2 root   root                73 Jun 15 11:07 sssd
-rw-------.  1 root   root                 0 Jun 10 05:43 tallylog
-rw-rw-r--.  1 root   utmp              5376 Jun 15 11:30 wtmp

以前のようにmessagesやmaillog、secureログを利用したいという場合は、
rsyslogをインストールするとログを取得できるようになります。

$ sudo dnf -y install rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl start rsyslog
$ sudo systemctl status rsyslog

再度、/var/logの内容を確認。
messages、maillog、secureが存在します。

$ sudo ls -la /var/log/
total 1932
drwxr-xr-x.  9 root   root             16384 Jun 15 12:08 .
drwxr-xr-x. 19 root   root               266 Jun 15 11:07 ..
lrwxrwxrwx.  1 root   root                39 Jun 10 05:43 README -> ../../usr/share/doc/systemd/README.logs
drwxr-xr-x.  3 root   root                17 Jun 15 11:07 amazon
drwx------.  2 root   root                23 Jun 15 11:07 audit
-rw-rw----.  1 root   utmp                 0 Jun 10 05:43 btmp
drwxr-x---.  2 chrony chrony              72 Jun 15 11:07 chrony
-rw-r-----.  1 root   adm               6238 Jun 15 11:30 cloud-init-output.log
-rw-r-----.  1 root   adm             258219 Jun 15 11:30 cloud-init.log
-rw-r--r--.  1 root   root            850264 Jun 15 12:08 dnf.librepo.log
-rw-r--r--.  1 root   root            271152 Jun 15 12:08 dnf.log
-rw-r--r--.  1 root   root             81867 Jun 15 12:08 dnf.rpm.log
-rw-r--r--.  1 root   root              2659 Jun 15 12:08 hawkey.log
drwxr-sr-x+  3 root   systemd-journal     46 Jun 15 11:07 journal
-rw-rw-r--.  1 root   utmp                 0 Jun 10 05:43 lastlog
-rw-------.  1 root   root                 0 Jun 15 12:08 maillog
-rw-------.  1 root   root            457872 Jun 15 12:09 messages
drwx------.  2 root   root                 6 Jun 10 05:43 private
drwxr-xr-x.  2 root   root                18 Jun 15 11:07 sa
-rw-------.  1 root   root              8347 Jun 15 12:09 secure
-rw-------.  1 root   root                 0 Jun 15 12:08 spooler
drwxr-x---.  2 root   root                73 Jun 15 11:07 sssd
-rw-------.  1 root   root                 0 Jun 10 05:43 tallylog
-rw-rw-r--.  1 root   utmp              5376 Jun 15 11:30 wtmp

念のため、一通りログを確認してみましょう。

$ sudo tail 10 /var/log/messages
$ sudo tail 10 /var/log/secure
$ sudo tail 10 /var/log/maillog

MySQLクライアントインストール

$ sudo dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
$ sudo dnf -y install mysql mysql-community-client
$ mysql --version

PostgreSQLクライアントインストール

$ sudo dnf update -y
$ sudo dnf install postgresql15
$ psql --version

監視系エージェントのインストール

・CloudWatchエージェント
・Colect

$ sudo dnf install amazon-cloudwatch-agent
$ sudo dnf install collectd

Cronieのインストール(cron)

AL2023は初期起動時は、cronがありません。
cronieをインストールするとcronが使えるようになります。

$ sudo dnf install cronie


最後に

以上となります。
皆さんにとって有益な情報が提供できたなら幸いです。


おまけ

ここからは、初期設定作業ではないのですが、AL2023サーバの一般的な状態確認を行っていきます。

一般的なサーバ状態の確認
OSバージョンの確認コマンド

$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"

システム情報確認コマンド

$ uname -a
Linux test-server 6.1.29-50.88.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun  6 00:47:06 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

ファイルシステムの状況確認コマンド

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           453M     0  453M   0% /dev/shm
tmpfs           182M  380K  181M   1% /run
/dev/nvme0n1p1  8.0G  1.6G  6.5G  19% /
tmpfs           453M     0  453M   0% /tmp

ブロックデバイスの確認コマンド

$ sudo lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1       259:0    0   8G  0 disk
├─nvme0n1p1   259:1    0   8G  0 part /
├─nvme0n1p127 259:2    0   1M  0 part
└─nvme0n1p128 259:3    0  10M  0 part

CPU情報の確認コマンド

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping        : 7
・
・
・
・

メモリ情報の確認コマンド

$ cat /proc/meminfo
MemTotal:         927040 kB
MemFree:          386480 kB
MemAvailable:     577112 kB
Buffers:            3148 kB
Cached:           292056 kB
SwapCached:            0 kB
・
・
・
・

Chrony(NTP)の情報

$ chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123               3   4   377    12    +13us[  +15us] +/-  444us
^- ec2-15-152-226-86.ap-nor>     4   6   377    93    +19us[  +21us] +/- 4104us
^- ec2-15-152-156-115.ap-no>     4   9   377   489    +57us[  +53us] +/- 4093us
^- ec2-15-152-214-99.ap-nor>     4   8   377    30    +19us[  +21us] +/- 4193us
^- ec2-15-152-226-72.ap-nor>     4   9   377    26    +17us[  +18us] +/- 4095us



この記事が気に入ったらサポートをしてみませんか?