AWS基礎入門チュートリアル – サンプルWebアプリケーション mini Twitter 作成編

  • このエントリーをはてなブックマークに追加

チュートリアルをすすめるにあたり様々なクラウドサービスを利用していきますが、ベースとなるアプリケーションがあると理解が進みやすいと思います。 そこでサンプルアプリケーションとして簡易的な Twitter を作ります。

AWS チュートリアルについて

このページは AWS基礎入門チュートリアル の一部です。 AWS チュートリアル全体は AWS基礎入門チュートリアルを参照してください。

簡易的な Twitter 実装

サンプルアプリケーションとして簡易的な Twitter を作ります。 まずは低機能な下記を実装します。

  • 直近ツイート (メッセージ) 5件を表示する。
  • 新規ツイートを行うことができる。
  • ツイートはファイルに保存する。
  • ユーザ・アカウントの概念は (まだ) ない。

ざっと殴り書いた PHP ソースは下記です。 MVC もオブジェクト指向も無縁のソースですが、 短く書くためにあえてそういうふうに書いてます。 いつもはもうちょっとマシなソース書きます。ほんとです。

minitwitter.php

上記ソースを /var/www/html/ に保存してください。 そして root にて、tweets.txt というファイルを作成し、 Web サーバから更新可能なようパーミッションを設定してください。

% sudo su -
# cd /var/www/html/
# touch tweets.txt
# chmod 666 tweets.txt

実行サンプル

下記 URL にアクセスしてください。

  • http://[EC2のパブリックIPアドレス]/minitwitter.php

初期表示は下記のようになります。

いくつかメッセージを投稿した状態が下記です。

tweets.txt がない、またはパーミッションがおかしい場合、 エラーを表示するという親切設計です。

このアプリケーションをリリースして、世の中の何百万人・何千万人に使ってもらいたいとなった場合、 1つの EC2 インスタンスでさばききれないことはあきらかです。 多くのリクエストをさばくには、複数台構成にする必要があります。

では EC2 を 2台構成にすればよいかというと、 現在のアプリケーションではファイルに保存しているため、 複数台の EC2 よりツイート情報を取得することが難しい状態です。

というわけで、負荷分散を見据えて、ファイル管理をやめてデータベースで管理するようにしましょう。 ここでは RDS というサービスを使ってみます。

また、念のため本プログラムのよくない点を書いておきますが、サンプルプログラムなのでご容赦を。

  • エラー情報をブラウザに表示するのは、攻撃者へのヒントを提供していることになりますので、本来はよろしくありません。
  • データファイル (tweets.txt) をブラウザから参照可能な領域に置くのは、本来はよろしくありません。
  • パーミッションを 666 にするのはよろしくありません。
  • 排他処理をしていないため、新規メッセージ登録を連続して行うと、ファイルが壊れると思います。

次に RDS インスタンス作成 を行います。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

Leave a Reply

*

CAPTCHA