EC2のRedHat Linux8においての文字コード永続設定方法

現象

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を作成すれば、日本語設定が永続的に保存されます。

Last modified: 2021-02-26

Author