LoginSignup
2
1

More than 1 year has passed since last update.

[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。②EC2作成~SSH接続まで

Last updated at Posted at 2022-01-06

前回の記事

本記事の趣旨及びVPCの作成を解説しています。
[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。①VPC作成まで

2. EC2作成

EC2(Amazon Elastic Compute Cloud)は、コンピューティングキャパシティを提供するサービス、つまりサーバーに必要なもの一式をレンタルできるサービスです。

EC2の学習にあたっては、公式ドキュメントやサービス別資料(ブラックベルト)なども参考にしてみて下さい。

Amazon EC2とは
AWSサービス別資料

EC2は簡潔に言うと、空っぽのサーバーです。
そのため、RDSを使わずにEC2をデータベースとして利用するケースなど、利用方法は多岐に渡ります。
しかし利用方法がたくさんあっても、マネジメントコンソールでの作成方法は基本的に同一です。
パパパッと作っちゃいましょう!

それではEC2を配置するサブネットから作成します。

2-1 パブリックサブネットの作成

EC2を配置するサブネットは、用途に応じてパブリックサブネットプライベートサブネットのどちらかを利用します。

簡潔な説明となりますが、

名称 内容
パブリックサブネット インターネットに繋がる(公開する)サブネット。オンプレミスでのDMZのようなもの。
プライベートサブネット インターネットに繋がらない(非公開の)サブネット。オンプレミスでの社内LANのようなもの。

「プライベートサブネットに配置したEC2をELBを通じてインターネットに~」とかまぁ色々シチュエーションはあるのですが、今回はEC2をパブリックサブネット内に配置するので、パブリックサブネットを2つ作成しましょう。
実を言うと、今回のシンプルな構成図ではパブリックサブネットは1つで充分なのですが、練習として2つ作成してみます。

pub作成.png

VPCの画面から「サブネット」を選択します。「サブネットを作成」をクリックして下さい。

pubvpc.png

「どのVPCの中にサブネットを作りますか?」と聞かれているので、作成したVPCを選択します。

pub1a.png

ここからサブネットを作成します。まずは一つ目です。

・サブネット名
分かり易い名前を付けて下さい。
例:pub(パブリックアドレスの略称)-1a(選択するAZ)-プロジェクト名-作成年月

・アベイラビリティーゾーン
サブネットはどのアベイラビリティーゾーン(AZ)に作成するかを指定します。
東京リージョンで作成しているので、ap-northeast-1という名称のAZから選択します。

若干の蛇足ですが、各地域のリージョン名が気になる場合、こちらの記事が参考になりました。
awscliでAWSリージョンとAZの一覧を取得する

東京リージョンでは、1a,1b,1dの3種類のAZを選択することができます。
どのAZを選択しても構わないと言えば構わないのですが、ここでは順当に1aを選択します。

1bは古いアカウントでしか利用できません。一部のサービスが利用できないなど、制限のあるAZだったようです。代わりに近年登場したのが1dと言えます。

・IPv4 CIDRブロック
やることはVPCのCIDRブロックと同じです。VPCよりも小さなサブネットにします。
例:10.0.0.0/24

・キー
謎の安心感。
これまで通り「Name」キーで、値は名前と同じものにします。

1つ目のパブリックサブネットの入力はこれで完了です!
一緒に2つ目も作成してしまいましょう。
「新しいサブネットを追加」をクリックして下さい。

pub1c.png

・サブネット名
命名規則は1つ目と同じですが、1つ目と見分けがつくようにして下さい。

・アベイラビリティーゾーン
1つ目とは違うAZを指定します。AZの分散(マルチAZ構成)は、可用性を得るための基本です。

詳しくはこちらなどを参考にしてみて下さい。
AWSにおける可用性の基本

・IPv4 CIDRブロック
微妙に、1つ目と、違う……?
CIDRの範囲は1つ目と同じにして下さい。ただし、CIDRの範囲は同じでも、サブネットは別々のものなので区別を付ける必要があります。
1つ目のサブネットが10.0.0.0/24なら、
2つ目は10.0.1.0/24となります。

・キー
これまで通り、Nameキーで名前と同じ値にして下さい

2つ目のパブリックサブネットの入力もこれで完了です!
間違いがないか2つとも確認したら、「サブネットを作成」をクリックしましょう!

これでパブリックサブネットが完成しました!
とはいかないんです残念なことに。
サブネットは全てプライベートサブネットとして作成されます。
「pub~」という名前でサブネットを作成したとしてもです。
新手の嫌がらせ……?

そこで思い出して欲しいのが、前回の記事の"メインルートテーブル"の話です。
そこでは「自動的にメインルートテーブルがくっつくからサブネットを作った瞬間にインターネットと云々かんぬん」とかなんとか言っていましたね。

逆に言えば、プライベートサブネットをパブリックサブネットに変えるには、ルートテーブルと関連付ければよいのです。
早速やってみましょう。

pubrt.png

VPCの画面から、ルートテーブルを選択します。
作成したカスタムルートテーブルを選択して下さい。
「サブネットの関連付け」を選択したら、「サブネットの関連付けを編集」をクリックします(2箇所ありますが、どちらでも同じです)。

ここからはgithubから引っ張ってます。画像の容量制限がオーバーしました。後悔はしていない。

「利用可能なサブネット」から作成した2つのパブリックサブネットにチェックを入れます(1つでも構いません)。
チェックを入れたら、あとは「関連付けを保存」をクリックするだけです。

プライベートサブネットのパブリックサブネット化が完了しました!
EC2作成の前準備もこれで完了です!

次はEC2そのものを作成します。

2021年11月から、IPv6のみのサブネットとEC2インスタンスが作成可能になったようです。Nitro Systemでの構築が前提なので、一長一短と言った感じでしょうか。

Amazon Virtual Private Cloud (VPC) のお客様は、IPv6 のみのサブネットと EC2 インスタンスの作成が可能に
Nitro System 上に構築されたインスタンス
Introducing IPv6-only subnets and EC2 instances

2-2 EC2の作成

EC2の作成にはAMI(Amazon マシンイメージ)を用います。
"IAM"のアナグラムですが、たまたまだと思います。

AMIは仮想サーバーのイメージのことです。
既存のテンプレートから容易にサーバーを作成することができるようになります。
今回はAWSが用意しているAMIを利用しましょう。

参考
Amazon マシンイメージ (AMI)

AMIは自作したり、自作したものを公開することができます。 サードパーティーのAMIを利用する際は、公式で保証されていないという点に注意してください。

というわけで、作り始めましょう!
EC2の画面から「インスタンス」を選択します。

EC2作成.png

「インスタンスを起動」をクリックします。そこからAMIを用いてインスタンスを作成することができます。ここの日本語、ちょっと分かりにくいですね。

2-2-1 AMIの選択

AMI

「無料利用枠のみ」にチェックを入れておくと、文字通り無料利用枠のみ選択候補に上がります。
無料利用枠の対象なら、AMIはお好きなものを選んで構いません。
この記事では、無難にAmazon Linux 2を選択して先に進めます。
ビットの項目ですが、x86(intel入ってる)のままにします。

x86とArmの違いについて気になる方は、こちらの記事などを参考にしてみて下さい。

AMIを選んだら、「選択」をクリックします。

2-2-2 インスタンスタイプの選択

インスタンスタイプの選択

選択の余地がないから迷わない!!!
t2.microにさっさとチェックを入れたら、「次のステップ:インスタンスの詳細の設定」をクリックします。

ちなみに「t2.micro」とは、「"バースト可能なパフォーマンスインスタンス"の第2世代のマイクロサイズ」のことです。要は最低限の機能です。
実際にEC2を運用する際は、インスタンスタイプについて別途考慮する必要があると思います。

インスタンスタイプの概要については、こちらのページが分かり易いと思います。
【初心者】 EC2のインスタンスタイプが多すぎて、どれを選べばいいか分からない問題に立ち向かう

2-2-3 インスタンスタイプの設定

インスタンスの詳細の設定

・ネットワーク:作成したVPCを選択します。

・サブネット:作成したパブリックサブネットを選択します。AZが異なるパブリックサブネットを2つ作成しましたが、どちらを選択しても構いません。EC2をプライベートサブネットに配置する場合は、プライベートサブネットを選択して下さい。

・自動割り当てパブリックIP:有効を選択します。
そもそも自動割り当てパブリックIPってなに? という方は、'Elastic IP'との違いを押さえておくと良いかもしれません。

名称 内容
自動割り当てパブリックIP インスタンスの起動時に自動で割り当てられるIPアドレス。動的(毎回アドレスが変わる)。無料。
Elastic IP アカウントに割り当てられた、静的(アドレスが変わらない)IPv4アドレス。1アカウント最大5つまで取得できる(IPv4が限られた資源であるため)。有料。ただし、実行中のEC2インスタンスにアタッチしている間は無料。

無効にすると、
パブリックIPアドレスがない=インターネットと繋がらない
ということになるので、有効に設定します。

「サブネット設定を使用(無効)」の項目ですが、これはサブネットに設定した自動割り当てパブリックIPを用いる場合に選択します。現在はサブネットにパブリックIPを設定していないので、「(無効)」となっていますが、サブネット側の設定を行っている場合は、「サブネット設定を使用(有効)」と表示されます。こちらの設定でEC2を作成しても問題ありません。

本記事ではやり方は飛ばしましたが、こちらの記事で「サブネットの自動割り当てIP」の設定方法を解説されているので、参考までに。
サブネットの自動割り当て IP 設定 - EC2 VPC

「サブネット設定を使用(無効)」を選択してEC2を作成した後、サブネットに自動割り当てIPの設定をしても、EC2には設定が反映されず、サブネットの割り当てが行われません。 サブネットの自動割り当てIPを用いてEC2を作成する際は、EC2の作成よりも先にサブネット側の設定を行う必要があります。 一言で言うと、「サブネット設定を使用(有効)」の状態のみ選択してOKなわけです。

残りの項目は、今回手を加えません。
「次のステップ:ストレージの追加」をクリックしましょう。

2-2-4 ストレージの追加

ストレージの追加

特に手を加えることはありません。「次のステップ:タグの追加」をクリックしてぱぱっと次に行きましょう。

補足を入れておくと、
ここで言う"ストレージ"とはEBSのことです。
ここでは、EBSの設定をやっとるわけです。

EFSと一緒に覚えると理解が捗ると思います。こちらの記事などを参考にしてみて下さい。
AWS のストレージサービス EBS と EFS の違い

なんでEBSを使うの? という理由ですが、
こちらの記事が参考になると思います(投げやり)。

'ルートボリューム'って、なんだか暗黙知になっていて解説しているリソースが少ない気がするんですよね。
要は、スナップショットやAMIを使用したEC2の起動に用いられるのが、ルートボリュームことEBSさんです。助かる。

ボリュームタイプに関しては、こちらの記事が簡潔にまとめられていると思います。
AWS】EBSのボリュームタイプ

2-2-5 タグの追加

タグの追加

タグの追加、というよりはEC2の名付けです。
キーはNameにします。
値はご自身で識別可能な名前を付けて下さい。
例:ec2-サブネットの種類-AZの場所-プロジェクト名-作成年月

あと少しです!

2-2-6 セキュリティグループの設定

セキュリティグループは、いわばホワイトリスト方式のファイアウォールです。パケットの情報を見て、通したり通さなかったりします。ここではその「通してもよいリスト」を設定します。

また、セキュリティグループはステートフルです。
「行きは通ってもいいよ~」と許可された通信は、自動で「戻りもどうぞ~」と許可されます。
ステートレスなサービスである「ネットワークACL」と合わせて確認してみて下さい。

参考
なぜネットワークACLでなくセキュリティグループで細かいトラフィック制御を行なうのか

AWSには、SQLインジェクションやXSSを防ぐ"AWS WAF"、 DDosを防ぐ"AWS Shield"というサービスも提供されています。

セキュリティグループは、個々のインスタンスそのものに適用されます。基本的に、インスタンスごとにセキュリティグループを作成していきます。

というわけで、やってみましょう!

sg

・セキュリティグループ名:セキュリティグループ名です。
ご自身で識別可能なものを入力して下さい。
例:securitygroup-ec2-プロジェクト名-作成年月

セキュリティグループ名の頭文字を「sg」にすることはできません。デフォルトセキュリティグループで使用されているからです。諦めてください。

・説明
セキュリティグループ名と同じで大丈夫です。

・セキュリティグループの設定
デフォルトでSSHが入っていると思います。SSH接続に必要なので、そっとしておきます。
ソースは0.0.0.0/0にすると全てのIPが許可されます。
ソースをマイIPに変更すると、ご自身の利用している端末のIPだけが許可されます。
どちらでも大丈夫です。
説明はfor sshなど、ぱっと見て分かるものを入れます。

画像では、試しにHTTPの許可の設定も行っています。HTTP通信は本記事では行いませんが、練習として追加などをしてみるのも良いかもしれません。

「確認と作成」をクリックします。
次のステップで最後です!

2-2-7 確認

間違ってねぇかなぁ~? 課金枠使ってねぇかなぁ~? と確認したら「起動」をクリックします。
やっと起動します!

キーペアの作成

起動しません。
その前にキーペアを作成がなんたらと聞かれます。
これはEC2の接続に用いるキーペアについて「既に持っているものを登録しますか? 新しいものを作りますか?」と問われています。既にキーペアを持っている方はそちらを選択して大丈夫です。
持っていない場合、AWSの方でキーペアを作成してくれるのでそちらを利用します。
ちゃちゃっと済ませちゃいましょう!

・「新しいキーペアの作成」を選択します。

・キーペアのタイプ:
RSA一択だったのが、2021年にED25519も選択可能になったようです。

参考
楕円曲線暗号の一種であるED25519のキーペアを作成できるようになりました

ただ、近年の登場なので情報がまだ出揃っていません。
RSAでも問題はないのでRSAを選択します。

・キーペア名:
キーペア名を決めます。この記事ではプロジェクト名-作成年月としています。

入力を終えたら「キーペアのダウンロード」をクリックします。キーペアのファイルがダウンロードされたかと思います。これを紛失するとEC2にアクセス不可能になるの注意してください。

ここまで済んだら「インスタンスの作成」をクリックします。

お疲れさまです! EC2がこれで完成しました!!!
とは言えAWS側での作成まで時間がかかるので、その間にEC2の接続の準備をしましょう。

EC2を停止させたい場合は「インスタンスの状態」から「インスタンスを停止」をクリックします。 「インスタンスを終了」をクリックすると、インスタンスが削除されてしまうので気をつけましょう。おそろしい。

3.EC2接続

結論

私が一番躓いたのが、EC2接続のやり方そのものです。
私はてっきり、EC2もマネジメントコンソールから接続できるものと思っていました。
だって、ねぇ、今までマネジメントコンソールをずっと使ってたじゃないですか。。。
初心者向けの記事を色々とみても「あとは接続するだけです!」とか「macからうんぬんかんぬん」。。。
エンジニアの世界ではwindowsがマイノリティになっとる……!

などと唸っていたところに降ってきたのが上記の記事。DevelopersIOさん助かる。。。

まぁそんな感じで、ここの項目で私が書くことはないです。記事の通りにテラタームを利用すれば、EC2に接続できると思います。

追記
学習コストはかかりますが、AWS CLIを利用するという手段もあります(そして自作の記事のリンクを張る)。
Windows環境でAWS CLIを使えるようにする手順+エラーケース。

それとセッションマネージャーを使えば、マネジメントコンソールからのEC2への接続も可能なようです。

次はRDSを作成します!

次の記事

[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。③RDS作成から接続まで

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1