teratail header banner
teratail header banner
質問するログイン新規登録
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

docker-compose

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

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Amazon EC2

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

Q&A

解決済

1回答

3354閲覧

EC2のパブリックIPに接続できない

makkesann5392

総合スコア5

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

docker-compose

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

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Amazon EC2

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

0グッド

0クリップ

投稿2021/09/16 05:27

0

0

前提・実現したいこと

EC2上vue+gin+postgresqlをdocker-compose upしたものをパブリックipから接続したいです。
ローカル環境で作ったものをgit cloneでEC2にコピーし、docker-compose upしました。

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

docker-compose upには成功しEC2インスタンス内で nc -vz localhost 443 で接続を確認しています。
しかし、パブリックipから接続しようとしたときConnection refusedが表示されてしまいます。

該当のソースコード

https://github.com/makkesann/kakaku_go

試したこと

ここに問題に対して試したことを記載してください。
EC2インスタンスのインバウンドルールにも記載しましたが、変化はなかったです。

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

vue
gin
postgresql
AWS EC2

どなたか回答してくださるととてもうれしいです。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

HTTPS(TLS)をハンドリングする役割はどこにありますか?
Goのコードを見てみたところ、HTTPで8082ポートをリッスンする様子は見えました。
docker-compose.ymlにもHTTPS(TLS)ハンドリングしている部分は見当たりません。

だれもHTTPS(TLS)ハンドリングしていないサーバーにTLS(HTTPS)接続を試みれば接続できないのは当然です。

まずはHTTP(nonTLS)でつながるかどうかを確認し、その後、TLS化するのにはどうするのかを検討するとよいと思います。

通常、HTTPSハンドリングにはサーバー証明書やドメインなどの課題を解決する必要がありますが、
それらを準備できればGoのサーバーをHTTPS(TLS)ハンドリング可能な形で起動するという方法があります。また、AWSに乗っかるならCloudFrontでTLS終端してHTTPSの要求をHTTP要求に置き換えてEC2に中継してもらうとよいでしょう。

HTTPS(TLS)なサーバーに接続テストをするのなら、以下のコマンドで。
ncはnonTLSでしかテストできません。

openssl s_client -connect サーバードメイン名:443

投稿2021/09/16 07:07

編集2021/09/16 07:16
nobonobo

総合スコア3367

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

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

makkesann5392

2021/09/16 07:20

ご回答ありがとうございます! 最近勉強し始めただけで全然知識がない状態だったのでnobonoboさんの回答を見つつ勉強しながら解決に励もうと思います! またわからないところがあったら質問させていただくかもしれませんが、もし可能であればまた回答してくださればとてもうれしいです!
makkesann5392

2021/09/16 07:41 編集

追加で質問させていただきます。 [ec2-user@ip- kakaku_go]$ nc -vz localhost 443 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 127.0.0.1:443. Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds. [ec2-user@ip- kakaku_go]$ nc -vz パブリックIP 443 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connection refused. となってしまってnonTLSでも接続できない状況です。 これにはどのような原因が考えられますでしょうか。 また、それに対する解決策等ご存じでしたら教えてくだされればとてもうれしいです!
nobonobo

2021/09/16 07:43 編集

サーバー側に開けているポートとサーバーがリッスンするポートの関連付けがマッチしていますか? おそらく、そもそも443ポートを見ているサーバーがいないように見えます。 (docker-composeで443を8082につないでいるかどうか) まず確かめるとよいのは docker-compose.ymlのserverのポートマップ"8082:8082"を"80:8082"に設定して `nc -vz ドメイン 80`につながるかどうかを確認してみてはどうでしょうか?
makkesann5392

2021/09/16 08:19 編集

ご返信ありがとうございます! 確認してみます!!
makkesann5392

2021/09/16 09:43

とりあえずポート設定を見直して、http接続にてブラウザで確認したところとりあえず接続できましたので一旦解決済みとさせていただきます! 丁寧に回答していただいて本当にありがとうございます! おかげでとりあえずは前に進めそうです! またお世話になるかもしれませんがその時はよろしくお願いしますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問