🅰️

【AWS】Cloud9環境構築を丁寧に解説

2024/05/23に公開

はじめに

プログラミング初学者向けに、AWSのcloud9を用いて環境開発構築の手順をまとめている。
AWSのアーキテクチャの図を用いながら丁寧に解説を行っている。
【今回完成目標とするAWS Architecture】

1.AWS Management Consoleにログイン

https://aws.amazon.com/jp/console/ にアクセスし、コンソールにサインインする。

2.VPCの作成

2-1.VPC作成の準備

コンソールの上部メニューから「サービス」を選択し、「VPC」と検索し、VPCサービスをクリックする。

2-2.VPC作成

VPCダッシュボードから「VPCを作成」ボタンをクリックし、「VPCの作成」ページで以下の情報を入力し、「VPCを作成」をクリックしてVPCを作成します。

項目 内容
名前タグ my-vpc-01(任意の名前)
IPv4 CIDRブロック 10.0.0.0/16
IPv6 CIDRブロック 「Pv6 CIDR ブロックなし」または「AmazonのIPv6 CIDRブロック」を選択
テナンシー デフォルト
実際の画面

【ここまでのAWS Architecture】

3.サブネットの作成

3-1.サブネットを作成の準備

VPCダッシュボードの「サブネット」メニューから「サブネットの作成」をクリックし、以下の情報を入力します:

項目 内容
VPC 先ほど作成したVPC(my-vpc-01)を選択
実際の画面

3-2.1つ目のサブネットの作成

サブネット1の設定で以下の情報を入力し、「新しいサブネットを追加」をクリックします。

項目 内容
サブネット名 my-public-subnet1(任意)
アベイラビリティゾーン(AZ) 「アジアパシフィック(東京)/ap-northeast-1a」を選択
IPv4 CIDRブロック 10.0.1.0/24

3-3.2つ目のサブネットの作成

サブネット2の設定で以下の情報を入力し、「サブネットを追加」をクリックする。

項目 内容
サブネット名 my-public-subnet2(任意)
アベイラビリティゾーン(AZ) 「アジアパシフィック(東京)/ap-northeast-1c」を選択
IPv4 CIDRブロック 10.0.2.0/24

3-4.3つ目のサブネットの作成

サブネット3の設定で以下の情報を入力し、「サブネットを追加」をクリックする。

項目 内容
サブネット名 my-private-subnet3(任意)
アベイラビリティゾーン(AZ) 「アジアパシフィック(東京)/ap-northeast-1a」を選択
IPv4 CIDRブロック 10.0.3.0/24

3-5.4つ目のサブネットの作成

サブネット4の設定で以下の情報を入力し、「サブネットを作成」をクリックする。

項目 内容
サブネット名 my-private-subnet4(任意)
アベイラビリティゾーン(AZ) 「アジアパシフィック(東京)/ap-northeast-1c」を選択
IPv4 CIDRブロック 10.0.4.0/24
実際の画面

【ここまでのAWS Architecture】

4.インターネットゲートウェイの作成とアタッチ

4-1.インターネットゲートウェイの作成

VPCダッシュボードの「インターネットゲートウェイ」メニューから「インターネットゲートウェイの作成」をクリックし以下情報を入力し、「インターネットゲートウェイを作成」をクリックします。

項目 内容
名前タグ my-internet-gateway(任意)
実際の画面

4-2.インターネットゲートウェイのアタッチ

作成したインターネットゲートウェイを選択し、「アクション」ボタンをクリックして「VPCにアタッチ」を選択し、さらに先ほど作成したVPCを選択し、「インターネットゲートウェイのアタッチ」をクリックする。

実際の画面

【ここまでのAWS Architecture】

5.ルートテーブルの作成と設定

5-1.ルートテーブルの作成準備

VPCダッシュボードの「ルートテーブル」メニューを押す。VPC作成時に、自動的に1つのルートテーブルが作成されていることを確認する。確認後、「ルートテーブルの作成」をクリック。

5-2.1つ目(public用)のルートテーブルの作成

