18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Go3Advent Calendar 2018

Day 13

最速でGoのAPIサーバを公開する方法

Last updated at Posted at 2018-12-12

#はじめに
Go-Logo_Fuchsia.jpg
Web系の開発やってるとサクッとWebAPIサーバ建てたい・・・!けどめんどくさいことは抜きにしたい!というときありますよね?

コールバック先を指定したいけどいい感じの公開サーバがないときとか・・・
どっかのサーバからリクエスト流してもらって中身確認したい時とか・・・
シンプルに開発中のサーバを一回公開したいとか・・・

この投稿ではサクッとコマンド1発でWebAPIサーバが起動する、丸投げ系テンプレートを紹介します。

#動作環境

  1. MacBookPro2016 Mojave
  2. go version go1.10.3 darwin/amd64
  3. Python 3.6.5

#事前に

  1. AWSのアカウントを作成する。
  2. EBコマンドを事前にインストールする。

#リポジトリ
テンプレート置き場
https://github.com/muff1225/goserver-saisoku

#プロジェクトの構成
ファイルの構成は以下のようになっています。

.
├── .elasticbeanstalk
│   └── applicationconfig.yml
├── README.md
├── application.go
├── bin
│   └── application
└── deploy.sh

#起動方法
リポジトリからダウンロードもしくはforkして、プロジェクトの中のdeploy.shを実行します。

. deploy.sh

#解説
deploy.shの中身は以下のようになっています。

deploy.sh
#!/bin/bash

# building to deploy the application for EB.
go build -o bin/application application.go

# validating have been installed eb command in this machine.
eb --version
if [ $? -ne 0 ]; then
    echo "Please install eb command before running this script.(https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3-install.html)"
fi

# EB status check for the next command.
eb status saisoku
if [ $? -ne 0 ]; then
    # create new one
    eb init goserver
    eb create saisoku
    eb open
else
    # deploy new app
    eb deploy saisoku
    eb open
fi
  1. go build -o bin/application application.goでアプリケーションをビルド
  2. 環境がない場合はeb createでサーバ立ち上げ。(elasticbeanstalk /applicationconfig.ymlを使って初期化します。)
  3. 環境がすでにある場合は、eb deployでビルドしたアプリケーションをデプロイします。

このテンプレートを元にアプリケーションを修正する場合

ElasticBeanstalkのルールとしてgolangサーバを建てる場合、開けるポートは5000番、アプリケーションの実行ファイルはbin/applicationにするようにしなければなりません。
このルールさえ守れば、アプリケーションを修正して、deploy.shでデプロイまで実行可能です。

#最後に
このテンプレートを使えば、サクッと自分が自由に使える環境を構成できます。(HTTPSじゃないですけど)
快適な開発をやっていきましょう!

18
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?