
マイケル
さあソシャゲ作るぞ〜〜〜!!!

エレキベア
相変わらず唐突クマね・・・。
そもそもソシャゲって何クマか
そもそもソシャゲって何クマか

マイケル
ソシャゲの定義も曖昧なところではあるけど、
- クライアント、サーバで連携しDB管理を行なっている
- ログイン、ガチャ等基本機能を備えている
システムを作ってみようと思っているよ!

エレキベア
なるほどクマ・・・。
確かにそこまで作れたら楽しそうクマ
確かにそこまで作れたら楽しそうクマ

マイケル
サーバとの連携周りを習得したらいろいろと応用が効きそうだしね!
さっそくやっていこう!!
さっそくやっていこう!!

エレキベア
クマ〜〜〜〜〜〜
参考書籍

マイケル
開発を進めるにあたって、
参考にした書籍はこちらになります!
参考にした書籍はこちらになります!

エレキベア
ちょうどいいのがあったクマね

マイケル
うん!
だけどレビュー見たら分かる通り、DB周りの話が多く、
エンジニア向けの内容になっているので注意です・・・。
だけどレビュー見たら分かる通り、DB周りの話が多く、
エンジニア向けの内容になっているので注意です・・・。

エレキベア
ソシャゲの特性上仕方ないクマね〜〜

マイケル
しかし、これをクリアした頃にはかなりスキルの幅は広がっているはず!
一緒にがんばっていきましょう!!
一緒にがんばっていきましょう!!

エレキベア
なんでもかかってくるクマ!!
全体構成

