前回の記事
本記事の趣旨及びVPCの作成を解説しています。
[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。①VPC作成まで
2. EC2作成
EC2(Amazon Elastic Compute Cloud)は、コンピューティングキャパシティを提供するサービス、つまりサーバーに必要なもの一式をレンタルできるサービスです。
EC2の学習にあたっては、公式ドキュメントやサービス別資料(ブラックベルト)なども参考にしてみて下さい。
EC2は簡潔に言うと、空っぽのサーバーです。
そのため、RDSを使わずにEC2をデータベースとして利用するケースなど、利用方法は多岐に渡ります。
しかし利用方法がたくさんあっても、マネジメントコンソールでの作成方法は基本的に同一です。
パパパッと作っちゃいましょう!
それではEC2を配置するサブネットから作成します。
2-1 パブリックサブネットの作成
EC2を配置するサブネットは、用途に応じてパブリックサブネットかプライベートサブネットのどちらかを利用します。
簡潔な説明となりますが、
名称 | 内容 |
---|---|
パブリックサブネット | インターネットに繋がる(公開する)サブネット。オンプレミスでのDMZのようなもの。 |
プライベートサブネット | インターネットに繋がらない(非公開の)サブネット。オンプレミスでの社内LANのようなもの。 |
「プライベートサブネットに配置したEC2をELBを通じてインターネットに~」とかまぁ色々シチュエーションはあるのですが、今回はEC2をパブリックサブネット内に配置するので、パブリックサブネットを2つ作成しましょう。
実を言うと、今回のシンプルな構成図ではパブリックサブネットは1つで充分なのですが、練習として2つ作成してみます。
VPCの画面から「サブネット」を選択します。「サブネットを作成」をクリックして下さい。
「どのVPCの中にサブネットを作りますか?」と聞かれているので、作成したVPCを選択します。
ここからサブネットを作成します。まずは一つ目です。
・サブネット名
分かり易い名前を付けて下さい。
例: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つ目も作成してしまいましょう。
「新しいサブネットを追加」をクリックして下さい。
・サブネット名
命名規則は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~」という名前でサブネットを作成したとしてもです。
新手の嫌がらせ……?
そこで思い出して欲しいのが、前回の記事の"メインルートテーブル"の話です。
そこでは「自動的にメインルートテーブルがくっつくからサブネットを作った瞬間にインターネットと云々かんぬん」とかなんとか言っていましたね。
逆に言えば、プライベートサブネットをパブリックサブネットに変えるには、ルートテーブルと関連付ければよいのです。
早速やってみましょう。
VPCの画面から、ルートテーブルを選択します。
作成したカスタムルートテーブルを選択して下さい。
「サブネットの関連付け」を選択したら、「サブネットの関連付けを編集」をクリックします(2箇所ありますが、どちらでも同じです)。
「利用可能なサブネット」から作成した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を利用しましょう。
AMIは自作したり、自作したものを公開することができます。
サードパーティーのAMIを利用する際は、公式で保証されていないという点に注意してください。
というわけで、作り始めましょう!
EC2の画面から「インスタンス」を選択します。
「インスタンスを起動」をクリックします。そこからAMIを用いてインスタンスを作成することができます。ここの日本語、ちょっと分かりにくいですね。
2-2-1 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」と合わせて確認してみて下さい。
AWSには、SQLインジェクションやXSSを防ぐ"AWS WAF"、
DDosを防ぐ"AWS Shield"というサービスも提供されています。
セキュリティグループは、個々のインスタンスそのものに適用されます。基本的に、インスタンスごとにセキュリティグループを作成していきます。
というわけで、やってみましょう!
・セキュリティグループ名:セキュリティグループ名です。
ご自身で識別可能なものを入力して下さい。
例: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も選択可能になったようです。
ただ、近年の登場なので情報がまだ出揃っていません。
RSAでも問題はないのでRSAを選択します。
・キーペア名:
キーペア名を決めます。この記事ではプロジェクト名-作成年月
としています。
入力を終えたら「キーペアのダウンロード」をクリックします。キーペアのファイルがダウンロードされたかと思います。これを紛失するとEC2にアクセス不可能になるの注意してください。
ここまで済んだら「インスタンスの作成」をクリックします。
お疲れさまです! EC2がこれで完成しました!!!
とは言えAWS側での作成まで時間がかかるので、その間にEC2の接続の準備をしましょう。
EC2を停止させたい場合は「インスタンスの状態」から「インスタンスを停止」をクリックします。
「インスタンスを終了」をクリックすると、インスタンスが削除されてしまうので気をつけましょう。おそろしい。
3.EC2接続
結論
私が一番躓いたのが、EC2接続のやり方そのものです。
私はてっきり、EC2もマネジメントコンソールから接続できるものと思っていました。
だって、ねぇ、今までマネジメントコンソールをずっと使ってたじゃないですか。。。
初心者向けの記事を色々とみても「あとは接続するだけです!」とか「macからうんぬんかんぬん」。。。
エンジニアの世界ではwindowsがマイノリティになっとる……!
などと唸っていたところに降ってきたのが上記の記事。DevelopersIOさん助かる。。。
まぁそんな感じで、ここの項目で私が書くことはないです。記事の通りにテラタームを利用すれば、EC2に接続できると思います。
追記
学習コストはかかりますが、AWS CLIを利用するという手段もあります(そして自作の記事のリンクを張る)。
Windows環境でAWS CLIを使えるようにする手順+エラーケース。
それとセッションマネージャーを使えば、マネジメントコンソールからのEC2への接続も可能なようです。
次はRDSを作成します!