LoginSignup
7
3

More than 5 years have passed since last update.

[初心者向け]Amazon Elastic Compute Cloud(EC2)インスタンスを起動し、VPCの設定からSSHで接続するまで[マネジメントコンソール編]

Last updated at Posted at 2018-08-28

初心者エンジニアや、AWS初めて触るよって方、あとがSAA受けたい!って方向けにEC2インスタンスの起動とVPCの設定について解説していきます。
何でたくさんあるような記事を書くのかって?自分の記事数を増やすためやっぱり記事はたくさんあるに越したことはないじゃないですか(?)

ちょっとした説明

EC2(Elastic Compute Cloud)はAWSのメインサービスの1つ。
LinuxやWindows、その他にRedHatなどを実行する'仮想サーバー'です。
インスタンスという単位で管理され、インスタンスにはt2.microとかc4.largeとか複数のインスタンスタイプが用意されています。
インスタンスタイプ毎にスペックや、料金設定など変わってきます。また、同タイプでもリージョンによって多少前後します。
また、インスタンスにはオンデマンドインスタンスや、スポットインスタンス、リザーブドインスタンスなどがありますが、基本使うのはオンデマンドインスタンスだと思います。私がそれしか使ってないだけかもしれませんが。今回、インスタンスというと全てオンデマンドインスタンスを指すものとして読んでください。
それぞれ簡単に説明すると、

インスタンス 説明
オンデマンドインスタンス インスタンスが動いてる時間で料金が発生
スポットインスタンス よくわかってない。価格が変動する。この料金で使いたい!って言った金額が、その時点での価格より上だったら使えるらしい。
リザーブドインスタンス 年間契約とか、長い期間使うことを前提に前払い、その分安い

とのこと。
EC2の主なユースケースとしては、Webサーバーやアプリケーションサーバーなど、仮想サーバーという通り'サーバー'として使われる事が多いですね。
私は基本サーバーレス開発が多いので、普段EC2を使う事自体は少ないです。
ですが、もちろんそれだけじゃ解決出来ないような状況もありますので、そのような時に使用しています。


東京リージョンで作ろうとしましたが、すでに動いているモノもあり間違ったら面倒くさいので今回は適当に選んだシンガポールリージョンを使って行きます。

マネジメントコンソールから作る

EC2インスタンスの作成

AWSマネジメントコンソールにログインし、[インスタンスの作成]をクリック
スクリーンショット 2018-08-26 21.02.23.png

AMIを選択します。今回は無料枠で作るので、Ubuntu Server 16.04LTS(ami-03221428e6676db69)を選択します。
AMIで設定するOS次第では、SSHでログインする時のユーザー名などが異なるので、今回Ubuntuで作るという事を覚えておきましょう。
スクリーンショット 2018-08-26 21.04.13.png

インスタンスタイプの設定です。こちらは無料枠がt2.microのみなので、そちらを選択します。
スクリーンショット 2018-08-26 21.09.35.png
「次の手順:インスタンスの詳細の設定」

インスタンスの詳細設定です。
VPCやIAMロール、起動時に実行する設定スクリプトなどを定義できます。
インスタンス数は、いくつ同時に起動するかです、今回は1つにしておきます。
スポットインスタンスは購入しません。
VPCはせっかくですので新しく作りましょう。「新しいVPCの作成」をクリック

VPCとサブネットの作成

先程のボタンを押すと、VPCのダッシュボードが表示されます。何も設定していないと、デフォルトVPCのみが表示されます。1リージョン毎に複数のVPCを設定できます。1つのVPCを複数リージョンにまたがって使用することは出来ませんが、ピアリングがサポートされているので、似たような事ならできます。
スクリーンショット 2018-08-26 21.15.38.png

VPCの作成を押して、設定をしていきましょう。
名前とIPv4CIDRブロックを定義します。IPv4?CIDRブロック?って人はAWSの前にネットワークの勉強をしましょう。近い内にネットワーク基礎みたいな感じの記事も書きます。
今回は適当に、qiita-hogeVPCと、123.45.0.0/16としておきます。
スクリーンショット 2018-08-26 21.19.44.png

無事作成出来たら、サブネットを作っていきます。1つのアドレス空間を複数のネットワークに分割できる機能です。
左ペインからサブネットを選択し、サブネットの作成をクリック。
名前とVPC、アベイラビリティゾーン、サブネットのIPv4CIDRブロックを定義します。
アベイラビリティゾーンとは、AWSでの重要な概念で、そのリージョン内に存在する、1つ以上の独立したデータセンターの事を示します。
東京には4つありますが、一般的に使用できるのは3つです。ただし今回私が選択しているのはシンガポールですので、東京リージョンで勧めている人とは異なったアベイラビリティゾーンになっています。
スクリーンショット 2018-08-26 21.37.48.png


