1.2.5. web2py 管理インターフェース(admin)の設定¶
Beanstalk にデプロイした web2py の管理インターフェース(admin)は、通常の設定では使用できません。 これには2つの原因があります。
- (管理インターフェースのセキュリティ確保のため) web2py が動作している環境がローカルであるか、もしくは SSL/TLS(HTTPS)での接続 の場合のみ、管理インターフェースへのアクセスが許可されます。 Beanstalkにデプロイしたアプリケーションは、そのどちらでもありません。
- WSGI を使用し web2py アプリケーションを動作させているため、管理者パスワードの 設定を行なっていません。このためパスワードがありません。
今回はこれらの問題を解決し、管理インターフェースの動作を試してみます。
1.2.5.1. 接続設定¶
管理インターフェースへの安全な接続のためには、HTTPS接続にするか、SSHトンネルによる接続が 考えられます。この内、SSHトンネルはより安全な方法なのですが、EC2インスタンスが Beanstalk から間接的に起動されているため、別ポートの web2py を立ち上げるのは簡単ではないようです。 このため今回は、(自己署名証明書による) HTTPS接続を試してみます。
ELB にSSL証明書を登録
SSL証明書を作成し、ELB(Elastic Load Balancing)に登録する必要があります。 これらの手順は、次のサイトで詳しく説明していますので参照ください
Beanstalk で生成した EC2 インスタンスに SSH で接続する手順は、次を参照ください。
optionsettings 設定ファイルを修正し、次の記述を追加します。
[aws:elb:loadbalancer] LoadBalancerHTTPSPort=8443 SSLCertificateId=arn:aws:iam::xxxxxxxx:server-certificate/elb.hoge.comaws:elb:loadbalancer 名前空間はロードバランサに関する設定を記述します。
LoadBalancerHTTPSPort は HTTPS ポートの指定を行います。 443 か 8443 を設定できますが、 今回は 8443 を指定します。
SSLCertificateId は先ほどELBに登録した、SSL証明書を指定します。
eb update
で変更をAWSサーバに反映させます。C:\web2py>eb update Enter an RDS DB master password: Retype password to confirm: Update environment? [y/n]: yアプリケーションが HTTPS で接続できるか、確認します。
ポート8443 を設定したので、次のように URLでポートを指定する必要があります。
https://web2py-env-xxxxxxx.elasticbeanstalk.com:8443ポート 8443 のパスワードファイル作成
web2py では起動時に管理インターフェースのパスワードを指定しない場合、パスワードはパスワードファイルを 使用します。
ローカル(作業用マシン)にて、パスワードを指定しない(-a オプションを指定しない)で web2py サーバを起動します。すると GUIのサーバコンソールが起動し、パスワードを入力する必要があります。 この入力したパスワードは、 parameters_8000.py というファイルに保存されます。このファイルの 数字の部分はポート番号です。
8443 ポートで web2py を起動しパスワードを入力するか、 parameters_8000.py をコピーし parameters_8443.py ファイルを作成してください。 ファイルに登録されるパスワードは、最後に入力した文字列になります。
コードを AWSサーバにプッシュします。
コードのコミットを行います。
C:\web2py>git commit -m "test code"
コードをプッシュします。
C:\web2py>git aws.push
ポート 8443 で管理インターフェースが動くのを確認してください。
1.2.5.2. 注意点など¶
本番環境では必要がなければ、管理インターフェースは使用不可にしておいた方がよいでしょう。 その場合、aws:elb:loadbalancer 名前空間を削除するか、
LoadBalancerHTTPSPort=OFF
とします (その後、eb update
を行う必要があります)。 もしくはパスワードファイルを削除します。管理インターフェースの機能を停止するという意味では、パスワードファイルを削除することが適切です。