Heroku add-onのMongoHQでMongoDBを管理する方法
以下の2通りの方法があります。前者は通常のMongoDBと同様なのでこの記事では割愛して、後者のMongoHQのWebコンソールによる管理方法を紹介します。
ターミナルから
mongo
コマンドで接続して管理- MongoHQから提供されたインスタンスのURLに接続します。通常のMongoDB管理と同様なので割愛します。
MongoHQのWebコンソールで管理
- 以下で説明します。
1.MongoHQのダッシュボードへログイン
以下の画面は無料プランのSandbox環境です。有料プランのダッシュボードはより高機能になります。
herokuのWebコンソールの各アプリのAdd-on管理画面でMongo HQをクリックするとMongo HQのWebコンソールに遷移します。
2.Admin画面
接続先URLの確認、ディスク使用状況確認、ユーザ管理などが行えます。
3.Collection画面
クエリ実行、ドキュメント追加
コレクションの統計閲覧・追加・削除・名前変更
インデックス管理
以上
MongoDBとPythonを使ったWebアプリをHerokuで無料で運用する
はじめに
MongoDBとPythonで開発したWebアプリをHerokuで運用してみます。MongoDBの運用にはMongoDBホスティングサービスのMongoHQを使い、PythonのWeb Application Frameworkは軽量なBottleを使います。HerokuのようなPaaSやMongoHQ/MongoLabのようなDBaaSを使えば、IaaSよりも短期間で楽にアプリを公開できます。
HerokuにWebアプリをデプロイ
アプリのローカルgitリポジトリ作成
mkdir アプリ名 cd アプリ名 git init git add . git commit -m "コメント"
※virtualenvでPythonの仮想環境を作っておくとパッケージ管理等が楽ですが必須ではありません。
Pythonアプリの開発
Bottleを使ったアプリを開発します。
注意点
MongoHQへの接続設定
MongoHQへの接続を次のように設定します。MongoHQへの接続先URLはHerokuの環境変数
MONGOHQ_URL
です。MongoHQ内のデータベース名は接続先URLの中の文字列に含まれていて、接続先URLをパースして取り出します。from pymongo import MongoClient from urlparse import urlparse MONGO_URL = os.environ.get('MONGOHQ_URL') if MONGO_URL: client = MongoClient(MONGO_URL) db = client[urlparse(MONGO_URL).path[1:]] else: client = MongoClient('localhost', 27017) db = client["データベース名"] collection = db[“コレクション名”]
IPとポートの指定
if MONGO_URL: run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000))) else: run(host='localhost', port=8080)
Pythonパッケージリスト
requirements.txt
の作成アプリで使っているPythonパッケージをrequirements.txtに記載します。ここに記載されたパッケージはアプリのデプロイ時に自動インストールされます。
requirements.txt
を作成pip freeze > requirements.txt
アプリで必要なパッケージ以外の行を削除
アプリ設定&起動コマンド
Procfile
の作成Procfile
という名前のファイルをを作成してDynoの種類と起動コマンドを記載します。以下はアプリ名がapp.pyの場合です。vim Procfile
以下を記載
web: python app.py
herokuへアプリ登録
heroku apps:create アプリ名
herokuへデプロイ
git push heroku master
Web dynoのスケール数をx1に設定する(0の場合のみ実施)
heroku ps:scale web=1
HerokuのWebコンソールで設定してもいいです。
MongoHQのAdd-onをアプリに追加
今回はMongoHQをHerokuのAdd-onとして使う方法を説明します。Add-onではなくMongoHQと個別に登録してHerokuアプリから使うこともできますが省略します。
クレジットカード情報の登録
HerokuでAdd-onを利用するためにはクレジットカードの登録が必要です。Add-onが無料であっても必要となります。したがってアカウント設定画面でクレジットカード情報をを登録します。
MongoHQ Add-onをアプリへ追加
heroku add-onsからMongoHQのページに行って
MongoHQ Sandbox free
を選択して、Add MongoHQ Sandbox free
ボタンをクリックします。free以外を選択しないよう気をつけてください。アプリ再起動
heroku restart --app アプリ名
料金無料の制限
無料と言ってもパフォーマンスやMongoDBの容量などに制限があります。詳細は各サービスの案内を参考にしてください。
Heroku
1アプリにつきDynoが750hまで無料で使えます。1ヶ月は31 day x 24h = 744hのためWeb Dyno x1を使うだけであれば、アプリを起動し続けていても料金はかかりません。
MongoDB (MongoHQ)
MongoHQは容量512MBのSandbox環境であれば無料で使えます。同様のMongoDBホスティングサービスMongoLabでは496MBまで無料です。設定は多少変わりますがMonogoLabを使ってもかまいません。
以上です。
他にLogglyやNewRelicといった運用管理系のaddonも使うといいのですが今回は割愛します。
OSXにWineをインストールしてWindows無しでWindowsアプリを実行する
Wineを使うとParallels DesktopやVMware FusionやOracle VM VirtualBoxといった類いの仮想化ソフト無しにWindowsアプリを実行する事が出来ます。対応ソフトは日々増え続けており、AppDBで参照する事が出来ます。AppDBに記載されていないソフトが動作するケースも多いです。
Wineインストール
brew install wine
※ brew install wine
を実行すると、○○(ライブラリ名)を--universal
でインストールしてくださいと表示されます。したがって、brew install wine
が成功するまで--universal
でインストールされていないライブラリを削除します。
brew uninstall ライブラリ(例:jpeg)
Wine設定
言語を設定します
~/.zshrc
等に以下を追加して再読み込みします。export LC_ALL=ja_JP.UTF-8
以下のGistから設定ファイルをダウンロードします。
上記Gistからダウンロードした
osx-wine.inf
に対して以下を実行します。/usr/local/bin/wine rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ./osx-wine.inf
Windowsアプリ実行
explorer.exe
Windowsといえばexplorer.exe。wineでエクスプローラーを使いたい場合、以下を実行するとexplorer.exeと似たようなアプリが起動します。
wine explorer