AWS EB(elastic beanstalk)+Go(Gin)でwebアプリをデプロイする

GoのフレームワークGinで作ったwebアプリをAWS EB(elastic beanstalk)にデプロイするところまで解説するチュートリアルです。

 

 

 

Go編

*ginが入っていること前提

この章ではlocalで動くwebアプリを作っていきます。(と言ってもhello worldするだけの簡単なアプリです)

まず最初にディレクトリ構成です。

コードについては重要な点だけ解説していきます。

必要なファイルはこちらに全てあるのでgit cloneしてください。

 

github.com

 

main.goについて

 

 最後の行では5000番でアプリを起動しています。これはAWS EBが5000番にあるアプリを起動するという仕様のためこれに従っています。

静的ファイルについて

 次は静的ファイルに関してです。静的ファイルをAWS EBに読み込ませる方法は

①バイナリ変換する
②.ebextensionsファイルを書くの2通りあります。

今回は後者の方法を使いました。

このファイルを書くことによって読み込ませるディレクトリをEBに認識させることができます。

index.tmplについては解説することがないので割愛します。

 

Buildする

 このコマンドを打ってbuildしてください。

その後buildディレクトリが作られます。

またcpコマンドを使ってtemplateディレクトリをbuild内にコピーしておいてください。

コマンドを打つとbuildがこのようなディレクトリ構成になると思います。

このコマンドを打ってzipファイルを生成してください。

 

以上でGo編終了です。

後は生成されたzipファイルをAWS EBにデプロイするのみとなりました。

 AWS EB編

アプリケーションの作成

わざわざAWS EB編と分けましたがやることはほとんどないです。

まずはAWSにサインインしてAWS EBコンソールまで行きます。

そこでcreate application ボタンを押してください。すると作成画面が出てきます。

f:id:yayoicoffee:20200428191430p:plain

プラットフォーム項目を画像の通りに設定してください。

f:id:yayoicoffee:20200428191510p:plain

ローカルファイルを選択し前章で生成したzipファイルをアップロードします。

最後にアプリケーション作成ボタンを押してください。

 

作業はこれで終了となります。

環境作成に少々時間がかかるかもしれませんがうまくいけば設定画面のURL先から「HELLO WORLD!!」が確認できると思います。

お疲れ様でした!

参考

https://dev.classmethod.jp/articles/golang-single-binary-web-application-on-elastic-beanstalk/