ConoHa :5分でGoのWebアプリをConoHaVPSで公開する方法

この記事は約7分で読めます。

5分でGoのWebアプリを ConoHa VPSで公開する方法を説明します!

そんなに早く?

と思われるかもしれませんが、公開するために必要な処理以外は省いています。笑

今すぐ公開したい人向けです。(公開以外の処理の設定はプラスアルファで説明するので安心してください)

 

大まかな流れ

  1.  ConoHaVPS
    でサーバを借りる
  2. sshでサーバにアクセスしてみる
  3. Goのプログラムをbuildして、借りたサーバに送信する
  4. ポートを解放して、Goのプログラムを起動する

なんと、これだけなんです!

それぞれの流れを見ていきましょう!

ConoHaVPSでサーバを借りる

ConoHaVPS
にアクセスします。

 追加ボタンを押して、一番安いサーバを選択します(よっぽど大きいものでなければ、安いのでOKです)

 

今回使用するOSはCentOS(7.6)です。

rootパスワードは自由に決めてください(後で使うのでメモしていてください)

ネームタグはサーバを特定するためのものなので、自由です。

右側にある追加ボタンを押すと、サーバが借りることができます。

借りた後、借りたサーバをクリックし、詳細を開いてください。

そして、図にあるようにIPアドレスをメモしておいてください。

サーバにアクセスしてみる

借りた後に、一度、アクセスしてみます。ターミナルで下のコマンドを打ってください($はコマンドということなので、無視してください)

$ ssh root@(ipアドレス)

すると、

The authenticity of host 'xxx.xxx.xxx.xxx' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes

みたいなのが出るので,yesを打って、エンターを押してください

すると、次にパスワードを打てと出るので、先ほどメモしたrootパスワードを打って、エンターを押してください。

(文字を打っても見た目には出ないので、気をつけてください)

これで、ログインできるはずです。

[root@xxx-xxx-xxx-xxx ~]#

と出れば、成功です。

Goのプログラムをbuidして、借りたサーバに送信する

次にローカルのパソコンに戻ります。

ここで、元から作成しているGoのWebアプリをCentOS用にBuildしてサーバに送信します。

Go言語入門~day4-Webアプリを作ろう~

ここで作った、アプリを送ります。

├── main.go
└── views
    └── index.tmpl

このようなディレクトリです。

ここで、注意して欲しいのが、ポートです。このWebアプリが起動しているポートを覚えておいてください。(サーバで、そのポートを解放する必要があります。今回では8080です。)

 

次にgoファイルをbuildします。centOS用にbuildするため、”GOOS=linux GOARCH=amd64″を追加します。

$ GOOS=linux GOARCH=amd64 go build main.go //bash

これが成功すると、同じディレクトリにmainファイルができます。

次に、このファイルをサーバに送信します。scpコマンドを利用します。

$ scp -r . root@(ipアドレス):~ // カレントディレクトリ(-r .)からroot@(ipアドレス)のホームディレクトリ(~)に送信

の後にパスワードを求められるので、rootパスワードを再度入力します

ローカルのカレントディレクトリ以下のファイルがそのままサーバに上がります。

 

ポートを解放して、Goのプログラムを起動する

サーバにアクセスします

[root@xxx-xxx-xxx-xxx ~] ssh root@(ipアドレス)

まず、Webアプリのポートを外部からアクセスできるようにサーバのポートを解放します。今回は8080ポートを解放します

このコマンドを詳しく知りたい時は、こちらを参考にしてください

[root@xxx-xxx-xxx-xxx ~]firewall-cmd --add-port=8080/tcp --zone=public

サーバにファイルがあるのを確認して、

$ ./main

で実行し、ブラウザで、以下のアドレスを入力して確認してください

(IPアドレス):(ポート番号)

これで開けたら公開できています!

簡単ですよね。これだけではなく、プラスアルファの設定がたくさん必要です!追加で説明していきます。

スポンサーリンク

プラスアルファ

セキュリティ

サーバのセキュリティはとても重要です。例えば、今回だと、rootユーザで全て処理していますが、rootパスワードが漏れれば、乗っ取られてしまいます。なので、サービスとして公開する場合はセキュリティはすべきです。

セキュリティ設定

を確認してください。

サイトのポート

先ほどは8080ポートを解放しましたが、基本的には80(http)or443(https)がWebの基本です。なので、プログラムの起動ポートを80にするか、NGINX等のwebサーバを前に立てて、80ポートで受けましょう。

ブラウザでは80or443は省略されます。

もし、https(443ポート)でもアクセスできるようにしたいなら

HTTPS通信する

を参考にしてください

お名前.comでドメインを取得する

今回、ブラウザでアクセスした時は、IPアドレスでしたよね。

これを自分の好きなドメインでアクセスした時もWebにアクセスできるようにしましょう。

ドメインを取得する

お名前.comでドメインを取得します。流れに従えば、取得できるはずです。

ConoHaVPSとお名前.comで取得したドメインを連携する

ここではお名前.comで取得したドメインをConoHaで使うために、

  • ConoHaでドメインの設定
  • お名前.comでネームサーバをConoHaに変更

これを行います。

設定の反映に少し時間がかかる場合があります。

ConoHaでドメイン設定

ConoHa VPS
の欄から、DNS→+ドメインを押します。

そして、お名前.com
で取得したドメイン名を記述して、保存します。

次にそのドメインをクリックします。

下のプラスボタンから、名称、TTL、値を入れていきます。

名称は@を入れてください。

値には借りたVPSサーバのIPアドレスを入力してください。(図では値を消しています)

また、タイプNSの値は次のお名前.comで必要になるので、メモしておいてください。

お名前.comでネームサーバをConoHaに変更

お名前.com

にて、ドメイン設定→ネームサーバーの変更

そこで、取得したドメインを選択し、他のネームサーバを利用を選択します。

先ほどConoHa のDNS書いてあったタイプNSの値を入力します。

これで、サーバの設定は完了です。

これで数時間~数十時間待てば、独自に指定したドメインでもアクセスできるようになります。

 

NGINXでプログラムを公開する

今回はGoのWebアプリを直接見れるようにしましたが、基本Webサーバと呼ばれる物を間に入れる方が、色々良いです。

なので、80や443ポートはNGINXでアクセスを受け取り、GoのWebアプリに間接的にアクセスするようにしましょう。

ConoHa とお名前.comでサブドメインを利用してページ公開する
ConoHaとお名前.comを用いてウェブアプリを公開します。その時に、サブドメインを使うことで、一つのサーバで複数のアプリを公開できます。その方法を今回解説していきます。

Goではないですが、NGINXを用いて、公開する方法を書いているので、是非ご覧ください。

まとめ

今回は5分でGoのwebアプリを公開する方法を紹介しました。

Goの良いところが、コマンド一つで、それぞれの環境にあった実行ファイルを生成できることです。

今回もそれを生かして、ローカルでbuildしてあげています。

大規模になると、今回の「buildして送信する」という処理をCIツールに任せて、自動デプロイしたりします。

また、それもご紹介できれば良いなと思っています。

それでは。

タイトルとURLをコピーしました