AWS
EC2

0から始めるAWS入門②:EC2編

More than 3 years have passed since last update.


前回まで

0から始めるAWS入門:概要

0から始めるAWS入門①:VPC編


概要

前回作成したVPC内にELB、EC2を作成・配置していく。

ELBがインターネットとの玄関。EC2がELB経由のリクエストをさばいていくアプリケーション・サーバーとなる。


EC2インスタンスの作成

コンソール上の[Compute]カテゴリの[EC2]を選択、[EC2 Dashboard]へ遷移後、画面中央の[Launch Instance]ボタンからEC2インスタンスの作成を行っていく。

基本的に全設定行っていくので、ステップ途中で起動ボタンがアクティブになるが、Nextを選択し設定していく。

2-1_lauch_instance.png


OSの選択

まずは、EC2インスタンスのOSを選択する。今回はAmazon Linuxを選択する。

今回は割愛するが、この他にも、AMIという自分で作成したイメージや各用途向けに最適化されたマーケット(有料)・コミュニティで提供されているイメージも選択可能。

Amazon Linuxは、Red Hat Enterprise互換のAmazonが開発しているディストリビューション。

2-2_choose_os.png


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

ここで、用途に合わせてインスタンスタイプを選択する。今回は学習目的なので、無料枠対象の「t2.micro」インスタンスを選択する。

各インスタンスタイプの詳細はこちら

2-2_choose_type.png


インスタンスの設定

各種インスタンスの設定をしていく。各項目の内容は下記の通り。

項目
内容

Number of Instance
今回作成するインスタンス数
1

Purchasing option
スポットという料金体系がオークション形式のインスタンスを使うか
オフ

Network
どのVPCを使うか
前回作成したVPCを選択する

Subnet
VPC内のどのSubnetを使うか
前回作成したAZ-AのSubnetを選択する

Auto-assign Public IP
グローバルIPを用いるか
enable

IAM role
IAMというAWSのアカウント管理を用いている場合、特定のアカウントにのみこのインスタンスを操作を許したければ設定する
None

Shutdown behavior
OSレベルでのシャットダウンをかけた場合の振る舞い。インスタンスを一時停止(stop)するか、そのまま復旧不可能な完全停止(termiante)するか。
stop

Enable termination protection
アクシデントで完全停止するのを抑制するか。オンにした場合、このオプションをいじらない限り完全停止できない。
オフ

Monitoring
CloudWatchというAWSの監視サービスを使うか。
オフ

Tenancy
ハードウェアを専有するか。専有する場合、料金アップ
Shared tenancy

2-4_configure.png

[Network interfaces]はそのままいじらず、eth0へ割り当てられるPrimary IPは[Auto assign]


ストレージの追加

このインスタンスのストレージを設定する。

項目

Size
10

Volume Type
General Purpose(SSD)


Volume Typeについて

以下の3つが選択可能。実際は用途に合わせて設定する。

タイプ
用途

General Purpose (SSD)
ほとんどの場合これを選んどけば問題ないスタンダードなタイプ。

Provisioned IOPS (SSD)
一定以上のIOPSを保証する必要があるクリティカルな大規模DB向け等。が、当然割高。

Magnetic
IOPSは低いが安い。I/Oがあまりない用途

2-5_add_storage.png


タグ

[Name]タグに任意のタグ名を設定する。分かりやすければいいが、個人的には、VPC[test]と用途[web]、AZ[AZ-a]を設定して、後から見た時にどこに配置されている何用途のサーバーなのか判別するようにしている。2-6_tag.png


セキュリティーグループ

セキュリティグループの設定。所謂、ファイアウォールを設定する。コンソール上でこういった設定ができるのもAWSのいいとこ。また一度作れば、同様のポリシーを他のEC2インスタンスに使いまわすことも可能。

[Create a new security group]を選択する。

[Security group name]には任意の値を設定するが、上記の通り同じVPCのwebインスタンスにはこのセキュリティーグループを設定できるため、例として汎用的に[test-web]とする。

[Description]も同様に任意の値を設定する。

実際のポリシー設定として、今回は、最低限必要なインバウンドポートのみ許可する。

ポート
許可IP

SSH(22)
MyIP(選択すれば現在アクセスしているグローバルIPが自動で設定される)

HTTP(80)
CustomIP 10.0.0.0/16

HTTPは、次回行うELBの設定で、インターネットからのアクセスはすべてELB経由となるためVPC内のアクセスのみ許可すれば良い。

もしくは、動作確認等で直接つないで確認を行いたい場合は、合わせてHTTPとHTTPSにMyIPを指定すれば良い。

2-7_security_group.png


設定確認

上記設定後、[Review and Launch]ボタンで設定を確認できる。


起動!...の前に公開鍵・秘密鍵の設定

設定確認で問題がなければ、続いて、[Launch]ボタンをクリック。

そうすると初期設定するSSHの公開鍵の設定モーダルが開く。

今回は、初回なので[Create a new key pair]を選択後、[Key pair name]に任意の名前を設定する。

その後、[Download key pair]ボタンをクリックすると、pem拡張子の秘密鍵がダウンロードされる。

これが最初にインスタンスにSSH接続するのに必要となる秘密鍵なので、絶対紛失してはならない。

2-8_keypair.png


起動!

[Lauch Instance]ボタンをクリックして終わり


SSHアクセス

早速立ち上げたEC2インスタンスにアクセスする。

ここでは、クライアントとしてMacでの操作を記述していくが、Windowsの方は、TeraTerm等で同様に公開鍵認証で行っていけばok。


IPの確認

[Instances]のリストの中から、今起動したEC2インスタンスを選択すると、下側に[Description]が表示される。その中の項目のPublic IP/Elastic IPがグローバルIPとなる。(画像赤塗りつぶし部分)

2-9_IP.png


アクセス

デフォルトユーザーはec2-user、鍵は先ほどダウンロードしたpem拡張子の秘密鍵、パス無し。

ssh ec2-user@{確認したPublic IP} -i {秘密鍵保存ディレクトリ}/test.pem


アクセス出来ない場合

インスタンスへの接続に関するトラブルシューティングを試してみて下さい。


とりあえずnginxインストール・起動

次章のELB編でヘルスチェックにHTTPを使うため、とりあえずnginxをインストールしてルートパスで200HTTP Statusが返るようにしておく。

sudo yum install -y nginx

sudo /etc/init.d/nginx start
sudo chkconfig nginx on

セキュリティグループの設定で、HTTPにMyIPを指定しているのであればブラウザで直接Public IPを入力すれば、nginxのデフォルト画面が表示されているはず。


次回

0から始めるAWS入門③:ELB編