BLOG

Web技術

AWSでクラウドなWeb開発入門(2) – EC2でwebサーバーを立ててみよう

LINEで送る
Pocket

aws_article_title_imgjpg

こんにちは。エンジニアのぐっちです。
前回の記事では、awsの代表的なサービスについて紹介しました。
AWSでクラウドなWeb開発入門 – AWSの各サービスの概要

次は、実際のwebサイトをEC2で作成し、公開してみましょう。

awsの利用には、Amazonアカウントと、クレジットカードの登録が必要です。
料金は、最初の利用開始から1年の間は無料枠が有りますが、詳しくは下記リンクを確認して下さい。
AWS 課金体系と見積り方法について
無料枠を使用しない場合、t2.microの30日間の料金は$11.52になります。(2016年12月13日現在)

※以下の手順では、使用するAmazonアカウントで初めてawsを使ったシステムを構築する場合を想定しています。同アカウント内にすでに既存のシステム等が存在する場合、管理者の管理下で安全な操作を行うようにして下さい。

まずは最小構成のインスタンス(t2.micro)を立ててみましょう。
EC2の管理画面から、「インスタンスの作成」を選択します。
ec2_create_1_create

マシンイメージの選択。
選択するOSによって料金が異なります。
Linuxの他に、Windows Serverも利用可能です。
ここでは無料の「Amazon Linux AMI (仮想化タイプ:hvm)」を選択します。
ec2_create_2_ami

インスタンスタイプの選択。
サーバーの必要スペックに応じたものを選択します。
ここではt2.microを選択。
ec2_create_3_type

インスタンスの詳細の設定。
全てデフォルトのままでOKです。
ec2_create_4_detail

ストレージの追加。
ここでサーバーのドライブ容量を調整することができます。
容量によって料金が変動します。
ここもデフォルトでOKです。
ec2_create_5_storage

インスタンスのタグ付け。
デフォルトでOKです。
ec2_create_6_tag

セキュリティグループの設定では、このインスタンスへのネットワーク入出力の許可を設定します。
このスクリーンショットでは、任意のIPからのSSHとHTTPのネットワーク入力を許可するにしています。
実際のプロダクション環境では、必要最小限のインバウントアクセスのみ許可できるよう設定が必要です。
ec2_create_7_security

最後に、サーバーにSSH接続するためのpemファイルを指定します。
このpemファイルは各アカウントのリージョンごとに管理されており、既に登録しているものを使わない場合は、
新規作成を選択し、生成されたpemファイルをダウンロードします。
今後このサーバーには、生成したpemファイルを用いてSSH接続します。
ec2_create_8_pem

これでec2インスタンスの作成は完了です。
ec2_create_9_complete

作成したインスタンスはこのようにec2インスタンスリストに表示されます。
必要なくなったインスタンスは、この画面からインスタンスを右クリック→状態→削除 で消去する事ができます。
ec2_create_10_list

「インスタンスの状態」がrunningになったら、接続可能な状態になります。
パブリックDNSホスト名を用いて、SSHで接続してみましょう。接続にはさきほどダウンロードしたpem鍵ファイルを使用します。
(パブリックDNSホスト名及びパブリックIPは、インスタンスを再起動するごとに変化します。固定したい場合はElasticIPを使用する必要があります)
ec2_create_11_ssh

Amazon Linuxはredhat系Linuxのため、パッケージマネージャはyumを使用します。
今回は試しにApacheをインストールし、ブラウザからの接続を確認してみましょう。

apacheを起動できたら、ssh接続時に仕様したパブリックDNSにブラウザからアクセスすることで、apacheのデフォルトページの表示が確認できる筈です。
ec2_create_12_browser

以上で、基本的なサーバーの公開手順は完了です。
このように、awsでは簡単にサーバーの作成・削除等が行えます。

次回は、s3を使って静的ファイルを配信する方法を紹介します。

ぐっち

ぐっち

ムーミン大好き、群馬出身のダークホース! 要件定義からリリースまでそつ無くこなす、頼りになる存在。 SmartBodyにSmartSupportでSmartにSmartPhone開発を行うSmartSexyDeveloper!