Google App Engine で始める Go 実践入門 Part 1 【GO / Cloud SDK のインストール】

2019/03/31追記
初めは Part 1, Part 2 の 2 部構成の予定でしたが、内容的にそれでは収まり切らなかったため、Part 1 つ 1 つの量は少なめにして連載という形を取ることにしました。

---

連載を通して簡単なブログアプリを作成しつつ Go/GAE について学んでいきます。
今回は Go / Cloud SDK のインストール についての説明です。

- [Part 1. 『GO / Cloud SDK のインストール』](https://qiita.com/rema424/items/743bc508ef70cd980e17) ← イマココ
- [Part 2. 『GOPATH』](https://qiita.com/rema424/items/009f6345eb75a80bf369)
- [Part 3. 『プロジェクトの作成』](https://qiita.com/rema424/items/19b946c311f3b3b3f953)
- [Part 4. 『ディレクトリ構成』](https://qiita.com/rema424/items/1a6096c77b90ea350a26)
- [Part 5. 『Visual Studio Code』](https://qiita.com/rema424/items/b2ecdd2c7ec7fc1b0a7c)
- [Part 6. 『Hello World』](https://qiita.com/rema424/items/66ce1b02d7de588e63cf)
- [Part 7. 『リモートデバッグ』](https://qiita.com/rema424/items/996aaf0ab69670224af4)
- [Part 8. 『デプロイ』](https://qiita.com/rema424/items/dbf851908dbfc95f9b6f)
- [Part 9. 『Makefile』](https://qiita.com/rema424/items/3a099dfb023aa06086f5)
- [Part 10. 『Circle CI』](https://qiita.com/rema424/items/4dcb37346cecc544dfaa)
- Part 11. 『Dependency Injection』
- Part 12. 『ローカルDB with Docker』
- Part 13. 『gorm』
- Part 14. 『Cloud SQL』
- Part 15. 『Cloud SQL Proxy』
- Part 16. 『HTML』
- Part 17. 『CSS/JS』
- Part 18. 『Google Analytics』
- Part 19. 『Google Search Console』
- Part 20. 『A/B テスト』
- Part 21. 『ユーザーの作成』
- Part 22. 『Firebase Auth』
- Part 23. 『記事の作成』
- Part 24. 『コメントの作成』
- Part 25. 『ページネーション』

# ローカル環境構築

まずはローカル開発環境を構築します。OS は MacOS を想定しています。

準備するものは次の通りです。

- Xcode command line tool
- Homebrew
- Go
- Google Cloud SDK
- Cloud SQL Proxy
- Visual Studio Code

次のコマンドを実行してインストールをします。

```sh
# ------------------------
# Xcode command line tool
# ------------------------

# インストール
xcode-select --install

# ---------
# Homebrew
# ---------

#  インストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# ---------
# Go
# ---------

# インストール
brew install go

# GOPATH の設定
echo 'export GOPATH=$HOME/go' >> ~/.bash_profile

# PATH に GOPATH を追加
echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.bash_profile

# -----------------
# Google Cloud SDK
# -----------------

# google-cloud-sdkのアーカイブをHomeディレクトリ配下にダウンロード
curl -o ~/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-239.0.0-darwin-x86_64.tar.gz

# Homeディレクトリ配下に解凍
tar xvzf ~/google-cloud-sdk.tar.gz -C ~/

# アーカイブを削除
rm -rf ~/google-cloud-sdk.tar.gz

# インストールスクリプトを実行してパスを通す
sh ~/google-cloud-sdk/install.sh -q --rc-path ~/.bash_profile

# ログインスクリプトを再読み込み
source ~/.bash_profile

# SDKを最新版にアップデートする
gcloud components update --quiet

# Go 用の App Engine の拡張機能をインストールする
gcloud components install app-engine-go --quiet

# SDKのスクリプトに実行権限を付与
chmod +x ~/google-cloud-sdk/platform/google_appengine/*

# ログインスクリプトに環境変数を追記して再読み込み
echo 'export GOOGLE_CLOUD_SDK_ROOT=$HOME/google-cloud-sdk' >> ~/.bash_profile
echo 'export PATH=$GOOGLE_CLOUD_SDK_ROOT/bin:$PATH' >> ~/.bash_profile
echo 'export PATH=$GOOGLE_CLOUD_SDK_ROOT/platform/google_appengine:$PATH' >> ~/.bash_profile
source ~/.bash_profile

# ----------------
# Cloud SQL Proxy
# ----------------

# Cloud SQL Proxy用のマウントフォルダを作成
if [ ! -d '/cloudsql' ]; then sudo mkdir /cloudsql ; fi

# 権限を変更
if [ -d '/cloudsql' ]; then sudo chmod 777 /cloudsql ; fi

# mac用cloud-sql-proxyのバイナリをダウンロードする
# Linuxなどはこちらを参考に　cloud.google.com/sql/docs/mysql/connect-admin-proxy
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64

# 権限を変更する
sudo chmod 755 cloud_sql_proxy

# パスの通っているディレクトリに移動させる
mv cloud_sql_proxy /usr/local/bin/

# -------------------
# Visual Studio Code
# -------------------

# インストール
brew cask install visual-studio-code
```

# おわりに

次回のテーマは『[GOPATH](https://qiita.com/rema424/items/009f6345eb75a80bf369)』です。

よかったら Twitter フォローしてね。[@_rema424](https://twitter.com/_rema424)