マイケル
ざっくりとした全体構成はこんな感じです!
[サーバ側]
フレームワーク:Laravel (PHP)
データベース:MySQL
[クライアント側]
フレームワーク:Unity (C#)
データベース:SQLite

マイケル
クライアントはお馴染みのUnity!
サーバ側ではLaravelというPHPフレームワークを使用します!
サーバ側ではLaravelというPHPフレームワークを使用します!

エレキベア
なんでクライアント側にもデータベースがあるクマ??

マイケル
ログイン情報や課金情報などゲーム全体に関わるデータはサーバ側、
ソート順などクライアントの依存する情報はクライアント側
に保存するようなイメージだよ!
ソート順などクライアントの依存する情報はクライアント側
に保存するようなイメージだよ!

エレキベア
なるほどクマ
それぞれ管理するべきデータがあるクマね
それぞれ管理するべきデータがあるクマね

マイケル
サーバに関しては、XServerやロリポップ!などいろいろな種類があるけど、
今回は書籍の例に沿ってAWS(Amazon Web Service)を使って環境を構築しようと思うよ!
今回は書籍の例に沿ってAWS(Amazon Web Service)を使って環境を構築しようと思うよ!

エレキベア
最近流行りのやつクマね

マイケル
仕事でもなかなか触る機会がないから使ってみたかったんだよね。
PHPも書いたことないから初めてのことだらけだぜ!
PHPも書いたことないから初めてのことだらけだぜ!

エレキベア
(書いたことなかったクマか・・・。)

マイケル
とにかく何事も挑戦あるのみだ!!
さっそく環境を構築してみよう!
さっそく環境を構築してみよう!

エレキベア
クマ〜〜〜〜〜〜〜
サーバサイド環境構築

マイケル
長編の企画になりそうですが、
今回は第一回ということで、サーバ側の環境構築を行なっていきます!
今回は第一回ということで、サーバ側の環境構築を行なっていきます!

エレキベア
楽しみクマ〜〜〜〜〜

マイケル
まずはサーバを準備するために、下記よりAWSアカウントを作成しましょう!

↑AWS公式サイト

マイケル
現在、12ヶ月間は無料で使用できる無料枠があるようなので、
少なくとも個人で勉強する分には無料で使用できそうです。
少なくとも個人で勉強する分には無料で使用できそうです。

エレキベア
太っ腹クマね〜〜〜〜
サーバ環境設定
・EC2インスタンスの作成

マイケル
アカウントを作成したら、サーバを準備していきましょう。
EC2を選択して、インスタンスを起動よりEC2インスタンスを作成しましょう!
EC2を選択して、インスタンスを起動よりEC2インスタンスを作成しましょう!
↑EC2インスタンスの作成

マイケル
無料枠の中から選んで、今回は下記の設定で作成しました!
プラットフォーム:Amazon Linux
インスタンスタイプ:t2.micro
↑インスタンスの設定

マイケル
なお、途中でキーペアの作成を促されますが
後々SSH接続するために使用するため、忘れず保存しておきましょう!
後々SSH接続するために使用するため、忘れず保存しておきましょう!

エレキベア
秘密鍵ってやつクマね

マイケル
そしてHTTP接続するために、
セキュリティグループ -> インバウンドルール
の設定よりポートを開けておきましょう!
セキュリティグループ -> インバウンドルール
の設定よりポートを開けておきましょう!

エレキベア
準備完了クマ〜〜〜〜〜〜
・SSH接続

マイケル
サーバを準備したらSSH接続ができるか試してみましょう!
先ほど保存したキーペアを使用して下記コマンドを実行します!
先ほど保存したキーペアを使用して下記コマンドを実行します!
↑パーミッションの設定
↑SSH接続

マイケル
こんな感じでログインできればOKです!

エレキベア
簡単に準備できたクマ〜〜〜〜
・ライブラリのインストール

マイケル
SSHで接続した後、必要なライブラリを準備しておきましょう!

マイケル
下記コマンドで、ApacheとMySQLをインストールしましょう!
↑ApacheとMySQLのインストール

マイケル
インストールしたら下記コマンドでApacheを起動後、
http://【サーバのIPアドレス】
にアクセスしてみましょう!
http://【サーバのIPアドレス】
にアクセスしてみましょう!
↑Apacheの起動

マイケル
上記のようなテストページが表示されれば導入はバッチリです!

エレキベア
なんとかできたクマ〜〜〜〜〜
DB環境設定
・RDSの作成

マイケル
サーバの環境設定が完了したら、次はDB環境の設定です!
AWSのページでRDSを選択し、データベースを作成ボタンより
DBの作成を行いましょう!
AWSのページでRDSを選択し、データベースを作成ボタンより
DBの作成を行いましょう!
↑データベースの作成

マイケル
こちらも無料枠を使用し、作成情報は下記の通り!
また途中で入力するユーザとパスワードはDBのログインに使用するので
メモをしておきましょう!
また途中で入力するユーザとパスワードはDBのログインに使用するので
メモをしておきましょう!
エンジン:MySQL Community

マイケル
DBを作成したら、サーバの時と同様
セキュリティグループ -> インバウンドルール
より、「MYSQL/Aurora」のポートを開けておきましょう!
セキュリティグループ -> インバウンドルール
より、「MYSQL/Aurora」のポートを開けておきましょう!

エレキベア
DBも完了クマ〜〜〜〜〜〜!!
・DBアクセス

マイケル
作成が完了したら下記コマンドで接続とデータベース作成を試してみましょう!
↑MySQL接続
↑データベース作成、表示

マイケル
こんな感じで実行できれば設定はオーケーです!

エレキベア
なんとかDBまでできたクマね
PHP環境設定

マイケル
最後にPHPとフレームワークの導入を行いましょう!

エレキベア
あと一息クマね
・PHPの導入

マイケル
まずはPHPをインストールしましょう!
ここではLTS版として提供されているバージョン7.2を
「amazon-linux-extras」経由でインストールします!
ここではLTS版として提供されているバージョン7.2を
「amazon-linux-extras」経由でインストールします!

マイケル
これでPHPの導入は完了ですが、
「php-mbstring」等、一部ライブラリが足りずにLaravelの実行ができないため、
下記コマンドで不足ライブラリをインストールしましょう!
「php-mbstring」等、一部ライブラリが足りずにLaravelの実行ができないため、
下記コマンドで不足ライブラリをインストールしましょう!

マイケル
インストール後は、サーバーを再起動させておきましょう!
詳細は、下記のサイトがわかりやすくまとまっていたのでご参照ください。
詳細は、下記のサイトがわかりやすくまとまっていたのでご参照ください。
参考:
Amazon linux2でphp-mbstring有効化

エレキベア
次はLaravelクマ〜〜〜〜
・Laravelの導入

マイケル
PHPを導入したらフレームワークのLaravelを導入します!
LaravelはPHP管理パッケージのComposer経由で使用するため、
下記コマンドでComposerをインストールします!
LaravelはPHP管理パッケージのComposer経由で使用するため、
下記コマンドでComposerをインストールします!
↑Composerのインストール

マイケル
Composerをインストールしたら、下記コマンドでLaravelのプロジェクトを作成してみましょう!

マイケル
作成したいプロジェクト名と、Laravelのバージョン(例:5.5、6.0など)を指定しましょう。
↑Laravelプロジェクトの作成

マイケル
そしてHTTPでのデフォルトの接続をLaravelプロジェクトにするため、
/etc/httpd/conf 配下にある、
hotted.conf 内の下記部分を修正・追加しましょう!
/etc/httpd/conf 配下にある、
hotted.conf 内の下記部分を修正・追加しましょう!

マイケル
それからもう一つ、プロジェクト配下に作成された「.env」ファイルの
下記DB情報に、作成したDB名やユーザ・パスワードを設定しましょう!
下記DB情報に、作成したDB名やユーザ・パスワードを設定しましょう!

エレキベア
これでプロジェクトにつながるようになったクマね

マイケル
その通り!
下記コマンドでApacheを再起動して
http://【サーバのIPアドレス】
にアクセスしてみましょう!
下記コマンドでApacheを再起動して
http://【サーバのIPアドレス】
にアクセスしてみましょう!
↑Apacheの再起動

マイケル
上記のようなLaravelのページが表示されれば導入は完了です!

エレキベア
ついにプロジェクトができたクマ〜〜〜!

マイケル
うまく表示されない場合はPHPのパッケージ周りや、httpd.confの設定を見直してみましょう!
おわりに

マイケル
というわけで今回はサーバ側の環境構築だったけどどうだったかな?

エレキベア
サーバと聞くと難しそうクマが、
数クリックでサーバ立ち上げまでできて完了だったクマ!
数クリックでサーバ立ち上げまでできて完了だったクマ!

マイケル
そのへんはさすがAWSだよね!
個人だとなかなかサーバ環境まで設定したりしないから新鮮だったね!
個人だとなかなかサーバ環境まで設定したりしないから新鮮だったね!

マイケル
しかし続きはLaravelの基本的な使い方を勉強してから進めたいと思います・・・。

エレキベア
PHPも触ったことないんじゃさすがに厳しいクマね
でも何にせよ楽しみクマね
でも何にせよ楽しみクマね

マイケル
まあ、気長にやっていこう!
それでは今日はこの辺で!アデュー!!
それでは今日はこの辺で!アデュー!!

エレキベア
クマ〜〜〜〜〜
【Unity】ソーシャルゲームを作る 〜サーバの環境構築〜【AWS × Laravel】 〜完〜