こんにちは、ちゃりおです。
golangのリモート開発環境の作り方です。
EC2にgolangを入れて、VSCodeから繋ぎます。
事前準備
- AWSアカウント
- awscli
- VSCode
EC2の準備
golangの開発環境用のEC2を準備していきます。
既存のキーペアを使う場合は、以下のコマンドでキーペア一覧を取得できます。
aws ec2 describe-key-pairs --query "KeyPairs[].KeyName"
[
"hogekey",
"fugakey",
"hoge2key",
"fuga2key"
]
取得したキーペアをセットして、EC2を起動します。
$ KEY="" #キーペア名
$ aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \ # amazonlinux2
--instance-type t3a.nano \
--key-name $KEY
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=golang}]'
SSHするためにセキュリティグループに自分のグローバルIPアドレスを追加します。
#セキュリティグループID取得
$ aws ec2 describe-instances --filter "Name=tag:Name,Values=golang" \
--query "Reservations[].Instances[].SecurityGroups[]"
SGID="" #セキュリティグループID
aws ec2 authorize-security-group-ingress \
--group-id $SGID \
--protocol tcp --port 22 --cidr <自分のグローバルIP>
SSHするために、EC2のグローバルIPを取得します。
$ aws ec2 describe-instances --filter "Name=tag:Name,Values=golang" \
--query "Reservations[].Instances[]..PublicIpAddress"
SSHできることを確認します。
ssh -i <キーペアの秘密鍵> ec2-user@<グローバルIP>
golangのインストール
amazon-linux-extrasでもインストール出来ますが、バージョンが古いことがあるのでwgetでインストーラーを取ってきます。
ほぼ公式の手順と同様です。
$ wget https://golang.org/dl/go1.16.2.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.16.2.linux-amd64.tar.gz
パスを追加して、バージョン確認できたら完了です。
$ sudo vi /etc/profile
# 末尾に以下を追記
PATH=$PATH:/usr/local/go/bin
$ source /etc/profile
$ go version
go version go1.16.2 linux/amd64
EC2にVSCode「Remote-SSH」で接続する
VSCodeからEC2に繋ぐために、ssh configを設定しておく必要があります。
vi ~/.ssh/config
Host golang
Hostname <グローバルIP>
User ec2-user
Port 22
IdentityFile <キーペアの鍵>
VSCodeを開いて、「Remote SSH」の拡張機能をインストールします。
画面左側から「Remote SSH」を選んでssh configで設定したターゲットを選択します。
こんな感じに、EC2側のフォルダーが見えるので適当に選択します。
「hello.go」という名前でファイルを作成して、以下を貼り付けて保存します。
package main
import "fmt"
func main() {
fmt.Printf("Hello world\n")
}
「Hello world」が出力できたら完了です。
[ec2-user@ip-172-XX-XX-XX ~]$ go run hello.go
Hello world
まとめ
EC2にgolangの開発環境を構築する方法でした。
EC2の構築にをcliで使いましたが、使いまわしたり作成・削除を繰り返すようであればCDKにするのも良いかもしれません。
golangの勉強やっていこうと思います。
JAWS DAYS2021登壇レポート 1年間運用して分かったCDKアンチパターンJAWS DAYS2021で「1年間運用して分かったCDKアンチパターン」というタイトルで登壇させていただきました。
発表内容と登壇レポ...
EC2 AmazonLinux2でyumが失敗するときに疑うこと 3つの解決策こんにちは、ちゃりおです。
適当にEC2作成したら、yumでエラーがでて焦りました。
(よくよく考えたら「それはそうだよな」と思いまし...
AWS SSMセッションマネージャTips AWS CLIこんにちは、ちゃりおです。
SSMセッションマネージャを使えば、EC2インスタンスにSSH不要で入れます。
マネジメントコンソールから...