Server

MyCoachの本番環境をAWS上に構築する 〜EC2編〜

投稿日:

はじめに

10月初旬にMyCoachをリリースいたしました。
MyCoachはタスク管理アプリ(iOS、Android)とコーチ検索サイトで構成されております。

アプリの使い方につきましてはこちらの記事をご確認ください。

今回はAWSのサーバ構築(EC2)をコーチ検索サイトの本番環境構築で行った流れに沿って紹介します。

関連記事

MyCoachの本番環境をAWS上に構築する 〜ネットワーク編〜
Amazon EC2を使ってみる

MyCoachで利用しているインスタンス

MyCoachはWebサーバとDBサーバの2台のEC2インスタンス(どちらもt2.micro)で構築されています。

設定する項目

設定する項目は下記のとおりです。

  • キーペア
  • セキュリティグループ
  • インスタンス
  • ターゲットグループ
  • ロードバランサー

それぞれの項目について個別に説明します。

キーペアの作成

まず初めに行うのはキーペアの作成です。
キーペアはEC2インスタンスにSSHで接続する際に使用します。

まず、AWSコンソールのトップ画面の入力欄に「ec2」と入力し検索します。
すると、EC2ダッシュボードに遷移しますので左のメニューの「キーペア」をクリックします。

「キーペアの作成」をクリックし表示されたポップアップにキーペア名を入力して「作成」をクリックします。
すると、自動的にキーペアがダウンロードされます(ファイル名が【キーペア名】.pem.txtとなっているので、気になる場合は.txtを消します)
keypair01

セキュリティグループの作成

キーペアを作成したことでインスタンスにアクセスできるようになりました。
ただし、インスタンスを作成する際にセキュリティグループを指定しますので、先にセキュリティグループを作成します。

まずはWebサーバ用のセキュリティグループを作成します。
左のメニューの「セキュリティグループ」をクリックし、「セキュリティグループの作成」をクリックします。

下記の画像の通り設定し、「作成ボタン」をクリックします。
(サーバ構築のためにHTTPとSSHをフルオープンにしていますが、リリース前に設定を修正します)
security_group01
次にDBサーバ用のセキュリティグループを作成します。
セキュリティグループ名を「mycoach-ec2-db」にし、それ以外はWebサーバ同じ設定で作成します。

最後にALB用のセキュリティグループを作成します。
ALBのセキュリティグループの設定は下記の画像のとおりです。
これでインスタンスを作成するための準備が整いました。
security_group04

インスタンスの作成

まずはWebサーバのインスタンスを作成します。

Webサーバのインスタンスを作成

左のメニューの「インスタンス」をクリックし、「インスタンスの作成」をクリックします。

表示されたOSの一覧からAmazon Linux AMIを選択します。

インスタンスタイプの設定画面ではt2.microが選択されてると思いますので、そのまま「次の手順」をクリックします。

下記の画像の通り設定し、「次の手順」をクリックします。
instance01
ストレージの追加画面ではインスタンスにアタッチするディスクのボリュームを指定します。
設定を編集せずに「次の手順」をクリックします。

タグの追加画面では下記の画像の通り入力し、「次の手順」をクリックします。
instance02
セキュリティグループの設定画面では、先程作成したセキュリティグループを指定して「確認と作成」をクリックします。
instance03
インスタンス作成の確認画面では内容を確認し、「作成」をクリックします。
表示されたチェックボックスにチェックを入れて「インスタンスの作成」をクリックします。
instance04

DBサーバのインスタンスを作成

DBサーバのインスタンスの作成はWebサーバのインスタンスの作成とほとんど同じです。
DBサーバは外部に公開しないので、サブネットは「mycoach-private-a」を選択します。

Webサーバの設定

インスタンスが立ち上がったらSSHでアクセスし、設定を行います。
下記のコマンドでインスタンスに接続します。

 
インスタンスに接続したら、yumのアップデート、ユーザの作成、不要なサービスの停止、必要なミドルウェアのインストールを行います。
参考URL:
https://qiita.com/yangci/items/ef2ab9b6f0d28bad0881
https://qiita.com/na0AaooQ/items/5bd62e630a2faf051a52

DBサーバの設定

