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

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

関連記事

ブログ運営で最も気をつけること(障害報告)

1 お詫び2 障害報告書2.1 障害内容2.2 障害期間2.3 障害の原因2.4 障害の長期化の原因2.5 詳細3 対応3.1 決済に使用するクレジットカードを変更する3.2 一つ前のOSバージョンで ...

WordPressとRailsアプリケーションを相乗りさせた時の話

1 はじめに1.1 前提条件2 サブドメインを設定する3 Nginxの設定3.1 ステージング環境用の設定3.2 ステージング環境の設定を読み込ませる3.3 Nginxの再起動4 SSL化する4.1 ...

DockerのQuickstart:Compose and Railsをやってみた

1 はじめに1.1 環境1.2 Docker for Macのインストール2 Railsプロジェクトを作成するまで2.1 Railsのプロジェクトディレクトリの作成2.2 Dockerfileの作成2 ...

WordPressのサーバ移設とnginxで無料SSLをやってみた

1 はじめに1.1 環境2 サーバー準備2.1 ConohaのVPSサーバーの契約2.2 sshログイン用のユーザーを作成2.3 必要なソフトウェアのインストール3 WordPressの移行3.1 D ...

MyCoachのDocker環境を変えてみた

1 はじめに2 なんで改修しようと思ったか3 構成3.1 使用するコンテナ3.2 各Dockerfile3.3 docker-compose.yml3.4 Unicorn3.5 database.rb ...

page_side_300rect

Web版MyCoach

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

アプリ情報

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

リンク

follow us in feedly
2017年11月
« 10月 12月 »
 1234
567891011
12131415161718
19202122232425
2627282930