現象
EC2のRedHat Linux8において、文字コードをLANG=ja_JP.utf8に設定したものをAMIするために、以下の手順で実施しましたが、作成したAMIでEC2を起動すると、文字コード設定がen_US.UTF8に戻ってしまいました。
日本語設定手順その1
現在の言語設定を確認します。
コマンド:localectl status
実行例:
[ec2-user@ip-10-20-0-101 ~]$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: n/a
日本語パッケージが存在することを確認します。
コマンド:localectl list-locales | grep -i ja
実行例:
[ec2-user@ip-10-20-0-101 ~]$ localectl list-locales | grep -i ja
ja_JP.eucjp
ja_JP.utf8
補足:インストールされていない場合、インターネットに接続できる環境であれば、下記のコマンドでインストールできます。
sudo yum install glibc-langpack-ja
日本語に設定します。
コマンド(設定):sudo localectl set-locale LANG=ja_JP.utf8
コマンド(確認1):sudo localectl status LANG=ja_JP.utf8
コマンド(確認2):echo $LANG
実行例:
[ec2-user@ip-10-20-0-101 ~]$ sudo localectl set-locale LANG=ja_JP.utf8
[ec2-user@ip-10-20-0-101 ~]$
[ec2-user@ip-10-20-0-101 ~]$ sudo localectl status
System Locale: LANG=ja_JP.utf8
VC Keymap: us
X11 Layout: n/a
[ec2-user@ip-10-20-0-101 ~]$ echo $LANG
en_US.UTF-8
EC2を再起動します。
コマンド:sudo systemctl reboot
[ec2-user@ip-10-20-0-101 ~]$ sudo systemctl reboot
日本語設定が反映されることを確認します。
コマンド:echo $LANG
[ec2-user@ip-10-20-0-101 ~]$ echo $LANG
ja_JP.utf8
[ec2-user@ip-10-20-0-101 ~]$
この状態で、作成したAMIでEC2を起動すると、文字コード設定がen_US.UTF8に戻ってしまいます。
日本語設定手順その2(永続設定に必要な手順)
「日本語設定手順その1」を実施してうえで、下記のコマンドでcloud.cfgを開き、「- locale」をコメントアウトし、保存します。
コマンド:sudo vi /etc/cloud/cloud.cfg
[ec2-user@ip-10-20-0-101 ~]$ sudo vi /etc/cloud/cloud.cfg
cloud_config_modules:
- mounts
# - locale
この状態で、AMIを作成すれば、日本語設定が永続的に保存されます。