【初心者向け】AWS Cloud9上でGo言語をセットアップするための詳細な手順


## はじめに
今回は、初めてCloud9を使用してGolangを触りたいという人向けに作成した記事になります。

:::note warn
<font color="Red"><strong>注意点</strong></font>
こちらの記事には一部<b>金銭が発生する可能性のある</b>サービスを使用しております。
今回の記事の内容のみであればAWSの無料枠内で収まりますが、他のサービスを知らずに使用していると金銭が発生する可能性があります。
もし絶対にお金をかけたくないという方は本記事を読むのをやめることをおすすめいたします。
:::


| 目次 |
|:-------------|
| [1. AWSのアカウント作成](#1-awsのアカウント作成) |
| [2. Cloud9の環境構築](#2-cloud9を使用してコードを記述できる環境の作成する) |
| [3. GolangをCloud9で使用できる様にする](#3-golangをcloud9で使用できる様にする) |

この3部構成で記事は作成されております。


## 1. AWSのアカウント作成
まず初めにCloud9を使用するためには、**Amazonが提供しているAWSのアカウントを作成する必要**があります。
これから、AWSアカウントの作成していきます。(※AWSアカウントを作成する際にクレジットカード情報が必要になります)

#### 1. AWSの新規登録ページでEメールアドレス認証のための情報を入力する
下記リンクから新規登録のページに遷移をして<b> *Eメールアドレス・AWSアカウント名* </b>を入力して、アカウントの作成を行なっていってください

[<b>AWS新規登録ページ</b>](https://portal.aws.amazon.com/billing/signup?refid=cfdac9b9-a7c8-4bf1-98a7-bf288f1b8188&redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation&language=ja_jp#/start/email)

![スクリーンショット 2022-08-29 14.24.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/78ad7c9d-d86c-a39a-99dc-2bc29cf422ba.png)

赤で囲まれている部分に情報の入力をしてください
入力後、Eメールアドレス認証ボタンを押下してください

#### 2. 確認コードの入力
<!--　画像は一枚目と二枚目逆にする方がわかりやすいのではないのだろうか？？ -->
Eメールアドレス認証ボタンを押下後<strong> AWSから下記画像の形式のメール</strong>が送信されます。そこに記述されている検証コード6桁をコピーしてAWSの確認コードの部分に貼り付けてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/ba653382-e31e-0fdb-3554-7222870057c6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/126bb42f-3bcb-217f-8ad8-a8b0f751bb52.png)

認証コードを打って認証成功するとAWSの個人情報入力ページに遷移をします。
ステップは5つありページ内容に沿って情報を入力してください

#### 3. 新規登録に必要な情報の入力

<details><summary>ステップは5つありページに沿って情報を入力してください（クリックすると入力項目を確認できます）</summary>

##### ステップ1
ログインに必要なパスワードの設定（入力項目）
- rootユーザーパスワード
- rootユーザーパスワードの確認

##### ステップ2
連絡先情報の入力
<strong> AWSはどのように使用されますか？ </strong>こちらは、<strong>個人</strong>を選択してください
- フルネーム
- 電話番号
- 国または地域コード
- 住所(ローマ字入力)
- 市区町村(ローマ字入力)
- 州/都道府県または地域(ローマ字入力)
- 郵便番号

##### ステップ3
<!-- Cloud9の1ヶ月使用した場合の金額を記述するべき・クレジット以外の支払い方法も記述するようにした -->
請求情報の入力(クレジット)
- クレジットカードまたはデビットカード番号
- 有効期限日
- カード保有者の氏名
- 請求先住所

##### ステップ4
本人確認（電話番号を使用）
- 検証コードの受け取り方法
    - テキストメッセージ（SMS）→メッセージでのコードの確認
    - 音声通話→通話でのコードの確認
- 国または地域コード
- 携帯電話番号
- セキュリティチェック

##### ステップ5
本人確認(電話番号宛に届いたコードを入力)
- コード検証

</details>

上記5ステップを入力が終了すると<strong> サポートプラン </strong>を選択するページに遷移します。
こちらはベーシックサポート(無料)を選択してください。
サポートプランの選択が終了するとAWSのアカウントの作成は終了です！

#### 4. 作成したアカウント情報でログインをする
下記リンクからTOPページに遷移をしてから**コンソールにログイン**を選択してください

https://aws.amazon.com/jp/console/

![スクリーンショット 2022-08-30 17.45.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/4598ece3-a3fc-5a90-e6ff-62de2aad4774.png)

ログインページでルートユーザーとIAMユーザーの選択がありますが、<strong> ルートユーザー </strong>を選択してください。
![スクリーンショット 2022-08-30 17.50.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/481ebd92-aa97-6b53-f251-97c16a6b67c4.png)

上記の入力が終了後、下記画像のページに遷移しますので、そこでパスワードの入力をしてAWSにログインをしてください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/c551230c-399e-b7c0-2e9f-dd3be5e0e8f6.png)


## 2. Cloud9を使用してコードを記述できる環境の作成する
<b>1.</b> でアカウントを作成してAWSにログインまでの手順を説明してきました。
次は、ログインしてからCloud9を作成してコーディングをできるようにすることを<b>2.</b>でのゴールにします。

### **地域** の設定
Topページで **地域** を設定します。
地域の設定は、画面の右上の赤く囲んでいる部分をクリックすると地域の一覧が表示されます。
今回は、 **アジアパシフィック(東京)** を選択してください。

![スクリーンショット 2022-08-31 17.17.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/183159e1-a80f-29df-0366-383fbc92e92b.png)

**アジアパシフィック(東京)** を選択
<img width="200" alt="スクリーンショット 2022-08-29 14.38.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/c6370546-6d6a-a8c9-1c23-c4effbe15391.png">

赤く囲まれている部分が **東京** になっていれば地域の設定は成功です。
![スクリーンショット 2022-08-31 17.23.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/e642d06f-1864-84e3-1b8d-a250a1f41116.png)

### Cloud9を作成する
次は、Cloud9のサービスを使用して実際にコードが書けるのをゴールとします。

赤で囲んでいる入力タグの部分で **Cloud9** と入力すると右下の検索結果が出てきますので、サービスの **Cloud9** を選択してください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/3c3e8d01-8924-f36c-8113-535fa129c4e3.png)

Cloud9のサービスを選択するとTopページに遷移をします。Topページに遷移をすると**Create enviroment**(環境作成)を押下してください。


![cloud9-toppage](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/b31afd8a-1a61-33be-6a0e-70bd51f86781.png)

**Create enviroment**を選択をするとコードを編集する環境の名前とその環境がどの用途で使用されるかのDescriptionを記述する部分があります。

Nameは必須項目ですので、必ず名前をつける様にしてください。(Descriptionは任意ですので、記述の必要はございません)
Nameの記述が終了いたしましたら、Next stepを押下して次のページに移動してください

![スクリーンショット 2022-09-15 22.29.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/7fce4a9c-70c2-bc15-7b44-827772c2fa9a.png)

次にコードを編集する環境の設定をしていきます。
**Platform**の部分以外は初期設定のままで問題ございません。
**Platform**の部分は**Ubunts Server18.04LTS**を選択する様にしてください

これらの設定が終了すると**Next step**ボタンを押下して次のページに移動してください

![スクリーンショット 2022-09-15 22.34.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/85e5117d-e320-22b5-9990-0aabc3957ed0.png)

最後に環境の設定の内容確認画面が表示されます。
Nameの部分以外が下記画像と一緒であれば問題なく環境の設定が完了しているので最後に**Create environment**を押下して**Cloud9**の作成を行なってください

![スクリーンショット 2022-09-15 22.43.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/b2eadb60-277a-fbb1-825b-8360d518df41.png)

ボタン押下後ローディングがそのローディングが終了すると下記画像の画面が表示されます。
こちらが問題なく表示された場合はこれでCloud9の環境作成が完了です！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1020633/3adec065-fbd9-0a54-2959-352306f36bf0.png)

