見出し画像

UnityとAWSのDynamoDBを繋げてみた(基礎知識編)

Unityで作成した3Dランゲームのスコアを、AWSのDynamoDBに保存してみたので備忘録として書き留めておきます。
まずは基礎知識編ということでかなり基礎的な内容から記述しています。
目次を見て、もうそんなこと知ってるよ!と思った人は後日公開予定の環境構築編、実装編からご覧いただければと思います。



Unityとは?AWSとは?

かなり初歩的な内容ですが、まだエンジニアになって3カ月目なのでこのへんからしっかりおさらいしておこうと思います。

◎Unity(ゲームエンジン)とは

Unity(Unity3D)は、Unity Technologies(日本法人はユニティ・テクノロジーズ・ジャパン株式会社)が開発・販売している、IDEを内蔵するゲームエンジンである。主にC#を用いたプログラミングでコンテンツの開発が可能である。

https://ja.wikipedia.org/wiki/Unity_(%E3%82%B2%E3%83%BC%E3%83%A0%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3)

簡単に言えば、C#等の言語を使って2Dや3Dのゲームが開発できる開発環境がUnityですよ~ということですね!
かの有名な「Pokemon GO」や「どうぶつの森 ポケットキャンプ」などもUnityを使って開発されているそうです。
もちろんスマホ向けアプリだけではなく、PC向けや家庭用ゲーム機も開発ができます。万能ですね。

◎AWSとは

Amazon Web Services(アマゾン ウェブ サービス、略称:AWS)とは、Amazon Web Services, Inc. により提供されるクラウドコンピューティングサービスである。2006年にサービス提供が開始され、IaaS における世界的シェアが39%で1位。世界で数百万以上、日本国内においても数十万を超える顧客が AWS を利用している。

https://ja.wikipedia.org/wiki/Amazon_Web_Services

AWSはAmazonが提供しているかなり大規模なクラウドサービスで、現在世界中でシェアされています。
Amazonほどの大企業になるとセキュリティやその規模等の観点からオンプレミスな利用形態で業務を行っていることがほとんどです。
しかし、Amazonはクリスマスやお正月などの繁忙期以外は自社の実機を持て余していたそうで、そこを新たなビジネスにできないかと着目し現在のAWSができたというわけだそうです。
(文中のクラウドとオンプレミスについては後日まとめようと思います。)


AWSってどんなサービス?

では具体的にAWSとはどういったサービスなのか、またどんなサービスを提供しているのかみていきたいと思います。

◎AWSの利用方法

