目次
はじめに
こんにちは、missi です。「AWS 環境に WordPress をなるべくお金をかけずに構築していく」のシリーズとして記事を書いています。このシリーズでは、「AWS 上に WordPress を構築するために必要なリソースを最小限に抑え、コストを抑える方法について」お届けしています。前回は「Amazon EC2 で Amazon Linux 2 を起動する」をテーマにお伝えしましたが、今回は「Amazon Linux 2 の設定をする」をテーマにご紹介したいと思います。
Amazon Linux2 の状態確認と初期設定
Amazon Linux 2 起動後には、初期設定を行うことが重要です。以下は、Amazon Linux 2 起動後の初期設定の一般的な例です。
システムをアップデートする
このコマンドは、システムのすべてのパッケージを最新の状態に更新します。
sudo yum update -y
ホスト名の確認と設定
Amazon Linux 2 で現在のホスト名を確認するには、以下のコマンドを使用します。
hostnamectl
上記のコマンドを実行すると、以下のような結果が表示されます。
Static hostname: ip-10-0-0-10.ec2.internal
Icon name: computer-vm
Chassis: vm
Machine ID: cefed23b27d5429ea8d1d205b174ef11
Boot ID: e8ad4b17c10f4a7a9e9c8e39cb0f7036
Virtualization: xen
Operating System: Amazon Linux 2
CPE OS Name: cpe:/o:amazon:linux:2
Kernel: Linux 4.14.243-185.433.amzn2.x86_64
Architecture: x86-64
上記の例では、静的ホスト名が ip-10-0-0-10.ec2.internal
であることがわかります。
ホスト名を変更する場合は、hostnamectl
コマンドを使用して、新しいホスト名を適用します。
sudo hostnamectl set-hostname new-hostname
上記の例では、新しいホスト名が new-hostname
に設定されます。
システムを再起動するか、systemctl restart systemd-hostnamed
コマンドを実行して、ホスト名を更新します。
sudo systemctl restart systemd-hostnamed
上記の手順で、Amazon Linux 2のホスト名を確認し、変更することができます。
ネームサーバーの確認
Amazon Linux 2 でネームサーバーを確認するには、以下のコマンドを使用します。
cat /etc/resolv.conf
上記のコマンドを実行すると、以下のような結果が表示されます。
# Generated by NetworkManager
nameserver 10.0.0.2
上記の例では、ネームサーバーが 10.0.0.2
であることがわかります。なお、このファイルは、Amazon Linux 2において、ネットワーク設定がNetworkManagerによって管理されている場合に使用されます。他の環境では、別のファイルが使用される場合があります。
タイムゾーンの確認と変更
Amazon Linux 2 で現在のタイムゾーンを確認するには、以下のコマンドを使用します。
timedatectl
上記のコマンドを実行すると、以下のような結果が表示されます。
Local time: Mon 2023-04-04 07:30:00 UTC
Universal time: Mon 2023-04-04 07:30:00 UTC
RTC time: Mon 2023-04-04 07:30:00
Time zone: UTC (UTC, +0000)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
上記の例では、現在のタイムゾーンが UTC
であることがわかります。なお、Amazon Linux 2では、timedatectl
コマンドを使用して、タイムゾーンの変更やNTPの設定なども行うことができます。
Amazon Linux 2でタイムゾーンをJSTに変更するには、timedatectl
コマンドを使用して/etc/localtime
へのシンボリックリンクを変更します。
例えば、以下のコマンドでJSTに変更します。
sudo timedatectl set-timezone Asia/Tokyo
再度、timedatectl
コマンドを使用して、タイムゾーンが正しく変更されたことを確認します。
timedatectl
上記の手順で、Amazon Linux 2のタイムゾーンをJSTに変更することができます。なお、タイムゾーンを変更することで、システムのクロックが変更されるため、注意して実行してください。
ロケールの確認と変更
Amazon Linux 2 でロケールを確認するには、以下のコマンドを使用します。
localectl
上記のコマンドを実行すると、以下のような結果が表示されます。
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: n/a
上記の例では、ロケールが en_US
であることがわかります。
日本語を使用する場合は、以下のコマンドを実行します。
sudo localectl set-locale LANG=ja_JP.UTF-8
再び、localectl コマンドで確認してみると、ロケールが ja_JP.UTF-8
に変更されていることがわかります。
System Locale: LANG=ja_JP.UTF-8
VC Keymap: n/a
X11 Layout: n/a
不要なパッケージの削除
Amazon Linux 2 で不要なパッケージを削除するには、以下のコマンドを使用します。
sudo yum autoremove -y
上記のコマンドを実行すると、不要なパッケージが削除されます。
不要なサービスの停止
Amazon Linux 2では、不要なサービスを停止して、システムのパフォーマンスを最適化することができます。以下の手順に従って、不要なサービスを停止することができます。
- 現在のサービスの状態を確認する
まず、以下のコマンドを使用して、現在実行されているサービスの状態を確認します。
sudo systemctl list-units --type=service --state=running
これにより、以下のように実行中のサービスのリストが表示されます。
UNIT LOAD ACTIVE SUB DESCRIPTION
acpid.service loaded active running ACPI Event Daemon
amazon-ssm-agent.service loaded active running amazon-ssm-agent
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
getty@tty1.service loaded active running Getty on tty1
gssproxy.service loaded active running GSSAPI Proxy Daemon
httpd.service loaded active running The Apache HTTP Server
libstoragemgmt.service loaded active running libstoragemgmt plug-in server daemon
lvm2-lvmetad.service loaded active running LVM2 metadata daemon
network.service loaded active running LSB: Bring up/down networking
php-fpm.service loaded active running The PHP FastCGI Process Manager
postfix.service loaded active running Postfix Mail Transport Agent
rngd.service loaded active running Hardware RNG Entropy Gatherer Daemon
rpcbind.service loaded active running RPC bind service
rsyslog.service loaded active running System Logging Service
serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0
sshd.service loaded active running OpenSSH server daemon
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-udevd.service loaded active running udev Kernel Device Manager
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
23 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
- 不要なサービスを特定する
次に、現在実行されているサービスから、不要なものを特定します。不要なサービスを特定するには、その機能に関する理解が必要になる場合があります。
不要なサービスを特定したら、以下のコマンドを使用して停止します。例えば、postfix サービスを停止する場合は、以下のように入力します。
sudo systemctl stop postfix
サービスを停止すると、システムのパフォーマンスが向上することがあります。ただし、サービスを停止する前に、そのサービスがシステムの正常な動作に必要でないことを確認してください。
- サービスの自動起動を無効にする
不要なサービスを停止した後、サービスが自動的に起動されないように、以下のコマンドを使用して、サービスの自動起動を無効にします。例えば、httpdサービスの自動起動を無効にする場合は、以下のように入力します。
sudo systemctl disable postfix
これにより、postfix サービスが自動起動されなくなります。必要に応じて、再度有効にすることができます。
以上の手順に従って、Amazon Linux 2 で不要なサービスを停止することができます。ただし、システムの正常な動作に必要なサービスを停止しないように注意してください。
今回の記事は以上となります。このシリーズでは、「AWS 環境に WordPress をなるべくお金をかけずに構築していく」をお届けしていますので、ぜひ過去の記事もご覧ください。