概要
EC2のインスタンスの新規作成時「Amazon Linux2」で作成する際、作成時に初期設定をシェルスクリプと経由で実行する方法。例としてApacheをインストールしてウェブサーバーとして設定。
前提条件
・AWSアカウントを所持していること。
新規インスタンス作成
① AWSマネジメントコンソールから「EC2」を検索し「EC2」を選択します。
② 「インスタンスを起動」→「インスタンスの起動」をクリックします。
③ 「Amazon Linux2」を選択します。
④ インスタンスタイプの選択し、「次のステップ:インスタンスの詳細設定」をクリックします。
⑤ インスタンスの詳細の設定、「ユーザーデータ」にシェルコマンドの入力します。
⑥ 初期設定の入力例は以下の通りです。
#!/bin/bash
## パッケージの更新
##----------------------------------------------------------------------------
sudo yum update -y
## ホスト名の変更(hostnameを任意の値に変更)
##----------------------------------------------------------------------------
sudo sed -i 's/^HOSTNAME=[a-zA-Z0-9\.\-]*$/HOSTNAME=(hostname)/g' /etc/sysconfig/network
hostname '(hostname)'
## タイムゾーンの変更
##----------------------------------------------------------------------------
# ローカルタイムを日本に変更
sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
# ハードウェアクロックを日本に変更
sudo sed -i "s/\"UTC\"/\"Japan\"/g" /etc/sysconfig/clock
## 文字コードを日本語に変更
##----------------------------------------------------------------------------
sudo sed -i "s/en_US\.UTF-8/ja_JP\.UTF-8/g" /etc/sysconfig/i18n
LANG=ja_JP.UTF-8
## パッケージの自動更新設定 (任意)
##----------------------------------------------------------------------------
# インストール
sudo yum install yum-cron -y
# 有効化
sudo chkconfig yum-cron on
# 自動更新設定
sudo sed -i "s/^apply_updates.*$/apply_updates = yes/g" /etc/yum/yum-cron.conf
# 起動
sudo service yum-cron start
## 新規ユーザー「test-user」(サンプル)を作成し「ec2-user」を削除(任意)
##----------------------------------------------------------------------------
# 新規ユーザーの作成
sudo useradd test-user
# 新規ユーザー用の.sshディレクトリの作成
sudo mkdir /home/test-user/.ssh
# ec2-userの用のauthorized_keysをコピー
sudo cp -a /home/ec2-user/.ssh/authorized_keys /home/test-user/.ssh/
# パーミッションの変更
sudo chmod 700 /home/test-user/.ssh
sudo chmod 600 /home/test-user/.ssh/authorized_keys
# オーナーの変更
sudo chown -R test-user:test-user /home/test-user/.ssh
# sudoの許可
sudo bash -c "echo 'test-user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"
# ec2-userの削除
userdel -r ec2-user
## Apacheのインストール(任意)
##----------------------------------------------------------------------------
sudo yum install httpd -y
sudo chkconfig httpd on
⑦ 「確認と作成」をクリックします。
⑧ 「起動」をクリックします。
⑨ 既存のキーペアを選択し「インスタンスの作成」をクリックします。
(作成していない場合は新規作成を実施してください)
⑩ 作成ステータスで「インスタンスの表示」をクリックします。
設定確認
① 自動設定した項目の確認をします。
# ホスト名の確認
hostname
# タイムゾーンの確認
cat /etc/sysconfig/i18n
echo $LANG
# ローカルタイムの確認 (JTS-9と表示されればOK)
strings /etc/localtime
# yumの確認
yum check-update
yum list installed | grep yum-cron
# Apacheの確認
httpd -v