AWS
laravel

Laravel Forgeを使ってAWSのサーバー構築を15分で終わらせる

業務でAWSに本番サーバーを立てる必要があり、サクッと環境構築+デプロイできる都合の良いツールはないかなぁと探していたら、ありました。

ありましたと言っても、公式で紹介されているんですけどねw(※有料です)


Forgeによるデプロイ

https://readouble.com/laravel/5.7/ja/deployment.html



環境構築に時間をかけるのはやめよう!

AWSでのサーバー構築に慣れていない場合、VPC作成〜EC2インスタンス作成〜必要なモジュールのインストール、等々で1時間以上かかってしまうこともあります。ところが、Forgeだと最低限の設定であれば15分程度で済ませることができてしまうんですよね。インフラ初心者でもAWSのややこしいコンソールはほとんど見る必要がなくなります。(とはいえ、業務レベルになるとAWSの知識や設定方法の理解は必要になりますが。。)


設定手順

AWSのアカウントを取得していることを前提で話を進めます。


事前準備


IAMの設定

AWSのIAMから「ユーザーを追加」から、「AmazonEC2FullAccess」にチェック✓を入れ、IAMユーザーを作成します。

アクセスキーIDとシークレットアクセスキーは、Forgeで使います!

スクリーンショット 2019-02-05 12.49.16.png

スクリーンショット 2019-02-05 12.50.33.png


Forgeの設定


サインアップ

https://forge.laravel.com/

必要な項目を記入し、登録します。

スクリーンショット 2019-02-09 12.02.37.png


APIキーの登録

Forgeにログインすると、画面の下の方にサービスを選択する箇所があるので、AWSを選択します。先程確認したIAMのアクセスキーIDとシークレットアクセスキーを入力し、Connectをクリックしましょう。

画面上部に Great! Now let's connect to a source control and server provider so we can create servers! と表示されれば成功です!

(うまくいかない場合は、IAMの設定もしくはキーの入力間違いがないかを確認してみてください)

スクリーンショット 2019-02-05 12.50.58.png


Service Providersの登録

Forgeの右上のメニューから、MyAccountを選択し管理画面へ移動します。

Service ProviderからAmazonを選択し、Profile NameとIAMのアクセスキーIDとシークレットアクセスキーを入力しましょう。

(Profile Nameは自分が分かれば何でも構いません。後からでも変更は可能です!)

スクリーンショット 2019-02-05 12.59.39.png


EC2インスタンスの作成

さて、Forgeの初期設定が終わったら、いよいよサーバーを立てていきます!

Forge画面トップのCreate ServerからAWSを選択しましょう。

(Connectが完了しているのにCreate Serverが表示されない場合は、画面上部にお知らせが表示されていると思うので「Skip For Now」を選択)

Credentials: Server Providersで登録したProfile Name

Name: サーバー名(EC2のインスタンス名)

Region: リージョンを選択(分からなければTokyoを選択)

Server Size: お財布と相談してください。

VPC: 新規に作成する場合は、Create New。既存のVPCに作成したい場合は、それを選択してください。

   (VPC作成済なのに表示されない場合は、Regionが間違っている可能性があります)

VPC Name: 作成するVPC名(既存のVPCに作成する場合は、サブネットが選択できるようになります)

PHP Version: インストールするPHPのバージョン

Post-Provision Recipe: インストール後に起動するスクリプト(今回は作成していません)

Database: 作成するデータベース(作成しない場合はNoneを選択)

Database Name: データベース名

Provision As Load Balancer: ロードバランサーとして作成する場合はチェック✓。今回はしない。

入力できたら、Create Serverをクリックします。

すると、インスタンスが作成されPHPやNginx等Laravelに必要なものがサーバーにインストールされます。

インスタンスの作成には10分程かかるので、のんびり待ちましょう!

インスタンスの作成が完了したら、サーバーのSudoパスワードとデータベースのパスワードが記載されたメールが届きます。

スクリーンショット 2019-02-05 14.03.32.png


構築完了!

Connectionの矢印をクリックし、接続できていればSuccessfulが表示されます。

スクリーンショット 2019-02-05 14.20.11.png


デプロイ

今回は、Githubを使います。

上部メニューのSitesからdefaultをクリックすると、Git Repositoryが選択できます。

スクリーンショット 2019-02-05 14.35.33.png


リポジトリのインストール

記載されているサーバーの公開鍵を、Githubの指定のリポジトリに設定します。

リポジトリのアドレスとブランチを設定すれば、Install Repositoryをクリックし、インストールが終わるのを待ちましょう!

スクリーンショット 2019-02-05 14.37.02.png


デプロイする

インストールが完了すれば、右上のDeploy Nowをクリックするのみです!

スクリーンショット 2019-02-09 14.10.46.png

以上で最低限の設定は完了です!

これでアプリケーションの開発に集中できますね!


参考

php開発環境の管理に超便利なLaravel Forgeの始め方 (上)

https://qiita.com/MasaGon/items/ab75001477192ecd51b5

Laracasts - EPISODE 3 Your First Project

https://laracasts.com/series/learn-laravel-forge/episodes/3