この記事はうるる Advent Calendar 2019 9日目の記事です。
#はじめに
この記事は下記の方を対象にしています。
- インフラやサーバー周りが苦手のPHPのサーバーサイドエンジニア
- 自分でサービス開発をしたいエンジニア
- エンジニアなりたての方
インフラとかサーバーとかよくわからないし、怖いし、面倒ですよね。私もそうでしたので、よくわかります。
私自身はプログラマ歴4年のサーバーサイドエンジニア。自分でサービスをやっているため、必要に迫られてサーバー管理を嫌々やっています。(本当にサーバー管理キライですw)
この記事ではLaravel forgeとDigital Oceanを使って楽に環境構築を行います。
Laravel forge is 何??
- Laravel 開発者のためのサーバー管理ツール
- Laravel開発者のTaylor Otwellさんを中心に開発。Laravelとの相性が抜群に良い
- Digital OceanやAWS、その他のVPSと簡単に連携でき、すぐにLaravelのアプリケーションが動かせる
- Gitからの自動デプロイ、Redis,Queueなどアプリケーションに必要なことが簡単に設定できる
Digital Ocean is 何??
- アメリカのクラウドサービスの会社。 VPS、DB、クラウドストレージサービスを安く、シンプルな使い勝手で提供。
- アメリカのスタートアップがよく使っている
- AWSよりシンプルで安く、簡単なサービスと認識してもらえればOK!
forgeを使って、Digital Oceanにサーバーを作る
- forge, DOともにアカウントを取得する
- forgeは5日間無料トライアルあり。月額12ドルから使えます。
- DOは利用した分だけ課金されます。サーバーは最小構成なら月500円程で立てれます。
- DOの管理画面にてAPIを発行
- forgeの画面にて先ほどのDOのAPIを入力
- My Account ->Profile -> Server ProvidersにてAPIを入力
- forgeの画面でcreateサーバーにて、Digital Oceanをクリック
- 連携が成功していたらcredentialにDigital Oceanの自分の名前が表示されます
- Nameを決めて、Region,Server sizeなどを選択して、create Serverボタンをクリック。今回はadvent-calendarというサーバーを作ります
- すぐにDigial Oceanと連携して構築し始めます。
- DO側の画面
- 先ほど名前をつけたサーバーが出来ています
- 実際にはプロビジョニングに10分くらいかかります
- 完了するとforgeから完了メールが届きます。このメールにSudo passwordやDBパスワードが書いてあるので保存しておく
サイトの公開
- Forgeに戻って、先ほど作ったサーバーを選択する
- New Siteにドメインを追加する(例:advent-calendar-test.com)
- active siteに先ほど作ったサイトが追加される。サイト名をクリック
- Gitのレポジトリ情報を追加する
- 勝手にデプロイし始めます
- デプロイ完了したらこの画面。
- デプロイしたい時は右上のDeploy Nowをクリック
- 自動デプロイは Enable Quick Deploy をクリック。これにしておくとGitが更新されるたびに自動デプロイが走ります
- 設定したドメインは、ドメインを管理しているサイトでDNSでAレコードにIPアドレスを追加すれば表示されます。(今回の例ではIPアドレスは159.89.200.65。 Digital Oceanのサイトでも確認できるが、ご丁寧にforgeの中でもちゃんと書いてある)
- advent-calendar-test.comはアクセスしてみても、私がドメイン持ってないので表示されません。念のため。
その他設定
- envはここで設定。 LaravelのEnvをコピペして、本番用に書き換えれば使えます
- SSLも設定可能。Let's encryptあるので、わかんない人はそれクリックしておけばOK。勝手にSSLが反映されます。
- Workerも画面から簡単に設定できる。RedisでもDatabaseでも設定可能です。
- Cronだけはサーバー画面から設定する。トップメニューのServersからサーバーを選び、設定する
その他補足
- 設定はServer details, Site detailsの二つがあり、設定するものによって場所が違う。サイトがシンプルすぎて、何がどこにあるか最初わからないので注意する。
- ForgeはSudo passwordがたまに求めらるが、サイト上からは見れない。provisioning時のメールにある。最初わからなすぎてパニクった。
- Digital Oceanはサーバーのバックアップを1週間ごとに取ってくれる。外部サービス使えば、毎日バックアップしてくれます。
- DOは、managed Database (RDSのパクリ)、 Spaceというオブジェクトストレージ(S3のパクリ)を持っています。この二つは安いのに超便利。 これ以外にもロードバランサーやちょっとしたサーバー監視ツールもある。小規模サービスであればAWS出なくても、DOで十分に事足ります。
- Digital Oceanに関してはこの記事がよく説明されています。https://nekonenene.hatenablog.com/entry/hello-digitalocean
まとめ
forgeとDigital oceanを使えば、簡単にサーバー構築が出来ます。二つとも海外のサービスなので、基本英語。なので、最初はとっつきにくいです。ただ、その分ネットに情報はたくさんあるし、わかってくれば使いこなせます。
forge のキャッチコピーはServer management doesn't have to be a nightmare.
直訳すると「サーバー管理は悪夢である必要がありません」という意味です。 そのコピーの通り、誰でも簡単に操作できるし、楽に管理できます!
価格も安いし、ぜひ、使ってみてくださいねー!
Advent Calendar 9日目でした。
明日10日目は Hiroaki Moriyamaさんによる記事を乞うご期待!
https://adventar.org/calendars/4548