1
0

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のElassticsearchを利用して、ウェブサイトをEC2インスタンスで公開

Last updated at Posted at 2018-12-09

##本ページの目的
 Python + Flaskで作成したWEBページをAWSのVPC、EC2、Elassticsearchサービスで公開します。

##前提要件
1、AWSアカウントを所有すること
2、プログラミングの基礎知識を有すること

##目次
1.VPCの環境構築
2.EC2環境構築
3.Elasticsearch環境構築
4.EC2の接続
5.実行環境の構築
6.公開するため、ポート番号の開放
7.公開サイトにアクセルする

##1.VPCの環境構築
###1.1.今回の環境構築は1個のパブリックサブネットを持つVPCとを作成します。
(1)AWSのコンソールへログイン
(2)VPCサービスを選ぶ
(3)「VPCの作成」をクリック
(4)「1個のパブリックサブネットを持つVPC」を選択(図1)
VPC.png
                図1 VPC設定の選択

(5)VPCの設定
・VPC名任意、アベイラビリテイーゾーン任意
・他の項目はデフォルト
・「VPCの作成」をクリック
VPC例.png
                図2 完成イメージ

###1.2.インタネットに接続するため
・ルートテーブルを編集、インタネットゲットウェアを追加(設定は図3)
*インタネットゲットウェアがない場合は、まずゲットウェアを作成する必要がある
getway1.png
              図3 ゲットウェアの設定

###1.3.セキュリティグループの設定
・「セキュリティグループ」をクリック、構築したVPCのセキュリティグループグループを選択
・Inbound Rulesを選択、「Edit」をクリック、「ルールの追加」をクリック
・下記のタイプのルールを追加する(図4)
・「保存」をクリック
セキュリティグループ.png
           図4 セキュリティグループの設定

「RDP」:windowsリモートデスクトップのプロトコル
「HTTPS」:elasticsearchにアクセスするためのプロトコル
「8080」:EC2で公開したウェブにアクセスするためのプロトコル

##2.EC2環境構築
###2.1性能上の要求がなければ、今回は無料枠のインスタンスを使います。
(1)「インスタンスの作成」をクリック
(2)「無料利用枠のみ」を選ぶ
(3)「Microsoft Windows Server 2016 Base」を選択、「次の手順」をクリック
(4)インスタンス「t2.micro」を選択、「詳細設定」をクリック
(5)構築したVPCと対応するネットワークとサブネットを選択
(6)自動割り当てパブリック IPを有効化、「確認と作成」を押す
(7)「作成」を押す
EC2設定.png
              図5 EC2設定

###2.2初めてEC2のインスタンを作成する場合は
(1)新しいキーペアの作成、キーペア名を入力し、「ダウンロード」を押す
(2)「インスタンスの作成」、「インスタンスの表示」

##3.Elasticsearch環境構築
(1)Elasticsearchサービスを選択する
(2)ドメイン名任意、次へ
(3)インスタンスタイプはt2.small.elastisearch、次へ
(4)構築したVPCを選択し、設定したEC2インスタンスのサブネット、セキュリティグループを設定
ES.png
               図6 elasticsearch設定

(5)テンプレートを「IAM認証情報を使用した署名リクエストを要求しない」に設定
(6)設定内容を確認し、確認を押す
(7)構築が完了するまで、10分かかる

##4.EC2の接続
(1)EC2サービスを選んで、「インスタンス」を選択
(2)作成したインスタンスに右クリックし、「接続」を選択
(3)「リモートデスクトップファイルのダウンロード」をクリック
(4)「パスワードの取得」、「キーペアのパス」、「パスワードの複号」をクリック
(5)複号したパスワードをメモする
(6)「リモートデスク」のアプリをクリック、記録したパスワードを入力、「OK」

##5.実行環境の構築
###5.1簡易書籍管理システム
(1)EC2インスタンスにログインする
(2)Pythonをインストール

(4)簡易な書籍管理システムをダウンロードする(下記のURL、使い方readme.md)
https://github.com/michihosokawa/MiniBookManagementSystem

###5.2Elasticsearchインデックスの設定
(1)「ElasticsearchWrapper.py」ファイルの21行目を修正(エンドポイントは図7)

編集前:self.es=Elasticsearch("localhost:9200")
編集後:self.es=Elasticsearch("VPCエンドポイント:443")

Screenshot-2017-10-16-18.56.42.png
            図7 エンドポイントのイメージ

(2)コマンドラインで「「pip install elasticsearch」を実行
(3)システムのフォルダで「Python initialize.py」を実行
*initializeは2回実行する(一回目は既存のelasticsearchのindexを削除)

###5.3ページの確認
(1)コマンドラインで「pip install flask」を実行
(1)「Python app.py」を実行
*moduleエラーが出た場合は「pip install モジュール名」を実行
(2)localhost:8080をブラウザ(chrome)で確認(図8)
書籍追加.png
              図8 簡易書籍・追加ページ

##6.公開するため、ポート番号の開放
AWSの無料枠のwindowsはポートが開放されていないため、443と8080ポートを開放する必要があります。ポートの開放方法について、グッグルで調べてください。

##7.公開サイトにアクセルする
(1)EC2インスタンの公開IPアドレスをメモする(公開IPの記載場所は下記の図)
(2)自分の端末のブラウザ(chrome)に「公開IP:443」を入力して実行(図9)
公開IP.png
               図9 公開IPアドレス

(3)図8の画面が表示されたら、おめでとう構築が成功しました。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?