質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

1280閲覧

dockerで開発したアプリをec2のパブリックipを使用して公開したいのに【このサイトにアクセスできません】と表示されてしまいます。

nre

総合スコア35

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2020/10/01 09:00

編集2020/10/01 09:03

前提・実現したいこと

ローカルで作成したHello world表示アプリをec2のパブリックipから公開したいです。

現状はローカルでdocker,docker-composeでdjangoの開発環境をビルドし、
http://localhost:8000/helloのリンクで問題なくhello worldページを表示する事に成功しております。
そのプロジェクトをgitにプッシュして、
ec2コンテナ内でクローンしローカルと同じ環境をビルドしました。

そこでec2のインスタンスにあるパブリックipを使用してhallo worldページを開こうとすると
このサイトにアクセスできませんと表示されてしまいます。

プロジェクトのソースコードは下記となります。
git@github.com:ren80001/ec2-docker-testproject.git

発生している問題・エラーメッセージ

下記の様に表示されてアクセスできません。 このサイトにアクセスできません3.137.187.156 で接続が拒否されました。 次をお試しください 接続を確認する プロキシとファイアウォールを確認する ERR_CONNECTION_REFUSED インターネット接続を確認してください ケーブルを確認し、使用しているネットワーク デバイス(ルーター、モデムなど)を 再起動してください。 ファイアウォールやウイルス対策の設定で、Chrome からネットワークへのアクセスを 許可します。 ネットワークへのアクセスを許可されたプログラムとして既に表示されている場合は、 いったんリストから削除し、もう一度追加してみてください。 プロキシ サーバーを使用している場合… プロキシの設定を確認するか、ネットワーク管理者に問い合わせて、プロキシ サーバーが正常に 動作しているかどうかを確認してください。プロキシ サーバーを使用していない場合は 次の方法をお試しください。 このオプションを無効にするには: [アプリケーション] > [システム環境設定] > [ネットワーク] > [詳細] > [プロキシ] の順に移動して、 選択されているプロキシの選択を解除します。

補足情報(FW/ツールのバージョンなど)

インスタンスは実行中でサブネット、VPC,インターネットゲートウェイ、ルートテーブルなどはアタッチドされており、
実行する際はあwsにssh接続した状態でdocker-compose up -dで起動しております。
80番ポートでのアクセスも可能としております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satokei

2020/10/01 11:54

> 80番ポートでのアクセスも可能としております docker-compose.yml では8000番のようですが、80番に変更しているのでしょうか?
nre

2020/10/02 08:11

ご回答していただき誠にありがとうございます。 こちら変更しておりませんでしたので変更してみます。
guest

回答2

0

ベストアンサー

gitリポジトリのURLはhttpsで貼ってください。

docker-compose.ymlではnginxをホストの8000番ポート、djangoをホストの8001番ポートにマッピングしているので、80番ポートを使っていません。
なので80番ポートにアクセスしても何も待ち受けているものがない状態です。(コンテナでnginxを立ち上げているにも関わらず、ホストでわざわざ80番ポートへのリクエストを転送するようなことはしてないだろうと想定しています。)

せっかくnginxを使っているのだから、nginxを80番ポートにマッピングすれば良いと思います。
nginx自体ももわざわざ8000番ポートでリッスンする必要も特にないでしょう。

投稿2020/10/01 13:10

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nre

2020/10/02 08:15

ご回答していただき誠にありがとうございます。 おっしゃるとおり、docker-compose.ymlのnginxのポートを8000:8000から80:80に変更し それに関連するファイルも合わせて変更することで、 https/パブリックip:80/helloで無事にdjangoで作成したページを表示させる事ができました。 本当にありがとうございました。
guest

0

セキュリティグループの設定はどうなってるんでしょうか

投稿2020/10/01 09:41

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nre

2020/10/01 09:53 編集

下記がセキュリティグループの設定です。 タイプ    プロトコル  ポート範囲   ソース  説明オプション HTTP      TCP      80    0.0.0.0/0        ------------- SSH       TCP      22    0.0.0.0/0         - --------------- 以上となっております。 ちなみにec2コンテナ上にnginxやpymysqlなどはインストールする必要はございますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問