36
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Cloud9でWEBアプリを開発するための環境構築メモ「AWSCloud9環境作成」→「WEBサーバ起動/確認」まで

Last updated at Posted at 2019-01-20

WEBアプリ開発を行うため事前準備として、AWS Cloud9で環境構築を行う手順をまとめました。

※今回は、とりあえず動かしてみることを目標としています。セキュリティや請求の管理についても重要ですが、今回はふれません。その辺の知識について知りたい方は、別途お調べください。

※なお、このドキュメントは、どのようなWEBアプリ開発の環境構築にも必要になってくる「前段階(下準備)の作業」を行う手順書として活用することを想定しております。また、開発環境構築の初心者を想定して書いております。ただし、専門用語などはスペースの理由から、詳しく説明しておりません。例えば、WEBアプリとは何なのかについては、前もって情報収集しておくことをおすすめします。

#Cloud9にアクセス

アマゾン・ウェブ・サービス(AWS)のアカウントが無い方は、事前に作成してください。

アカウントの作成が終わったら、まずはログインしてください。おそらく、ログインに成功すると、AWSマネージメント・コントロールのページへ遷移するはずです。

AWSマネージメント・コントロールの「サービスの検索」にCloud9と打ち込んで、Cloud9のページへアクセスしてください。

0001.png

#Clodu9の環境を構築する

Clopud9のページへ行ったら、オレンジ色の「Create environment」ボタンを押しましょう。下記の3ステップで環境構築ができます。

  • Step 1. Name environment
  • Step 2. Configure settings
  • Step 3. Review

それでは、「Step 1 Name environment」から必要な項目を入力していきましょう。

Step 1. Name environment

AWS Cloud9環境の名前を入力しましょう。ここでは、env_001と入力しました。わかりやすい名前をつけたほうがよいですが、後で変更ができますので、適当に決めてください。

002.png

Step 2. Configure settings

いろいろな設定項目がありますが、デフォルト設定(そのままの設定)で構いません。

念のため「Environment type」がEC2、「Instance type」がt2.micro、「Cost-saving setting」がAfter 30minutesになっていることだけ、確認しておきましょう。この設定で、最小の性能で動作する開発環境が構築することができます。

※AWS Cloud9の裏側は、EC2というサービスが動いています。そのため、EC2に関する設定が必要です。なお、EC2のサービス単位をインスタンスと呼びます。

※インスタンスの性能や起動時間は、特別な理由がない限り、もっとも低スペックで低コストなものにしておけばよいでしょう。

Step 3. Review

内容を確認したら、「Create Environment」ボタンを押しましょう。

開発環境が構築されて、Cloud9が起動します。

ひとまずこれで、プログラムのコードを書く環境を構築することができるでしょう。

しかし、この初期状態の環境では、外部からWebページへアクセスできません。Cloud9上でファイルを書き換えるセキュアなアクセスはできますが、WEBブラウザを使用してインターネット経由でWEBアプリへアクセスすることができないという意味です。

なぜ、この様になっているかと言うと、AWSがセキュリティを考慮しており、初期状態ではファイアーウォールと呼ばれる防護壁で、アクセスできないようにふさいでいるからです。もし環境構築が完了した時点で、世界中の人に見られる状態だとしたら、なんだか恥ずかしいですよね。だから、初期状態ではインターネット経由でアクセスできないようになっているのでしょう。

それでは、WEBアプリの動作確認をするために、Webブラウザで外部からアクセスができるようにファイアーウォールの設定を変更します。具体的には、http通信やhttps通信ができるように穴を開けます。

※ファイアーウォールは一般的に使われている用語です。AWSでは、このファイアーウォールをセキュリティーポリシーと表現しています。今後は、ファイアーウォールを、セキュリティーポリシーと呼ぶことにします。

セキュリティーポリシーの設定

Cloud9の右下にあるbashウィンドウから、下記のコマンドを入力して「インスタンスID」を取得してください。

curl 169.254.169.254/latest/meta-data/instance-id/

WEBブラウザの別タブを開いて、AWSマネジメント・コンソールに戻り、サービス検索から「EC2」と打ち込んで、EC2のページへアクセスしてください。(AWS Cloud9のページは後で使うので、Webブラウザの別タブで、AWSマネージメントコントロールを開くとよいでしょう)

インスタンスの一覧から、AWS Cloud9で起動中のEC2インスタンスを見つけましょう。さきほどCloud9でコマンドを打って取得した「インスタンスID」という項目を見つけてください。そして、そのインスタンスがどのセキュリティーグループに所属しているか、確認してください。

EC2 Management Console - Google Chrome 2019-01-20 14.18.01.png

見つけ出したEC2インスタンスのセキュリティポリシーか分かったら、そのセキュリティポリシーの設定を変更します。左側のメニューから、セキュリティポリシーの一覧にアクセスして、HTTPとHTTPSの通信を許可します。

コンピュータのTCP/IPネットワークについての知識がない方には、チンプンカンプンな内容かと思いますが、ひとまず下記の図のとおりインバウンドのタブの「編集」ボタンを押してください。

表示されたダイアログ上の「ルールの追加」ボタンを押して、HTTPとHTTPSの通信を許可するための設定を2行加えてから、保存ボタンを押せば設定を追加することができます。

ime00x2.jpg

ルールを2行追加すると、セキュリティーグループの画面では、下記のように4行追加されたように見えることでしょう。

EC2 Management Console - Google Chrome 2019-01-20 14.24.08.png

WEBブラウザからアクセス

上記の設定が完了したら、(別タブの)Cloud9のbashウィンドウへ戻って、下記のコマンドを入力してください。WEBに公開されているIPアドレスを取得することができるはずです。

curl http://169.254.169.254/latest/meta-data/public-ipv4

※取得したIPアドレスは後で使います。

それでは、httd(Apache)というWEBサーバを起動してみましょう。下記のコマンドを実行して下さい。

sudo service httpd start

起動に成功したら、WebブラウザのURL欄へ、さきほど取得したIPアドレスを入力して、アクセスしてみましょう。

http://[さきほど取得したIPアドレス]

Test Page for the Apache HTTP Server on the Amazon Linux AMI - Google Chrome 2019-01-20 14.46.12.jpg

アクセスできたら、セキュリティポリシーの設定が上手くいっています。

上手く行ったら、以下のコマンドでWebサーバを停止してから、アクセスしてみてください。

sudo service httpd stop

WEBサーバへアクセスできないことが確認できましたか?(start状態とstop状態の違いを知るために、はじめのうちは動作結果を確認するくせをつけましょう)

以上で、WEBアプリ開発に必要な環境構築の下準備は終了です。

あとは、開発に必要なパッケージ・ソフトウェアなどをインストールして、プログラミングが初められるようにすればよいでしょう。

※php,python,ruby,node.js,Goなど、その辺のインストールをする手続きについても今後は書いて行く予定です。

36
48
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
36
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?