概要
AWS上で簡単なサイトを作って公開しています。
恥ずかしながら、レンタルサーバ以外で初めてちゃんとサイトを公開しました。
あとで思い出して恥ずかしい思いをするために、以下を書いておきます。
整理はされていませんが。
- サイトの構成
- 苦労した、してる所
- 嬉しかった所
- これからやりたいこと
以下は当サイトのコンテンツです。
「動物はあなたのごはんじゃない」ジェネレータ
http://betahikaru.com/notfood/「よく使うハンドサイン」ジェネレータ
http://betahikaru.com/handsign/
現在の構成
- ソースはBitbucketのプライベートリポジトリに保存。
読み取り専用ユーザのキーを本番サーバにおいて、
git clone origin master && ./deploy.sh
してる。
リポジトリをそのままDocumentRootにすると.gitファイルとかのゴミが見えそうで嫌なので、シェルスクリプトで必要なファイルだけコピーしてる。
- 本番サーバと開発サーバに、EC2のAmazon Linuxを利用。
ソースをどうMacとEC2でやり取りするか悩んでる。
rsyncでいいでしょとは思うが、変更してコマンド実行するのが何かめんどくさい。
変更にフックして実行するとか、Grunt使えば実は出来る?
今は、一人しか使わないのをいい事に、とにかくcommit・push・pullすることでソースを転送している。
疎通とおらないソースをcommitというのが自分の中でかなり気持ち悪い。
- 他、前書いた記事から変化なし。
苦労した、してる所
- 本番サーバからイメージを作ろうとしたら、OSが再起動しちゃった。
(その頃は誰もアクセスしてなかったけど) サービス停止しちゃいました。当たり前ですが。
あらかじめある程度環境構築したAMIを作っておき、そこからソースを取得してデプロイする。ロードバランサに新しいのを追加して、古いのを削除する。というところまでは来た。
固有の情報とか無いので、古いイメージは捨てちゃってます。
- httpdの設定を直接修正したりとかしたので、本番サーバと開発サーバの動きが何か違う。。
これは未だにそうなってる。
一応chefでそれっぽい状態まで環境設定するサンプルは作れたんだけど、Bitbucketに接続するキーは最初のイメージにおいておくの?とか、(開発中機能だが)S3にアクセスするための情報はレポジトリに入れれないから、どのタイミングで入れるの?とかで、詰まって今放置中。
rebuild.fm/14/で言ってた3つの階層とかってこういう事なんだろうか。
結局ソースと同じリポジトリに設定ファイルを置いて、手でチマチマ設定反映するという原始的な状態。
- 自分が見てないときにちゃんとアクセス処理できてるかどうか分からない
性能テストはしていないです。
EC2のt1.microインスタンスで、httpdで、Google Analyticsによると多くても毎時30アクセス程度なので、余裕だと思いますが。
- Canvasのマルチブラウザ対応
macとios7のChromeとSafariだけテストしとけば大丈夫だろー。と思ったら、
Twitterから開いたらブラウザがSafari(in-app)になってタップしたら画像がダウンロードできなかったり、
MacのFirefoxで(DataURL使ってる)画像タップしたらフリーズしたり、
Google Analyticsみたら結構IEとかOperaとかいたりで、
大変だなーと思いました。
- 何らかのフレームワークを使いたいが、学習が追いつかない。
平日は1h程度。土日は疲れでぐったり。。。
なんとかしないと。
嬉しかった所
- gitが使える。
会社では使えないので。
- AWSが使える。
同上。
- tigの価値に気づけた。
SourceTreeでよくね?と思っていたが、本番サーバ上で
git log
を見るのが凄く楽になった。
- ひとりでPull-Requestとかして遊べる。
トピックブランチ->developブランチにプルリクみたいな。
自分で却下してみたりとか。
- Gigazineでサイトが紹介された(驚愕)
ページのすっごい下の方で紹介されただけなのに、アクセス数が急増(もとは0に近いから当たり前とはいえ)。
日本以外からのアクセスが増えた。
検索サイトからの流入がでてきた。
Google検索4/14時点で、「よく使うハンドサイン ジェネレータ」の2番目、「動物はあなたのごはんじゃない ジェネレータ」の1番目になった。
- 自分の作ったサイトで作った画像がTwitterに流れてるのを見た。
数人ですが、嬉しいですね。
rebuild.fmの各回で気に入った文言を「動物はあなたのごはんじゃない」ジェネレータで画像化するのがマイブームです。
まだ2回くらいしかやってないけど。
これからやりたいこと
- サイトの利便性向上
- マルチブラウザ対応(IEがなにげにアクセス多いため)
- ネタ画像ジェネレータで生成したものを、S3に保存して、直接twitterに投稿出来るようにする。
- ファイルアップロードに対応する。(現在画像URLを指定してもらってるので…)
- 開発、運用効率向上
- ソース変更->動作確認(テスト)-> コミット->公開までの流れをスムースに。
- EC2インスタンスの起動停止、LBSへの割当などを、AWSのAPIで自動化したい。AWS CLIでシェルスクリプト組めばとりあえずは行けそう。
- その他、山ほど。
- ログ解析。
- 環境構築自動化(Chef)
- ローカルマシン上でVMあげてテスト(OSをAmazonLinuxからCentOSに切り替える。)
- デザインをなんとかする。。
- and more…
以上