VPCとサブネットが作成できたら、インスタンスの設定画面に戻ります。また、VPCは後々詳細設定を行います。
そして、設定を勧めていった後の画面はこうなります。
スクリーンショット 2018-08-26 21.40.20.png
IAMロールに関しては、後から設定できるのと、EC2で何をやりたいかによって変わってくるので、後ほど。
「次の手順:ストレージの追加」

今回、ストレージは無料枠で利用できる範囲まで設定します。
スクリーンショット 2018-08-26 21.42.21.png
「次の手順:タグの追加」

タグの追加です。わかりやすくするために、NameというキーにQiitaHogeという値をつけておきましょう。
スクリーンショット 2018-08-26 21.43.48.png
「次の手順:セキュリティグループの設定」

セキュリティグループの設定です。どのタイプのどのソースからのアクセスを許可するか、というものです。
ソースを任意の場所にすると、誰でもアクセスできるようになります。Webサイトを公開したいなら、HTTPとHTTPSの2つのタイプを任意の場所として公開するようにしましょう。今回はSSHのみですので、SSHをマイIPで設定します。スクリーンショット 2018-08-26 21.46.23.png

最後に確認です。
おっと、無料利用の対象枠じゃないと警告が出ていますね。何故でしょうか。
スクリーンショット 2018-08-26 21.49.16.png

答えはストレージの設定です。
ストレージ設定を編集してみましょう。
スクリーンショット 2018-08-26 21.49.52.png
EBSの汎用SSDで30GBまでなら無料利用枠と書いてあるじゃないか!なぜダメなのか!
いーえよく見てください、もうすでに8GB分設定されてるでしょ?
てことでその分減らして22GBで指定しないと無料枠を超えてしまいますので、設定しなおしましょう。
今回は、削除まで含めて説明します。それに伴って、合わせて削除にもチェックを入れておきます。中に保存したデータだけは残したい場合は外しておきましょう。
スクリーンショット 2018-08-28 12.27.12.png

はい、これで作成が完了できます。無料枠じゃないよ!と警告が出ていない事を確認して作成します。
スクリーンショット 2018-08-28 12.28.38.png

キーペアの設定です。これがないとSSHで接続できないので、キーペア名とキーペアをしっかり保存しておきましょう。ダウンロードすると、インスタンスを作成できます。
スクリーンショット 2018-08-28 12.29.47.png

インスタンスの状態がrunningになり、ステータスチェックが合格すると晴れてインスタンスの作成が完了しました。次はVPCの設定に移ります。
スクリーンショット 2018-08-28 12.35.13.png

VPCの設定

サービスからVPCと選択し、VPCダッシュボードを開きます
スクリーンショット 2018-08-28 12.37.49.png

定義する設定は、インターネットゲートウェイ・ルートテーブル・ElasticIPです。
まず、インターネットゲートウェイを設定していきます。
左ペインからインターネットゲートウェイを選択し、インターネットゲートウェイの作成をクリックします。初期からあるのは、デフォルトVPC用のインターネットゲートウェイです。
スクリーンショット 2018-08-28 12.51.28.png

Nameタグは自分がわかりやすいものにしておきましょう。
スクリーンショット 2018-08-28 12.53.51.png

作成が完了しました。
スクリーンショット 2018-08-28 12.54.26.png

次はインターネットゲートウェイをVPCにアタッチします。アクションからVPCにアタッチを選択します。
スクリーンショット 2018-08-28 12.55.33.png

先程つくったVPCを選択しアタッチ。
スクリーンショット 2018-08-28 12.55.58.png

出来たら次はルートテーブルです。左ペインから、ルートテーブルを選択し、作ったVPCに関連付けられてるルートテーブルを選択。
スクリーンショット 2018-08-28 12.57.23.png

すると画面下部にメニューが出てきますので、ルートタブを選択し、編集。
以下のように項目を追加します。
スクリーンショット 2018-08-28 12.58.16.png
保存して、設定は終了です。

では最後にElasticIPを設定していきます。ElasticIPとは、IPアドレスを固定する機能です。AWSでは、仮想サーバを再起動したりすると。パブリックIPとプライベートIPが変更されます。一意のIPアドレスに対して設定を行うような場合、毎回変更されると、その度に設定を変える必要があるので、ElasticIPを使うことでその設定トラブルを避けることが出来ます。
まずは、左ペインからElasticIPを選択し、新しいアドレスの割り当てをクリックします。スクリーンショット 2018-08-28 12.43.45.png

何も設定することはなく、そのまま割り当てをクリックします。
スクリーンショット 2018-08-28 12.44.10.png

割り当てられました。
スクリーンショット 2018-08-28 12.44.48.png

次はこのアドレスを、先程作ったインスタンスに関連付けていきます。
関連付けることで、インスタンスのIPアドレスを、上記で表示されたものに固定出来ます。
アクションから、アドレスの関連付けを選択します。
スクリーンショット 2018-08-28 12.46.27.png

