ちょい記事です。
Cloud9で起動したアプリを他の人にも見えるようにするには一工夫が必要です。
IDE のアプリケーションプレビュータブで URL を他のユーザーと共有することはお勧めしません(URL は https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/ 形式で表示されます。12a34567b8cd9012345ef67abcd890e1 は AWS Cloud9 が 環境 に割り当てる ID、us-east-2 は 環境 の AWS リージョンの ID です)。 この URL を使用するには、環境 の IDE が開いており、アプリケーションが同じウェブブラウザで実行されている必要があります。
やり方
基本的にはAWS側は公式に沿って設定すればOKです。
- Cloud9で利用中のEC2インスタンスのセキュリティグループのインバウンドルールでTCPの8080番ポート(アプリで使いたいポート)を許可
- 同じインスタンスのいるサブネットのネットワークACLのインバウンドルールで同様にTCPの接続を許可
Laravelアプリ側は以下のコマンドで起動します。
-
php artisan serve --host=0.0.0.0 --port=8080
を実行- ホスト名を直接グローバルIPにしても
Cannot assign requested address
となってしまいましたが、0.0.0.0
だと行けました。
- ホスト名を直接グローバルIPにしても
これで以下のようにEC2インスタンスのパブリックIPで繋がります。
http://(パブリックIP):8080/
なお、Cloud9は初期設定だと使用終了後30分で停止してしまうので、ずっと上げておきたい場合は以下のように設定しましょう。
Cloud9の開発画面右上の歯車マーク
→Project Settings
→EC2 Instance
→Stop My EnvironmentをNeverにする
また、パブリックIPを固定したい場合は、EC2インスタンスにElastic IPを関連付けておきましょう。
以上です。