ルートテーブルを作成画面にて、以下の情報を入力し、「ルートテーブルを作成」をクリックする。

項目 内容
名前タグ my-public-routetable(任意)
VPC my-vpc-01
実際の画面

5-3.2つ目(private用)のルートテーブルの作成

VPC作成時に、自動的に作成されたルートテーブルの名前を編集する。

項目 内容
名前タグ my-private-routetable(任意)
実際の画面

5-4.1つ目(public用)ルートテーブルを編集する

作成したルートテーブルを選択し、「ルート」タブをクリックし、「ルートの編集」をクリックし、ルートを編集画面に遷移する。更に「ルートを追加」をクリックし、以下の情報を入力完了後、「変更を保存」をクリックする。

項目 内容
送信先 0.0.0.0/0(デフォルトゲートウェイ)
ターゲット 作成したインターネットゲートウェイ(my-internet-gateway)
実際の画面

【ここまでのAWS Architecture】

6.サブネットの関連付け

6-1.サブネットを関連付けの準備(public)

VPCダッシュボードのルートテーブルから作成したルートテーブル(my-public-routetable)を選択し、「サブネットの関連付け」タブをクリックし、「サブネットの関連付けを編集」をクリックする。

実際の画面

6-2.サブネットの関連付けを編集(public)

サブネット関連付け編集画面にて、my-public-routetableと関連付けたいルートテーブルを選択し、「関連付けを保存」をクリックする。

実際の画面

6-3.サブネットの関連付けの準備(private)

VPCダッシュボードのルートテーブルから作成したルートテーブル(my-private-routetable)を選択し、「サブネットの関連付け」タブをクリックし、「サブネットの関連付けを編集」をクリックする。

実際の画面

6-2.サブネットの関連付けを編集(private)

サブネット関連付け編集画面にて、my-private-routetableと関連付けたいルートテーブルを選択し、「関連付けを保存」をクリックする。

実際の画面

【ここまでのAWS Architecture】

7.セキュリティグループの作成

7-1.セキュリティグループの作成の準備

セキュリティグループは、インスタンスレベルでネットワークアクセスを制御する仮想ファイアウォールである。EC2ダッシュボードの「セキュリティグループ」メニューから「セキュリティグループの作成」をクリックします。

実際の画面

7-2.セキュリティグループの作成

セキュリティグループを作成画面にて、以下の情報を入力し、インバウンドルールとアウトバウンドルールを設定する。完了後、「セキュリティグループを作成」をクリックする。

【基本的な詳細】

項目 内容
セキュリティグループ名 my-security-group1(任意)
説明 my-vpc-01
VPC 作成したVPC(my-vpc-01)

【インバウンドルール①】

項目 内容
タイプ SSH
プロトコル TCP
ポート範囲 22
ソース Anywhere-IPv4(0.0.0.0/0)

【インバウンドルール②】

項目 内容
タイプ HTTP
プロトコル TCP
ポート範囲 80
ソース Anywhere-IPv4(0.0.0.0/0)

【インバウンドルール③】

項目 内容
タイプ HTTP
プロトコル TCP
ポート範囲 80
ソース Anywhere-IPv6(::/0)

【アウトバウンドルール】

項目 内容
タイプ すべてのトラフィック
プロトコル すべて
ポート範囲 すべて
送信先 任意のIPレンジ(0.0.0.0/0)

すべてのソースからのTCP 80(HTTP)と、TCP 22(SSH)の接続を許可する設定としている。

8.Cloud9環境の作成とEC2インスタンスの作成

8-1.Cloud9環境とEC2インスタンスの作成準備

コンソールの上部メニューから「サービス」横の検索ボックスから、「cloud9」と入力し、表示されたcloud9サービスをクリックする。Cloud9ダッシュボードから「環境を作成」ボタンをクリックします。

8-2.インスタンスの起動を行う

EC2ダッシュボードから「インスタンスを起動」ボタンをクリックし、以下の設定項目の入力を行う。入力が完了したら、「インスタンス起動」ボタンをクリックする。(ネットワーク設定は「編集」ボタンをクリックする)

