[AWS][EC2] Bashシェルスクリプトによるサーバー設定


はじめに

Bashというシェルスクリプトを使用してEC2サーバーの設定を行ってみます。

Bashとは

  • コマンド画面でLinuxとやりとりする際に使用するシェルスクリプト
  • シェルスクリプト: ユーザーとカーネル(OSの基幹機能)のやりとりに利用される言語のこと
  • Bashはシェルスクリプトの一つで、Linuxにおけるシェルスクリプトのデファクトスタンダードになっている
  • yumとかもシェルスクリプトの一つ

  • EC2サーバーではSSH接続したあとはBashで操作している状況

  • AWSマネジメントコンソールでは、BashによるLinux初期設定の自動実施を設定することが可能です

    • 起動する際に処理されるBashスクリプトを仕込んでおくことができる
    • Apacheのインストールとか毎回必ず行うような設定は自動実施するようにできる

作業アウトライン

  1. 新規にEC2インスタンスを起動する
  2. Bashシェルスクリプトを設定してLinuxの設定を行う
  3. Linuxの設定結果を確認する

今回設定してみる項目

  • ホスト名を変更する
    • デフォルトではIPアドレスがホスト名になっている
    • IPアドレスではわかりづらいので基本は意味のある名前に変更する
sed -i 's/^HOSTNAME=[a-zA-Z0-9\.\-]*$/HOSTNAME=任意のホスト名/g'
  • ネットワークホスト名を変更する
/etc/sysconfig/network
hostname '任意のホスト名'
  • 日本時間をコピー
cp /usr/share/zoneinfo/Japan /etc/localtime
  • サーバーの時間帯を日本時間に設定
sed -i 's|^ZONE=[a-zA-Z0-9\.\-\"]*$|ZONE="Asia/Tokyo"/g' /etc/sysconfig/clock
  • 言語設定をja_JP.UTF-8に設定
echo "LANG=ja_JP.UTF-8" > /etc/sysconfig/i18n
  • ソフトウェアの更新情報の確認
sudo yum update -y 
  • Apacheのインストール
sudo yum install httpd -y
  • Apacheの自動起動設定
sudo chkconfig httpd on

1. 新規にEC2インスタンスを起動する

  • EC2インスタンスを作成する
    • 手順 3: インスタンスの詳細の設定の「高度な設定」に以下を記載する
#!/bin/bash
# サーバーの設定変更
sed -i 's/^HOSTNAME=[a-zA-Z0-9\.\-]*$/HOSTNAME=任意のホスト名/g' /etc/sysconfig/network
hostname '任意のホスト名'
cp /usr/share/zoneinfo/Japan /etc/localtime
sed -i 's|^ZONE=[a-zA-Z0-9\.\-\"]*$|ZONE="Asia/Tokyo"|g' /etc/sysconfig/clock
echo "LANG=ja_JP.UTF-8" > /etc/sysconfig/i18n
# アパッチのインストール
sudo yum update -y
sudo yum install httpd -y 
sudo chkconfig httpd on
====
  • 他の設定項目はデフォルトで
  • タグはお好みで

2. Bashシェルスクリプトを設定してLinuxの設定を行う

  • 作成したEC2インスタンスにターミナルでssh接続する

3. Linuxの設定結果を確認する

  • 接続して、 [ec2-user@任意のホスト名 ~]$ となっていれば
  • Apacheインストール
    • yum list installed | grep httpd を実行
    • httpdがインストールされていれば