こんにちは。ネクストスケープの松永です。
さて、前回おもむろにはじめました、サービスから考えるAWS。
今回はサービス案に対するAWSの構成を考えていきましょう。
まずはおさらいです。
前野のシステム案:
- コメントについては、Twitterを使用することにする。
- お店のお客様にはTwitterに特定のハッシュタグを付与してつぶやいてもらう。
- TwitterのツイートをAPIで取得して、画面に表示させていく。
- なるべく工数は抑える。
前野君はお祝いの言葉をTwitterを利用してつぶやいてもらい、そのツイートを取得して、画面に表示させようと考えました。
お店に映すのはプロジェクターを使えばなんとかなりそうなので、これで元同僚である店長の要望は満たせそうです。
ツイートを簡単に検索して取得できるAPI
TwitterはAPIを提供しており、開発者登録をすることで、そのAPIが利用できるようになります。
「Twitter API」と調べると、実装方法などいろいろと出てきますので、是非見てみて下さい。
さて、このAPIですが、検索したい文字(今回は特定のハッシュタグですね。)をパラメータにセットして、
APIを実行すると、値がJSON形式で返ってきます。
このJSON形式の値をパースしてあげればツイートが取得できます。
システムのフローを整理する。
ここまでを整理すると以下の様な流れになると思います。
①来店したお客様にTwitterに特定のハッシュタグをつけて、つぶやいてもらう。
↓
②Twitter APIを定期的に実行しハッシュタグのツイートを取り出す。
↓
③取り出したツイートを画面上に表示させる。
本当はもっといろいろなパターンを考える必要はありますが、ざっくりとはこの流れになります。
ここでわかることが一つあります。
それは、データベースは不要ということです。
ツイートは常にお店に流れる形にするので、ツイートを保存する機能は必要ありません。
もちろん、高機能になればデータベースはあってしかるべきだとは思いますが、今回はあくまで工数を抑えるのが目的ですので、これで充分だと思います。
さてここまでで、システムの大枠はつかめました。
では、これに合うAWSの構成はどのようにすればよいでしょうか。
まず、EC2を使おう。
私でしたら、このシステムではEC2のインスタンス一台のみを構成します。
余計なものはいりません。EC2だけで今回の要件は満たせます。
(もしAWSに長けた人であれば、AWS LambdaとS3を使って、サーバーレスアーキテクチャに挑戦してもよいかもしれませんが。)
EC2はWebサーバーですが、OS、CPUとわりと自由に選べることができます。
もちろんクラウドであること以外は、既存のオンプレミスなサーバーと変わりありませんから、サーバーの中にDBを立てることができます。
ですから、少人数が利用するサービスであれば、EC2インスタンス1台で、ある程度まで運用することは可能でしょう。
では、どのようなEC2の設定にすればよいのか?
それは次回にお話ししたいと思います。