項目 内容
名前 My cloud9
説明・オプション 任意
環境タイプ 新しいEC2インスタンスを選択
インスタンスタイプ t2.micro
プラットフォーム Amazon Linux 2
タイムアウト 30分
ネットワーク設定(接続) セキュアシェル(SSH)
VPC設定 作成したVPC(my-vpc-01)
サブネット 作成したパブリックサブネット(my-public-subnet1)
実際の画面

9-3.Cloud9を開く

下記画面が表示されれば環境構築完了

【完成したAWS Architecture】

(おまけ)オリジナルでEC2インスタンスの作成する方法

インスタンス作成の準備

コンソールの上部メニューから「サービス」横の検索ボックスから、「EC2」と入力し、表示されたEC2サービスをクリックする。

インスタンスの起動を行う

EC2ダッシュボードから「インスタンスを起動」ボタンをクリックし、以下の設定項目の入力を行う。入力が完了したら、「インスタンス起動」ボタンをクリックする。(ネットワーク設定は「編集」ボタンをクリックする)

項目 内容
名前 My web server1(任意)
Amazon マシンイメージ Amazon Linux 2 AMI(HVM)
インスタンスタイプ t2.micro
キーペア 新しいキーペアの作成ボタンをクリック
キーペア名 my-key-pair(任意)
キーペア ED25519
プライベートキーファイル形式 .pem
VPC 作成したVPC(my-vpc-01)
サブネット 作成したサブネット(my-public-subnet1)
パブリックIPの自動割り当て 有効化
ファイアウォール (セキュリティグループ) 既存のセキュリティグループを選択する
共通のセキュリティグループ 作成したセキュリティグループ(my-security-group)
高度な詳細のIAMインスタンスプロフィール 作成したIAM(my-IAM1)
実際の画面

キーペアのタイプ

・AWSでは主に2つのキーペアのタイプ(RSAとED25519)が選べる。
RSA:
互換性: 最も広くサポートされている鍵の種類です。多くのSSHクライアント、サーバー、及びツールでサポートされています。
セキュリティ: 安全性が高く、2048ビット以上の鍵サイズを使用することが推奨されます。
選択時の理由: 互換性が重要な場合や、多様なツールと組み合わせて使う場合に最適です。

ED25519:
互換性: 比較的新しい鍵の種類ですが、近年多くのシステムでサポートが拡がっています。ただし、古いシステムやツールではサポートされていない場合があります。
セキュリティ: 非常に強力なセキュリティを提供し、より短い鍵長で高い安全性を提供します。
選択時の理由: 最新のセキュリティプロトコルを利用したい場合や、新しいシステムを使用している場合に最適です。

プライベートキーファイル形式

キーファイル形式は、使用するSSHクライアントに依存する。
.pem (OpenSSHで使用する場合):
互換性: OpenSSH(Linux、macOS、Unixなど)の標準フォーマット。多くのサーバー管理ツールやSSHクライアントでサポートされている。
選択時の理由: LinuxやmacOSの環境で作業する場合、またはOpenSSHクライアントを使用する場合に最適。

.ppk (PuTTYで使用する場合):
互換性: Windows環境で広く使用されているPuTTYの専用フォーマット。PuTTYgenを使用して.pemファイルを.ppk形式に変換することもできる。
選択時の理由: Windows環境でPuTTYを使用する場合に最適。

キーペアとキーファイル形式の選定ポイント

具体的な選択例
LinuxまたはmacOSを使用している場合:
キーペアのタイプ: RSA または ED25519(互換性重視ならRSA、セキュリティ重視ならED25519)
プライベートキーファイル形式: .pem

Windowsを使用している場合:
キーペアのタイプ: RSA(PuTTYがRSAをサポートしているため)
プライベートキーファイル形式: .ppk(PuTTYを使用する場合)
マルチプラットフォーム環境(WindowsとLinux/macOSの両方)を使用する場合:
キーペアのタイプ: RSA(幅広い互換性のため)
プライベートキーファイル形式: 両方(.pemを基本として、必要に応じてPuTTYgenで.ppkに変換)

Discussion