テストをする際にステージング環境テスト用のEC2インスタンスにデプロイして、そこで確認を行なっているのですが、そのサーバーが1台しか用意されていない為各チームで待ちの状態が発生したり、都度slackでサーバーを使用する宣言を行う必要がありました。そういった状態を回避する為、自分が所属するチーム用にサーバーを用意することになりました。以下にサーバーを複製する手順について要点をまとめて記載しましたので、そういった機会があれば参考にして頂ければと思います。
前提
サーバーを複製するにあたり、以下は全て既存のサーバーで使用されているものを使用します。特別な理由があって新規で作成する必要がある場合はご注意ください。
・VPC
・サブネット
・セキュリティーグループ
・ドメイン(Aレコードを追加し、サブドメインを分ける運用)
・ロードバランサー
・RDS
また本記事では手順を伝えることを目的としている為、ある程度AWSへの知見がある方を対象としています。
既存インスタンスからイメージを作成
インスタンスの表示ページから、既存のインスタンスを選択します。画面右上のアクション→イメージとテンプレート→同様のものを起動をクリックすると、既存インスタンスを元にイメージの作成ができます。この手順を行うことでwebサーバー・mysqlなど、通常は作成したインスタンスに接続してからインストールしなければいけないものを保持したままイメージの作成を行うことができるので、1からインスタンスを作成するよりも大変楽に行えます。
AMIからインスタンスを起動
AMIのページから、上記で作成されたイメージを選択しインスタンスを起動をクリック。設定内容として、VPC・サブネット・セキュリティーグループは既存のサーバーで使用されているものと同じものを選択します。インスタンスタイプやEBSボリュームも理由がない限りは既存のインスタンスと同じサイズで良いかと思います。キーペアは既存インスタンスと同じものを使用することを推奨します。キーペアを分けてしまうと例えばデプロイ時に新たにキー情報を記載しなければならなかったりするので、同じものを使用する方が楽です。
ElasticIPの作成とインスタンスへの紐付け
作成したインスタンスにはパブリックIPが振られていない為、ここでIPを新規に作成してインスタンスに紐づけましょう。プライベートIPは新しく作成したインスタンスを使用します。
ターゲットグループの作成
target typeはinstancesを選択し、VPCは既存のサーバーで使用されているものを選択します。Register targetsでは新たに作成したインスタンスを選択します。その他Health checksの設定など細々したものは既存のターゲットグループと同じ設定にしました。
ロードバランサーとターゲットグループの紐付け
ロードバランサーのページに移動し、既存のロードバランサーからListenersのrulesをクリックして、作成したターゲットグループの紐付けを行います。
Route53周りの設定
ホストゾーンからAレコードを作成します。エイリアスから上記で作成したロードバランサーとの紐付けを行います。このようにすることでロードバランサー経由でアクセスを処理できます。
RDSとの接続確認
最後にRDSとの接続確認を行います。RDSはVPCに対して紐づいており、今回は既存のサーバーで使用されているVPCとセキュリティグループを選択している為、今の状態でRDSとの接続を行えるはずです。sshでサーバーに接続して、mysqlコマンドでRDSに接続確認を行いましょう。
終わりに
以上、簡単にAWS側でサーバーを複製する手順をまとめてみました。この他にも使用するwebサーバーによってconfigの設定を変える必要があったりするので、その点はご自身で調べて必要があるかと思います。
この他にもセキュリティグループ周りの記事を執筆しているので、良ければ覗いてみてください。
https://qiita.com/takatakaryoryo/items/b0a75adbbb6b3c65cdb7