openfireのサイト: https://www.igniterealtime.org/projects/openfire/
openfireはXMPPでチャットをするために使うことのできるサーバーです。EC2にopenfireをインストールして、チャットが出来るところまで試してみます。
EC2インスタンスの作成
EC2インスタンスをAWSのコンソールから作成します。基本はデフォルトでいいですが、セキュリティーグループの設定に以下の設定を追加します。
|ポート番号|送信元|説明|
|--------+-----+----|
|5222|任意の場所|チャットの通信。どこからでも行えるようにする|
|9090|マイIP|管理画面用。作業しているPCからのみ開けるようにする|
こうして作成したEC2インスタンスには、パブリックDNS名が用意されます。これはこの後openfireのインストールで必要なのでメモしておいてください。今回はec2-52-68-129-98.ap-northeast-1.compute.amazonaws.com
となります。
※ このDNS名はグローバルIPと共に、インスタンスの再起動により都度変更されます。
openfireのインストール
インストールは、EC2インスタンス上で行います。まずはSSHでEC2インスタンスに接続してください。
$ssh -i (EC2インスタンスを作成する時に使った秘密鍵) ec2-user@ec2-52-68-129-98.ap-northeast-1.compute.amazonaws.com
Last login: Sun Sep 18 06:00:40 2016 from *****************
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2016.03-release-notes/
13 package(s) needed for security, out of 26 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-31-6-209 ~]$
openfireはrpmが提供されています。そのため、openfireの公式サイトからrpmをダウンロードして、簡単にインストールすることができます。
[ec2-user@ip-172-31-6-209 ~]$ wget --content-disposition http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.0.3-1.i386.rpm
--2016-09-17 06:04:26-- http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.0.3-1.i386.rpm
www.igniterealtime.org (www.igniterealtime.org) をDNSに問いあわせています... 52.58.216.59
www.igniterealtime.org (www.igniterealtime.org)|52.58.216.59|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://download.igniterealtime.org/openfire/openfire-4.0.3-1.i386.rpm [続く]
--2016-09-17 06:04:27-- http://download.igniterealtime.org/openfire/openfire-4.0.3-1.i386.rpm
download.igniterealtime.org (download.igniterealtime.org) をDNSに問いあわせています... 52.58.216.59
download.igniterealtime.org (download.igniterealtime.org)|52.58.216.59|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 97094567 (93M) [application/x-rpm]
`openfire-4.0.3-1.i386.rpm' に保存中
openfire-4.0.3-1.i386.rpm 100%[=============================================================================>] 92.60M 3.86MB/s in 23s
2016-09-17 06:04:50 (3.97 MB/s) - 'openfire-4.0.3-1.i386.rpm' へ保存完了 [97094567/97094567]
[ec2-user@ip-172-31-6-209 ~]$ sudo rpm -ivh openfire-4.0.3-1.i386.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:openfire-4.0.3-1 ################################# [100%]
使用するJavaの変更
openfireにはJDKが同梱されていますが、これはAmazon Linuxの64bit環境では動作しません。そこで、/etc/sysconfig/openfire
を編集して、Amazon LinuxにもともとインストールされているJDKに変更します。
# ファイルの末尾に以下の1行を追加
JAVA_HOME=/etc/alternatives/jre
openfireの起動
openfireはサービススクリプトが用意されているので、serviceコマンドで起動できます。起動したかどうかはpsコマンドで確認できます。
[ec2-user@ip-172-31-6-209 ~] sudo service openfire start
Starting openfire:
[ec2-user@ip-172-31-6-209 ~]$ ps -ef | grep openfire
daemon 23696 1 47 14:18 ? 00:00:02 /etc/alternatives/jre/bin/java -server -DopenfireHome=/opt/openfire -Dopenfire.lib.dir=/opt/openfire/lib -classpath /opt/openfire/lib/startup.jar -jar /opt/openfire/lib/startup.jar
ec2-user 23728 23624 0 14:18 pts/0 00:00:00 grep --color=auto openfire
openfireの初期設定
openfireが起動したら、ブラウザでhttp://ドメイン名:9090/
を開きます。管理画面が起動するので次の順に設定していきます。
- 'Choose Language' → 日本語はないので英語を選んでおくのが無難
- 'Server Settings' → DomainにEC2インスタンスを作成した時に記録したパブリックDNS名を入れる
- 'Database Settings' → 今回は説明用なので、何もインストールしなくても利用可能な"Embedded Database"を指定する(*1)
- 'Profile Settings' → openfireでユーザーを管理する'Default'を選択する(*2)
- 'Administrator account' → 管理画面にログインして各種設定を行うためのアカウント。メールアドレスに関係なく、ログインする時のアカウント名は'admin'となることに注意
(*1) 本番環境で利用する時にはEmbedded Databaseは信頼性が低いのでお勧めできない。代わりに"Standard Database Connection"を指定して、既存のデータベースへの接続情報を設定すること。
(*2) 'Directory Server(LDAP)'を選ぶと、既存のLDAPサーバーに登録されているユーザーでログインさせるようにすることも可能
openfireの管理画面を開く
初期設定が終わると、openfireのインストールは終了です。もう一度ブラウザでhttp://ドメイン名:9090/
を開いてください。ログイン画面が開くので、以下の情報を入力してログインします。
|入力項目|値 |
|-------+---|
|username|'admin'固定|
|パスワード|openfireの初期設定で入力したパスワード|
以下の管理画面が表示されれば、完了です。