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
この記事が気に入ったらサポートをしてみませんか?