AWSでのBacklogエンタープライズサーバの構築
Backlogエンタープライズがリリースされたようなので、早速AWS環境にインストールしてみました。
Backlogエンタープライズの特徴
Backlogはクラウド型のプロジェクト管理ツールで、弊社でも積極的に利用しています。 しかし、社内の規約などでホスティングサービス(SaaS)が利用できない場合もあります。 アクセスログやバックアップなどを柔軟に行いたい場合もあるでしょう。 そんなユーザのために、イントラネットなどにインストールして利用することを想定したパッケージがBacklogエンタープライズです。
Backlogエンタープライズはパッケージインストーラで提供されています。 対応OSは、Red Hat Enterprise LinuxとCentOSの5系と6系で、内部的にはJava(Tomcat)とApacheなどで構成されています。 データベースとして、MySQLまたはPostgresを利用します。
インストールは必要な依存ミドルウェアを幾つかインストールし、パッケージインストーラを起動するだけなので簡単です。 設定項目もドメイン名とDBの接続情報程度なので難しい所はありませんでした。 手軽に導入できることは良いことですね。
なお、当然と言えば当然ですが、Backlogエンタープライズよりも、ホスティングサービス(通常のBacklog)を利用する方が安く利用できます。
AWS環境の準備
さて、クローズド環境ではありませんが、AWS環境(VPC)にBacklogエンタープライズサーバを構築してみます。
なお、Backlogエンタープライズにはノーマル版とプロフェッショナル版がありますが、今回インストールしたのはプロフェッショナル版になります。
VPC
Backlogエンタープライズを動かすEC2インスタンスはPublicなサブネットに配置し、RDSはPrivateなサブネットに配置します。 セキュリティグループの設定としては、PublicサブネットはHTTP(S)アクセスを許可し、PublicサブネットとPrivateサブネットの中ではすべてのポートを開放しておきます。 PublicサブネットのHTTPアクセスは特定のグローバルIPからのみに制限すれば、セキュリティも高くなるでしょう。
EC2
Backlogエンタープライズをインストールするインスタンスです。 サポートOSにAmazon Linuxが含まれていないため、CentOS6を選択します。 HVM対応のAMIイメージ(ami-13614b12)を選択し、t2.mediumで作成しました(必要スペックのメモリが2.5GB以上)。 EBSは最低容量の30GBを指定します。AWS上であれば後から容量を簡単に増やせるので最低限だけ確保できるのは良いですね。
RDS
RDBはEC2インスタンスの中に立ち上げても良いですが、バックアップやリカバリも簡単になるようにRDSで構築します。 MySQL 5.1, MySQL 5.5, Postgres 9.3が対象DBとして選択できますが、今回はMySQL 5.5を選択します。
はじめにParameter Groupを作成しておきましょう。 これは「max_allowed_packet」に16MBを指定する必要があるからです(ドキュメント参照)。 Parameter Groupからパラメータグループを、MySQL 5.5をベースに作成します。 max_allowed_packetの値はバイト単位になっておりMBは使えないので「16384」を指定します。
Parameter Groupを作成したならば、RDSのインスタンスを起動します。 同時に利用するユーザ数によってインスタンスタイプを決める必要がありますが、とりあえずdb.t2.smallを選択しました。 DBのサイズも後で増やせば良いので5GBもあれば充分でしょう。 先ほど作成したParameter Groupを指定する事を忘れないでください。
DB接続ユーザとDB名はbacklogとし、適切なパスワードを設定しておいてください。
セットアップ
EC2とRDSが立ち上がったならば、EC2インスタンスにSSHログインし、セットアップを行っていきます。 なお、OSがAmazon Linuxではないので、ec2-userでSSHログインしようとしても出来ませんので注意してください(よくやります...)。 少なくとも初回はrootユーザでログインしなければなりません。
後は、yum updateをした上で、インストールマニュアルを見ながらセットアップしていきます。
EC2のタイムゾーン設定
EC2のタイムゾーンをAsia/Tokyoに変更します。
はじめに、 /etc/sysconfig/clock を編集します。
ZONE="Asia/Tokyo"
さらにタイムゾーンファイルを上書きし、設定を反映します。
# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # source /etc/sysconfig/clock
MySQLのタイムゾーン設定
MySQLのタイムゾーン設定は少々やっかいです。 詳細はAmazon RDS(MySQL)でTimezoneを変更するをご覧ください。
iptablesの停止
CentOS6の場合、デフォルトでも、そこそこのセキュリティでファイヤウォールが動いています。 セキュリティはセキュリティグループの設定でコントロールするので、iptablesは停止しておきます。
# service iptables stop # service ip6tables stop # chkconfig iptables off # chkconfig ip6tables off
唯一ハマった部分です。
JDKのインストール
OracleのJDKはCLIからダウンロードするのは面倒です。 あらかじめOracle JDK7の最新版はoracle.comからローカルにダウンロードしてから、scpなどで転送しましょう。
さらにmysql.comからMySQLのJDBCドライバをダウンロードし、JARファイルを転送しておきます。
# cd /tmp/ # rpm -ivh jdk-7u71-linux-x64.rpm
あとはインストールガイドを参照しながら日本語フォントのインストールと設定を行います。
# yum -y install ipa-pgothic-fonts # mkdir /usr/java/jdk1.7.0_71/jre/lib/fonts/fallback # ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/java/jdk1.7.0_71/jre/lib/fonts/fallback
その他の依存パッケージのインストール
gitなどをインストールします。
# yum -y install git bind-utils libpng giflib libjpeg
Backlogエンタープライズのインストール
ライセンス購入や試用版を申し込むと、ダウンロードサイトへの接続ユーザ/パスワード、さらにライセンスキーが送られてきます。 あらかじめローカルマシンに各パッケージをダウンロードし、SCP等で転送しましょう。
RPMで提供されているのでインストールは簡単です。
# rpm -ivh backlog-* 準備中... ########################################### [100%] 1:backlog-app ########################################### [ 20%] 2:backlog-www ########################################### [ 40%] 3:backlog-api ########################################### [ 60%] 4:backlog-git ########################################### [ 80%] 5:backlog-mobile ########################################### [100%]
初期設定
データベースの初期化などを行い、仕上げましょう。 とはいっても、スクリプトを実行して必要な項目を入力するだけです。
# /opt/backlog/bin/init.sh ====================================================================== Backlog Professional Configurater ____ _ _ | _ \ | | | | | |_) | __ _ ___| | _| | ___ __ _ | _ < / _` |/ __| |/ / |/ _ \ / _` | | |_) | (_| | (__| <| | (_) | (_| | |____/ \__,_|\___|_|\_\_|\___/ \__, | __/ | |___/ [http://www.backlog.jp] ====================================================================== Backlog Professionalの環境設定を開始します。
設定する項目は以下の通りです。
BacklogにアクセスするURL
URL(ドメイン部分)を指定します。
SMTPサーバのホスト名
localhostでsendmailが動作していると思いますので、これを使いましょう。
データベースの種類
MySQLを選択します。
データベースサーバのホスト名
RDSのDNSを指定します。
ポート番号
3306のままで良いでしょう。
データベースサーバのユーザ名
設定したユーザ名を指定します。
データベースサーバのパスワード
設定したパスワードを指定します。
動作確認
セットアップが完了したならば、ブラウザから /backlog/Setup.action へアクセスし、動作を確認してください。 次のような画面が表示されれば成功です。
まとめ
AWS環境でもBacklogエンタープライズは問題なくインストールできました。 ただし、タイムゾーンの設定とファイヤウォールの設定は忘れないようにしてください。
でも、できればAmazon Linuxも対応して欲しいなー。