.. meta:: :keywords: web2py, framework, deploy, AMAZON Web Services, Elastic Beanstalk .. _aws_beanstalk_admin_setup: web2py 管理インターフェース(admin)の設定 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Beanstalk にデプロイした web2py の管理インターフェース(admin)は、通常の設定では使用できません。 これには2つの原因があります。 * (管理インターフェースのセキュリティ確保のため) web2py が動作している環境がローカルであるか、もしくは SSL/TLS(HTTPS)での接続 の場合のみ、管理インターフェースへのアクセスが許可されます。 Beanstalkにデプロイしたアプリケーションは、そのどちらでもありません。 * WSGI を使用し web2py アプリケーションを動作させているため、管理者パスワードの 設定を行なっていません。このためパスワードがありません。 今回はこれらの問題を解決し、管理インターフェースの動作を試してみます。 接続設定 """""""" 管理インターフェースへの安全な接続のためには、HTTPS接続にするか、SSHトンネルによる接続が 考えられます。この内、SSHトンネルはより安全な方法なのですが、EC2インスタンスが Beanstalk から間接的に起動されているため、別ポートの web2py を立ち上げるのは簡単ではないようです。 このため今回は、(自己署名証明書による) HTTPS接続を試してみます。 #. ELB にSSL証明書を登録 SSL証明書を作成し、ELB(Elastic Load Balancing)に登録する必要があります。 これらの手順は、次のサイトで詳しく説明していますので参照ください `koba206の開発WIKI - ELBでHTTPS(SSL証明書)の設定方法 `_ Beanstalk で生成した EC2 インスタンスに SSH で接続する手順は、次を参照ください。 .. toctree:: ssh_setup #. **optionsettings** 設定ファイルを修正し、次の記述を追加します。 :: [aws:elb:loadbalancer] LoadBalancerHTTPSPort=8443 SSLCertificateId=arn:aws:iam::xxxxxxxx:server-certificate/elb.hoge.com aws:elb:loadbalancer 名前空間はロードバランサに関する設定を記述します。 LoadBalancerHTTPSPort は HTTPS ポートの指定を行います。 **443** か **8443** を設定できますが、 今回は 8443 を指定します。 SSLCertificateId は先ほどELBに登録した、SSL証明書を指定します。 #. ``eb update`` で変更をAWSサーバに反映させます。 .. include:: eb_update_command.html #. アプリケーションが 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サーバにプッシュします。 コードのコミットを行います。 .. include:: git_commit_command.html コードをプッシュします。 .. include:: git_aws_push_command.html #. ポート 8443 で管理インターフェースが動くのを確認してください。 注意点など """""""""" * 本番環境では必要がなければ、管理インターフェースは使用不可にしておいた方がよいでしょう。 その場合、aws:elb:loadbalancer 名前空間を削除するか、 ``LoadBalancerHTTPSPort=OFF`` とします (その後、 ``eb update`` を行う必要があります)。 もしくはパスワードファイルを削除します。 管理インターフェースの機能を停止するという意味では、パスワードファイルを削除することが適切です。