サクッと立てたAWS EC2でサクッとgoを実行したい
さくっと一時的にバッチ実行するインスタンスを立てたい。
そんなときのために構築手順をまとめておきます。
go インストール
yum installでもいいのですが、最新バージョンの追従が遅れるケースが多いので、
ここではwgetでバイナリを落とす形で進めます。
$ mkdir ~/tmp; cd ~/tmp $ wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz $ tar zxvf go1.9.1.linux-amd64.tar.gz
wgetしたらPATHが通っている箇所にシンボリックリンクを貼ります。
例では1.9.1で固定していますが、通常は公式のダウンロードページから最新を探してURLを確認します。
$ sudo mv go /usr/local/ $ sudo ln -s /usr/local/go/bin/go /usr/bin/go $ sudo ln -s /usr/local/go/bin/go /usr/local/bin/go $ sudo ln -s /usr/local/go/bin/godoc /usr/local/bin/godoc $ sudo ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt
.bashrcにビルドの場所を指定します。
現時点ではディレクトリが存在していなくても問題ありません。
export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin // 保存してから読み込み source ~/.bashrc
git インストール、作業リポジトリのclone
gitをインストールして、鍵設定をします。
$ sudo yum install -y git $ cd ~ $ vi .ssh/config StrictHostKeyChecking no ServerAliveInterval 60 Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa $ vi .ssh/id_rsa // 自身の秘密鍵を貼るなり、scpで置くなり、生成してGitHubに登録するなり
パーミッションを600にします。
chmod 600 .ssh/config .ssh/id_rsa
実行したいgoリポジトリをgit cloneします。
git clone git@github.com:[owner_name]/[repository_name].git ./go/src/github.com/[owner_name]/
(必要なら) ag インストール
ここでは何かと必要になる ag をインストールしてみます。
MacはHomebrewですぐですが、Amazon Linuxでは yum が使えるのでCentOSと同じ手順で進めます。
ディレクトリ作成・ソースダウンロード
$ mkdir -p $HOME/local/source $ cd $HOME/local/source $ git clone https://github.com/ggreer/the_silver_searcher
ソースをmakeするための準備
コンパイラなどがないためインストールします。
$ sudo su - yum -y groupinstall "Development Tools" yum -y install pcre-devel xz-devel exit
コンパイル・インストール
$ cd $HOME/local/source/the_silver_searcher // このまま次の工程に進むとエラーが起きるため、zlib-develをインストールします。 $ sudo yum -y install zlib-devel $ ./build.sh $ sudo make install
インストール完了です。
$ which ag
/usr/local/bin/ag
(必要なら) aws cli インストール
こちらの手順もAWSを操作したい場合のみでかまいません。
pip のインストールスクリプトをダウンロードします。
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" sudo python get-pip.py
sudo pip install awscli
自身の ~/.aws/credentials や ~/.aws/config を見て設定します。
aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
実行
$ cd ~/go/src/github.com/[owner_name]/[repository_name] // 依存パッケージがあれば、 dep ensure とか glide install でインストール $ go run main.go rw.go
以上です。ご自身の環境に応じてカスタマイズして頂けたら幸いです。