こんにちは。
CycleというCtoCの学習マッチングサービスでエンジニア兼プロマネをやっている小畑と言います。
基本は企画とかを進めていきたいけど、今はエンジニアが足りない!インフラ得意な人がいない!
ってことで学びつつインフラいじっている最中でございます。笑
今回は立ち上げたばかりのサービスでコストカットしたいってフェーズの事業に関わっている人こそ読んでもらいたい記事になります。
そんなに難しくないのでぜひ一読ください。
■ やりたいこと
EC2インスタンスを起動した時にnginxとtomvatを自動で起動させたい。
■ 背景
検証環境は昼間しか基本的には使わないので、深夜も起動しているのは勿体無いですよね。
(インフラの構成にもよりますが夜間バッチがあって、それの起動を確認したいのなら話は別です。)
なので、朝に自動でEC2を起動させて夜に自動で停止させます。
これはCloudWatchでAWSコンソール画面からパパッとできるのでこの記事では触れません。
ググればたくさん記事が出てくるのでそちらを参考に進めてみてください。
■ インスタンス起動時に実行してくれるchkconfigさん
でもどうやってやればいいんだ。ってかた向けの記事です。
さて、このchkconfigさんはインスタンスを立ち上げる時に実行してくれるやつです。
.bashrcとか.bash_profileとか今までいじってきましたよね?
そこの知識はある前提の話ですが、.bash_profileみたいなやつがchkconfigです。
なので、chkconfigに命令してあげると万事解決します。
▼ まずはnginxを自動で起動する。
以下のコマンドを実行するだけ!
簡単でしょ?
# sudo chkconfig --add nginx
# sudo chkconfig nginx on
▼ tomcatを自動で起動する。
まずtomcatを起動させるためのシェルを作成します。
# sudo vim /etc/init.d/tomcat
記載する内容はこんな感じです。
#!/bin/sh
# chkconfig: 0123456 99 10
# description: start tomcat.
sudo sh /opt/tomcat/bin/startup.sh ←任意に変更する
tomcatの起動の方法はそれぞれ異なると思うので、シェル実行の部分は任意に変更してください。
シェルファイルの権限を変更します。
そうしなければchkconfigが実行できません。
# sudo chmod 775 /etc/init.d/tomcat
そしてnginxの時と同様にchkconfigの設定を追加します。
# sudo chkconfig --add tomcat
# sudo chkconfig tomcat on
これで終わりです!
あとはEC2インスタンスを再起動してみましょう!
# sudo reboot
再起動が完了したらnginxとtomcatが起動しているか確認しましょう。
これで終わりです!
ね、簡単でしょ?
最後に宣伝です。
CycleではWeb制作を中心に教える側のメンターを募集しております!
ぜひ、無料て会員登録をしてプランを公開してみてください!
よろしくお願いします!