次は、作成したCloud9の環境でGo言語を扱えるようにしていきます。


## 3. Go言語の環境構築

次に、Cloud9上Go言語を使用できるように環境の構築を行なっていきます。

<strong>参考URL</strong>

https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/sample-go.html#sample-go-install

### 1. Goがインストール済みかの確認をする。

まずは、Cloud9上にGoがインストールされているかのチェックをする必要があります。
確認方法はターミナルを開きそのターミナル上で `go version` と入力をしてEnterを押して確認する方法です。
<!-- ターミナルを開くまでの画像での説明を入れる -->
```terminal
go version
```

:::note info
<b>Goインストール済み</b>
GoのVersion番号が表示されます。
:::

:::note alert
<b>Go未インストール</b>
エラーメッセージが出力されます。

**※Goインストールされていない場合は、下記リンクに沿ってGoのインストールを行なってください。**
[<b>Goのインストール方法</b>](#goのインストール方法goがインストールされていない場合)
:::

### 2. コードを追加する(Goがインストール済み)
作業スペースで以下の内容のファイル作成、`main.go`という名前で保存する。
<!-- ファイル作成までの画像での説明を入れる -->
```go:main.go
package main

import (
  "fmt"
)

func main() {
  fmt.Printf("Hello, World!！\n")
}
```

### 3. コードを実行する
次のステップは、<strong>2.</strong>で追加したファイルをターミナル上で実行していきましょう！！

ターミナル上で下記コマンド実行してください。
`go run main.go`
ターミナル上に下記と同じ結果が出力されれば成功です。
<strong>出力結果：</strong>
`Hello World!!`

これでGo言語を使用できることを確認できました！！

### Goのインストール方法(Goがインストールされていない場合)
1 `sudo apt update` で最新のセキュリティ更新プログラム及びバグ修正がインストールされていることは確認する。

2 Goをインストールするには、以下のコマンドを1行づつ実行してください
```terminal:ターミナル
wget https://storage.googleapis.com/golang/go1.9.3.linux-amd64.tar.gz # Download the Go installer.
sudo tar -C /usr/local -xzf ./go1.9.3.linux-amd64.tar.gz              # Install Go.
rm ./go1.9.3.linux-amd64.tar.gz                                       # Delete the installer.
```

3 Goバイナリのパスを `PATH` 環境変数に追加します。次のようになります。
a. 編集のため、シェルプロファイルのファイル(たとえば `~/.bashrc`)を開く
b. 次のコード行の末尾に、次の様に入力する。
```terminal:.bashrc
PATH=$PATH:/usr/local/go/bin
```
c. ファイルを保存する

4 `~/.bashrc` ファイルをソース化して、ターミナルが今参照したGoバイナリを見つけられる様にします。
```terminal:ターミナル
. ~/.bashrc
```

これでGoのインストールが終了しましたので、下記リンクでコードを書いてください

[<b>コードを追加する</b>](#2-コードを追加するgoがインストール済み)


## 終わりに

これで**Cloud9**上で**Go言語**を扱える状態になりました。
これからGo言語を一緒に勉強できることを楽しみにしております。