DBサーバもWebサーバと同様に設定を行います。
注意点として、DBサーバはクローズドなネットワーク上にありますので、一時的にインターネットに接続できるようにする必要があります。
インターネットゲートウェイを作成し、「mycoach-private-a」のルートテーブルを編集します(設定が終わったら削除します)

インターネットに接続できるようになったら、MySQLをインストールしてDBを作成したら外部からアクセスできるようにユーザを作成します。
参考URL:
http://ext.omo3.com/linux/mysql_host.html

セキュリティグループの修正

設定が終わったら不要なポートを閉じます。
Webサーバのセキュリティグループは下記の画像の通り変更します。
security_group02
DBサーバのセキュリティグループは下記の通り変更します。
security_group03

ターゲットグループの作成

EC2インスタンスの準備ができたのでロードバランサーを作成して紐付けるのですが、ロードバランサーはターゲットグループに対してアクセスを振り分けるので、先にターゲットグループを作成します。

左のメニューから「ターゲットグループ」をクリックし、「ターゲットグループの作成」をクリックします。

下記の画像の通り入力し、作成ボタンをクリックします。
target_group01
次にアクセスを振り分けるインスタンスの設定とヘルスチェックの設定を下記の画像の通り行います。
target_group02
target_group03

ロードバランサーの作成

ターゲットグループが作成できたのでロードバランサーを作成します。

左のメニューの「ロードバランサー」をクリックし、「ロードバランサーの作成」をクリックします。

次に「Application Load Balancer」の「作成」をクリックします。

下記の画像の通り設定し、「次の手順」をクリックします。
load_balancer01
load_balancer02
「ACMから新しい証明書をリクエスト」からサーバ証明書を発行する事ができます。
サーバ証明書を発行したら証明書の名前を発行した証明書にし、「次の手順」をクリックします。
load_balancer03
下記の画像の通りセキュリティグループを設定し、「次の手順」をクリックします。
load_balancer04
下記の画像の通りルーティングの設定を行い、「次の手順」をクリックします。
load_balancer05
ターゲットの登録画面ではそのまま「次の手順」をクリックします。

確認画面で「作成」をクリックしてロードバランサーを作成します。

さいごに

今回はEC2とALBの設定を紹介しました。
費用を抑えるためにRDSではなくEC2上にDBを構築していますが、一般的にはRDSが利用されるのではないかと思います。

page_footer_300rect




page_footer_300rect




-Server
-

執筆者:


  1. […] MyCoachの本番環境をAWS上に構築する 〜EC2編〜 Amazon EC2を使ってみる […]

comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

[CentOS7] systemdにサービスを登録して、サーバ起動時に自動でサービスを立ち上げる

1 はじめに2 chkconfigについてざっくり3 前提4 起動スクリプトを作成する5 Unitを定義する6 EnvironmentFileを作成する7 確認と設定7.1 systemdで管理できる ...

CircleCIを使ってみた(RailsのRSpecとデプロイのサンプル)

1 はじめに2 導入するにあたって3 項目B4 補足4.1 開発環境とCI環境でdatabase.ymlが異なる5 さいごに はじめに 個人的に作成しているアプリケーションのCIツールとして、Circ ...

Conohaのサーバーを借りて、CentOS+MySQL+nginxの環境を作ってみた。

1 はじめに1.1 環境2 Conohaでサーバーをレンタル3 サーバーの初期設定3.1 サーバーにrootユーザーでログイン3.2 ユーザー作成3.3 SSHログインを許可3.4 秘密鍵を生成3.5 ...

aws

Amazon EC2を使ってみる

1 はじめに2 事前準備2.1 ルートアカウントのMFAを有効化2.2 個々のIAMユーザの作成(及びグループの作成)2.3 IAMユーザのMFAを有効化2.4 IAMパスワードポリシーの適用3 EC ...

InnoDBでauto_incrementの値が戻る?

はじめに 花粉症が辛い季節になりました。 花粉症も困りますが、本日はMySQL関連で困って調べたことをまとめたいと思います。 タイトルですが、InnoDBだとDBを再起動した際にauto_increm ...

フォロー

follow us in feedly

AppLink

page_side_300rect

2017年11月
« 10月 12月 »
 1234
567891011
12131415161718
19202122232425
2627282930 

アプリ情報

目標を達成したい方を応援する、TODOアプリもリリースしております。 下記のアイコンから無料でダウンロードできます。

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。