AWSアカウントの作成手順は公式様(https://aws.amazon.com/jp/getting-started/)に詳しく載っているので割愛します。

かなりザックリ説明すると以下の手順でAWSを利用できます。
①AWSを利用するためのアカウントを作成
②利用したいサービスを選び利用する

AWSは世界的に利用されているサービスということもあり、アカウント自体は比較的簡単に作成できますが、セキュリティ面は気を付けた方がいいポイントが非常に多いです・・。
少し面倒ですが、サービス利用前にはそういったセキュリティ面について調べ、設定してからのご利用をおすすめします。
個人的に分かりやすかったサイト様も以下に共有しておきますので、ぜひ参考にしてみてください。


◎料金形態

続いてAWSの料金形態です。
AWSは従量課金制のため利用した分に応じて毎月課金されていきます。
しかし、無料利用枠というものが存在しますので、この範囲内の利用であればずっと0円でクラウドサービスの利用が可能です。
ただし、この無料利用枠もアカウント登録から12カ月間無料・永年無料・トライアルと3種類に分かれているので注意が必要です。
今回記事を書くにあたって無料枠を一通り見てみましたが、お試し程度に利用するくらいであれば恐らくほとんどのサービスは無料で利用できるのではないかなと感じました。

コスト管理などについては以下のサイト様がわかりやすかったため、ぜひ参考にしてください。


😥失敗談~説明はきちんと読もう~

少し番外編ということで、ここからは料金に関する私の失敗談となります。(本編とは関係ありませんので、読み飛ばしていただいて構わないです!)

先ほど従量課金制について記載していた途中で思い出したのですが、AWSを利用するために様々な設定をしていたところ、「最初に登録しておいた方がいいAWSサービス」というものを記載してくださっているサイトがありました。
これは登録せねば!と順番にポチポチ設定を進めていき、設定も後半に差し掛かった時「Amazon Config」というサービスの案内がありました。
アカウント登録から始まりその他諸々設定をするために、ガイダンス的なものを大量に読んでいたので、この時の私は正直少し疲れてしまっていたんですね。
疲れたなら少し休憩すれば良かった話なのですが「まぁどうせこれも無料枠だろうし、早く設定終わらせたいし!」という思いから、適当にホイホイとAmazon Configを利用開始しちゃいました。
すると翌月には0.14$が課金されてしまっていて・・自分が悪いとはいえ使った覚えがないサービスだったので、クレジットカードの明細を見てもう目が点ですよね。
幸い私の場合は利用もあまりなかったので、少額課金で済みまだマシだったのですが、簡単に課金されてしまうことに当時は少し驚きました。笑
とまぁ、当たり前ですがこういったサービス利用前はきちんと説明を読むことが大切ということと、疲れた時は少し休むことが大切だと痛感しましたね😂

ちなみにAWSには、料金がかかってしまった時に通知が来るよう設定できるサービスもありますので、こういう失敗をしてしまいそうな私のような人は、登録しておくことをオススメします・・!笑
では、本編に戻りましょう!

◎どんなサービスがあるの?

では、ここからがAWSの本題です。
ここまでいろいろなことを記載してきましたが、ここからは「AWSって具体的にはどんなことに利用できるの?」ということを紹介していきたいと思います。
・・と思ったのですが、とても膨大なサービス数のため今回は私が使ったサービスのみ紹介させていただき、残りは以下サイトを参考にしていただければと思います。


今回利用したサービス

①API Gateway

まず1つ目はAPI Gatewayというものです。
APIはプログラム間のインターフェースとして、クライアントからのリクエストに対しレスポンスを返す役割を担っています。
そのAPIの作成から監視・保護・管理まで全てひとまとめにして利用できるのが、このAPI Gatewayです。
1つのサービスに対し1つのセキュリティを設定するよりも、API Gatewayにセキュリティを設定してしまえば、API Gatewayを通して利用するサービスは比較的安全に利用できるのが楽だなーと思いました。

②Lambda

2つ目は関数をクラウド上に定義し、インターネット上でコードを実行できるLambda(ラムダ)というサービス。
PythonやNode.jsなどいろんな言語で自由に記述ができ、通常の環境で記述するのとそこまで変わらないなという印象です。
サーバレスでセキュリティ面も◎な一方、処理時間や処理実行数に制限があるところは注意が必要ですね。

③DynamoDB

そして最後に3つ目のDynamoDB(ダイナモDB)。
こちらはサーバーレス NoSQL フルマネージドデータベースです。
頭に疑問符が浮かんだ方もいらっしゃるかと思うので、分解して見ていきたいと思います。
まずサーバレスはその名の通りですが、その次の「NoSQL」
基本情報の勉強をするとこの用語が出てくるので、初学者であってもこの用語が分かる方は多いのではないでしょうか?
NoSQLとは「SQLを使わないよ」ということではなく、「SQL以外も使えるよ」という意味です。SQLだけではなく、さまざまな言語やインターフェースが使えるよということですね。
このNoSQLのデータベースタイプにはいろいろ種類がありますが、DynamoDBはkey-valueとドキュメントデータモデルをサポートしています。
そして、こういったデータベースの運用・保守など面倒な部分をAmazonに任せちゃうよ~というのがフルマネージドです。

以上をまとめると、「サーバレスでSQL以外も使えるDBが作れるよ。でも作ったDBの運用保守はAmazonさんお願いね!」というのがDynamoDBの正体でしょうか。

基礎知識編のまとめ

基礎知識編だけで3000字弱になってしまいましたが、以上で大体基礎的な知識はつけられたかと思います。
自分の知識と公式の文言を照らし合わせ、なるべく誤りがないように記載しておりますが、私自身も初学者ゆえに間違っているところがあるかもしれません。
「ん?」と思った点は自分で調べていただき、もし記載内容に誤りがあった時はご指摘いただけますと幸いです。
ではまた、環境構築編でお会いしましょう。

この記事が気に入ったらサポートをしてみませんか?