NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

サービスから考えるAWS構成案② -オールラウンダー。その名もEC2

こんにちは。ネクストスケープの松永です。

 
さて、前回おもむろにはじめました、サービスから考えるAWS。
 
今回はサービス案に対するAWSの構成を考えていきましょう。
 
まずはおさらいです。



前野のシステム案:
  • コメントについては、Twitterを使用することにする。
  • お店のお客様にはTwitterに特定のハッシュタグを付与してつぶやいてもらう。
  • TwitterのツイートをAPIで取得して、画面に表示させていく。
  • なるべく工数は抑える。
 
前野君はお祝いの言葉をTwitterを利用してつぶやいてもらい、そのツイートを取得して、画面に表示させようと考えました。
お店に映すのはプロジェクターを使えばなんとかなりそうなので、これで元同僚である店長の要望は満たせそうです。

ツイートを簡単に検索して取得できるAPI

f:id:nextscape_blog:20210910124350p:plain

TwitterはAPIを提供しており、開発者登録をすることで、そのAPIが利用できるようになります。
 
 
「Twitter API」と調べると、実装方法などいろいろと出てきますので、是非見てみて下さい。
 
さて、このAPIですが、検索したい文字(今回は特定のハッシュタグですね。)をパラメータにセットして、
APIを実行すると、値がJSON形式で返ってきます。
 

このJSON形式の値をパースしてあげればツイートが取得できます。

システムのフローを整理する。

 
ここまでを整理すると以下の様な流れになると思います。

①来店したお客様にTwitterに特定のハッシュタグをつけて、つぶやいてもらう。
       ↓
②Twitter APIを定期的に実行しハッシュタグのツイートを取り出す。
       ↓
③取り出したツイートを画面上に表示させる。
 
本当はもっといろいろなパターンを考える必要はありますが、ざっくりとはこの流れになります。
 
ここでわかることが一つあります。
 
それは、データベースは不要ということです。
 
ツイートは常にお店に流れる形にするので、ツイートを保存する機能は必要ありません。
 
もちろん、高機能になればデータベースはあってしかるべきだとは思いますが、今回はあくまで工数を抑えるのが目的ですので、これで充分だと思います。
 
さてここまでで、システムの大枠はつかめました。
 

では、これに合うAWSの構成はどのようにすればよいでしょうか。

まず、EC2を使おう。

f:id:nextscape_blog:20210910124833p:plain

私でしたら、このシステムではEC2のインスタンス一台のみを構成します。
 
余計なものはいりません。EC2だけで今回の要件は満たせます。
(もしAWSに長けた人であれば、AWS LambdaとS3を使って、サーバーレスアーキテクチャに挑戦してもよいかもしれませんが。)
 
EC2はWebサーバーですが、OS、CPUとわりと自由に選べることができます。
 
もちろんクラウドであること以外は、既存のオンプレミスなサーバーと変わりありませんから、サーバーの中にDBを立てることができます。
 
ですから、少人数が利用するサービスであれば、EC2インスタンス1台で、ある程度まで運用することは可能でしょう。
 
では、どのようなEC2の設定にすればよいのか?
 
それは次回にお話ししたいと思います。