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が利用されるのではないかと思います。

blog-page_footer_336




blog-page_footer_336




-Server
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

aws

AWS Lambdaの関数スケーリングとローカル実行

1 はじめに2 関数スケーリングについて2.1 同時実行とは2.2 同時実行の制御方法2.3 その他3 ローカルで実行するには3.1 LocalStackについて3.2 LocalStackのSetu ...

aws

ECSとCWLでのアラームの設定

1 はじめに1.1 全体の流れ2 CloudWatch Logsでロググループを作成する3 ECSでタスク定義を作成(更新)する4 CloudWatch Logsでメトリクスフィルタを作成する5 SN ...

laravel logo

Laravel Cashierでサブスクリプションを実装する

1 はじめに2 Stripeの準備3 Laravel Cachierの初期設定3.1 インストール3.2 APIキーの設定3.3 Userモデルへの実装4 支払い方法の登録4.1 支払い方法の登録5 ...

InnoDBでauto_incrementの値が戻る?

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

単体のORMライブラリとしてEloquentを使う

1 はじめに2 Eloquentとは3 導入3.1 Composerインストール3.2 Eloquentインストール4 DB接続4.1 illuminate/database4.2 モデルクラス作成4 ...

フォロー

blog-page_side_responsive

2017年11月
 1234
567891011
12131415161718
19202122232425
2627282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。