Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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じゃないですけど)
快適な開発をやっていきましょう!

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away