作業するときに毎回調べるのは非効率なので、自分用にまとめました。
Elastic IPの割り当て
デフォルトのままだと起動する毎にIPが変わってしまうので、サービス運用するならばElastic IPを使いたいです。
デフォルトだとリージョンあたり5つまでに制限されていますが、Amazon EC2 Elastic IP アドレスリクエストフォームから上限解放を申請できます。
確か前は英語でしか受け付けていなかったような気がするのですが、日本語でも申請できるようになっている?
タイムゾーンをAsia/Tokyoに変更
$ sudo sed -i -e "s/^ZONE/#ZONE/g" -e "1i ZONE=\"Asia/Tokyo\"" /etc/sysconfig/clock
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
/etc/sysconfig/clockのUTC=trueをUTC=falseにするという情報もありましたが、これは誤った設定のようです。EC2のドキュメントにも書いてありました。
UTC=true エントリを別の値に変更しないでください。このエントリは、ハードウェアクロックに使用されるため、インスタンスで別のタイムゾーンを設定する場合は調整する必要はありません。
swap領域の確保
多くのインスタンスタイプにはswapが設定されていないので、必要に応じて自分で設定する必要があります。
インスタンスストア(Ephemeral Disk)がついている場合はそちらを使ったほうが適任だが、よく使うであろうt2ファミリーにはついていないので、仕方なくEBSの領域を使うことになります。
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
起動時にもマウントされるよう、/etc/fstabにも追加。
# LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 # 追加 /swapfile swap swap defaults 0 0
t2.micro にスワップ領域を追加するための設定例 – Qoosky
Amazon EC2(Linux)のswap領域ベストプラクティス | Developers.IO
AWSでmicroインスタンスを使っていたら想定以上に課金された話 – nelmoの日記帳
Apache、PHPのインストール(オプション)
必ずインストールするわけではないが、Amazon Linuxの場合少し特殊なのでメモ。
sudo yum install httpd24 mod24_ssl php56 php56-mbstring php56-gd php56-mysqlnd sudo service httpd start sudo checkconfig httpd on
何も考えず yum install httpd php としてしまうとApache2.2、PHP5.3でインストールされてしまいます。
必要なバージョンに応じて、php54、php55、php56、php70があることは確認しました。
とりあえず共通でやりそうな設定はこのあたりで、後は自分はNew Relicを使って監視しています。
セキュリティ面からはパスワードなしでsudoできてしまうec2-userをそのまま使うのはよろしくなさそうだが、一般的にはどうするのがいいのでしょうか…
UserDataに設定するかAnsibleを使って自動化しようと思っていますが、いつも設定が終わると満足してしまうので、近々やろうと思っています。