AWSでLAMP環境構築①
AWSを今更ながら使ってみる。
今回作りたいのはこんな環境
※GPXは緯度経度の情報を含んだファイルの形式
サーバ名 | 役割 | CPU | Memory | ディスク容量 | 備考 |
---|---|---|---|---|---|
web01 | Webサーバ | 2 | 4 | EBSonly | t2.medium |
web02 | Webサーバ | 2 | 4 | EBSonly | t2.medium |
api01 | APIサーバ | 2 | 4 | EBSonly | t2.medium |
api01 | APIサーバ | 2 | 4 | EBSonly | t2.medium |
mdb01 | マスターDBサーバ | 2 | 4 | EBSonly | db.t2.medium |
sdb01 | マスターDBサーバ | 2 | 4 | EBSonly | db.t2.medium |
web | テストWebサーバ | 1 | 1 | EBSonly | t2.small |
api | テストapiサーバ | 1 | 1 | EBSonly | t2.small |
db | テストdbサーバ | 1 | 1 | EBSonly | db.t2.small |
tool | toolサーバ | 1 | 1 | EBSonly | t2.small |
lb | ロードバランサー | - | - | - | Elastic Load Balancing |
と思ったが。
初期ロンチにしては費用が。。。
ということで初期は以下の構成のセットアップをする。
サーバ名 | 役割 | CPU | Memory | ディスク容量 | 備考 |
---|---|---|---|---|---|
web01 | Webサーバ | 1 | 2 | EBSonly | t2.small/nginxのリバースプロキシー |
web02 | Webサーバ | 1 | 2 | EBSonly | t2.small |
db01 | DBサーバ | 1 | 2 | EBSonly | t2.small |
web/api/db/tool | テストサーバ | 1 | 1 | EBSonly | t2.micro |
数値集計がめんどい②
前回の記事からの続き。
まあ、単純に以下の方法で検討。
①実際にログイン処理を行いながらログを監視
②プログラムで処理を再現
結論からいくと以下のような感じでした。
①https://dev.flurry.com/secure/loginAction.doにID,PASSを送信
②かえってきたcookieを保存
③cookie情報をセットしhttps://dev.flurry.com/fullPageTakeover.do?originalTarget=&defaultTarget=%2Fhome.doへアクセス
あとは、cookie情報をセットして取得したいイベントのcsvファイルのダウンロードURLを順番にコールするだけ。
数値集計がめんどい①
某アプリのPMを担当しています。
数値を集計して、解析し課題点を洗い出す。
この「課題点を洗い出す」が思っているより難しい。
そして...数値集計に恐ろしく時間がかかるしめんどい!
具体的にはFlurryというツールを利用している。
これは新規ダウンロード数やアクティブユーザ数の他に継続率などもとれてかなり便利。ただ、APIがまだまだしょぼい。大きなところはこんな感じ。
1.1秒に1回しかアクセス出来ない
⇒それでさえもTooManyAccessになることがある
2.いろいろ出来るようで出来ない
⇒Webツール上で出来ることが実は出来ない。例えば国別絞りこみとか。
ということで、今は1つ1つcsvファイルでダウンロードして解析している....
単純作業はプログラムで置き換えるのがエンジニア。
ということで、この作業を効率的に行えるプログラムを検討する。
まずはURLのパラメータを調査した。
イベント系URL
キー名 | 説明 |
---|---|
projectID | プロジェクトID |
versionCut | バージョン絞り込み |
intervalCut | 集計期間 |
segmentID | セグメントID |
channelID | チャネルID |
networkId | ネットワークID |
eventID | イベントID |
zoom | 表示期間 |
USAGE系URL
キー名 | 説明 |
---|---|
projectID | プロジェクトID |
versionCut | バージョン絞り込み |
intervalCut | 集計期間 |
segmentID | セグメントID |
channelID | チャネルID |
networkId | ネットワークID |
canCalculateHourly | 不明 |
canCalculateDayparting | 不明 |
zoom | 表示期間 |
※intarvalCutのフォーマット
allTime・・・全ての期間
7Days・・・一週間
30Days・・・一ヶ月
365Days・・・一年間
customIntervalyyyy_mm_dd-yyyy_mm_dd・・・指定期間
次回はどうやってダウンロードするか。