インスタンスから選択するか、ネットワークインターフェースから選択するか選びます。
今回はインスタンスを選択します。先程作ったインスタンスを選択し、プライベートIPをそのインスタンスに割り当てられてるもので選択します。プライベートIPはEC2のダッシュボードから、インスタンスをクリックすると画面下部に表示されています。
スクリーンショット 2018-08-28 12.47.56.png
アドレスの解放とは、いわばそのアドレスの削除に近い意味合いで捉えても大丈夫です。いわばアドレスとサーバの関連付けをなくし、そのアドレスは自身が使用できなくなるというものです。
では関連付けしていきます。
スクリーンショット 2018-08-28 12.59.50.png

はい、上手く関連付けられました。

ここまで書いて、一つ設定し忘れてた事を思い出したので、設定していきます。左ペインからVPCを選び、自身が作ったVPCを選択。
アクションから、DNSホスト名の編集をクリックします。
スクリーンショット 2018-08-28 13.02.50.png

DNSホスト名をはいにして保存。
スクリーンショット 2018-08-28 13.03.20.png

これで全ての設定は終わりました。ではSSHで繋いでいきます。
今回はMacを使って、ターミナルからsshコマンドで接続します。windowsの方はPuTTYとかssh clientなどを使うと思いますが、各自調べてみてください。
先程のpemファイルをダウンロードしたディレクトリへ移動し、
chmod 400 hogeKey.pem
とコマンドを入力します。
スクリーンショット 2018-08-28 13.06.50.png
私は、zshを使っているので、見た目など違う方もいると思いますが、コマンドは変わりません。
ls -al | grep hogeKey
で、ファイルモードが変わったことを確認したので、このkeypairを使ってsshでアクセスします。
EC2のダッシュボードへ移動し、自身で作ったインスタンスを選択。
パブリックDNSをコピーします。
スクリーンショット 2018-08-28 13.09.58.png

そして、下記コマンドをターミナルで実行。@マーク以降の部分は、自身のDNS名にしてください。
ssh -i hogeKey.pem ubuntu@ec2-52-76-66-111.ap-southeast-1.compute.amazonaws.com

なにか聞かれるのでyesと答え、Enter。
スクリーンショット 2018-08-28 13.11.37.png
おめでとうございます。
これで自身で作ったEC2インスタンスにsshで接続出来ました。

インスタンスの削除

今まで作ったものを綺麗さっぱり削除していきます。
まずはインスタンスを削除します。
EC2ダッシュボードからインスタンスを選択し、アクションからインスタンスの状態→削除を選択します。
スクリーンショット 2018-08-28 13.17.51.png

インスタンスの削除をするかのモーダルが出てくるので、ElasticIPの解放にチェックを入れ削除します。
ElasticIPは無料で使用できると、AWSは言っていますが、それはあくまでインスタンスに関連付けられてたりするような特別な場合のみで、何もせずただ存在するだけのElasticIPには時間あたりの料金がかかります。解放せずにインスタンスを削除すると、ただ存在するだけのモノになってしまいますので、解放してあげましょう。
スクリーンショット 2018-08-28 13.18.22.png

削除には時間がかかるので、次はVPCの削除をします。
VPCのダッシュボードへ移動し、自身が作ったVPCを選択、アクションからVPCの削除をクリックします。
スクリーンショット 2018-08-28 13.21.27.png

今回VPNの設定はしていないので、このまま削除します。
スクリーンショット 2018-08-28 13.21.50.png

左ペインからVPC→サブネット→ルートテーブル→インターネットゲートウェイ→ElasticIPと順に見ていき、先程作ったものが無くなっていればVPCの削除は成功です。
恐らく、この辺りでインスタンスの削除も終わってると思うので、EC2ダッシュボードへ移動します。
先程のインスタンスの状況がterminatedになっていれば成功です、完全に消えるまでもう少し時間はかかりますが、削除はこれで大丈夫です。
スクリーンショット 2018-08-28 13.25.01.png

左ペインからELASTIC BLOCK STOREのボリュームを選択し、なにもない。もしくは先程のインスタンスに関連付けられてるボリュームが無くなっていれば成功です。

これで他の環境にまで迷惑をかけず、イチから作成し、全て削除することが出来ました。
お疲れ様でした。


AWSを利用する方や、認定資格を取りに行こうとしている方は、一度はこの手順に沿って環境を作ってみる事をオススメします。
また、自身でAMIを選んでみたり、WordPressやAPIサーバ、バックエンドの処理を行うサーバなど、実際に使うモノをなにか一つ建ててみるのも良いでしょう。
ちなみに、インスタンス作成時にデフォルトVPCを選択すると、インスタンスを作るだけですぐにSSHで接続できるようになります。今回はVPCの作成まで含めてやりたかったので回りくどくなってしまいました。
次回はAWS CLIを使ったインスタンスの作成方法についてやっていきます。

7
3
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
7
3