Help us understand the problem. What is going on with this article?

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

More than 5 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編

hiroshik1985
広告・マーケティングのCyberbuzzでCTOやってます :)
cyberbuzz
SNSマーケティングサービスや、”買いたい”に出会えるメディア「to buy」などの開発・運用をしています。
https://www.cyberbuzz.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away