diff --git a/02s-deploying.md.erb b/02s-deploying.md.erb index 69ddc4e..6e56834 100644 --- a/02s-deploying.md.erb +++ b/02s-deploying.md.erb @@ -3,116 +3,76 @@ title: Deployment slug: deploying date: 0002/01/02 number: 2.5 +points: 1 sidebar: true -contents: Meteor.com上でのデプロイする方法|モジュール上でのデプロイの方法|Meteor upを使ってサーバー上でデプロイをする方法 +photoUrl: http://www.flickr.com/photos/monomaniacgarage/10703829133/ +photoAuthor: Monomaniacgarage +contents: Meteor.com上でデプロイする方法|Modulus上でデプロイする方法|Meteor upを使って自分のサーバー上でデプロイをする方法 paragraphs: 46 -version: 1.7 +version: 1.7.1 --- -完璧になるまで静かにプロジェクトを進める人もいれば、待てずに出来次第世に公開する人もいます。 +完成するまで公開せずにプロジェクトを進める人もいれば、できるだけ速くプロジェクトを公開する人もいます。 -もしあなたが前者であれば、とりあえずローカルでの開発をするでしょう、そうであればこの章を飛ばしてもらって構いません。一方で、Meteor アプリをオンラインでデプロイするやり方を学びたいのであれば、ここでカバーできます。 +もしあなたが前者であれば、とりあえずローカルでの開発をするでしょう、そうであればこの章を飛ばしてもらって構いません。一方で、Meteorアプリケーションをオンラインでデプロイする方法を学びたいのであれば、この章で解説します。 -いくつかの方法にてMeteorアプリをデプロイするのを学びます。Microscopeもしくは他のMeteorアプリで作業をしていても、開発中のどのタイミングでもそれそれ使っていただけます。 +Meteorアプリケーションをデプロイするいくつかの方法を学びます。本書で構築するMicroscopeを作っている場合や、他のMeteorアプリケーションを構築している場合に関わらず、本章で解説している方法を使って開発プロセス内のどのタイミングでもデプロイすることができます。では始めましょう! <% note do %> -### Introducing Sidebars +### サイドバーについて -ここは**サイドバー**の章です。 サイドバーは、他の本の部分から離れてもっと一般的なMeteorのトピックについて深く検証していきます。 +ここは**サイドバー**の章です。 サイドバーは本書の他の部分から離れて、もっと一般的なMeteorのトピックについて深く検証していきます。 ですから、もしMicroscopeの構築を優先にしたいのであれば、今の時点ではここを飛ばして、後からここに戻ってきても全く問題ありません。 <% end %> -### Meteorのデプロイ +### Meteor上でのデプロイ -Meteorのサブドメイン(i.e. `http://myapp.meteor.com`) をデプロイするのは一番簡単な方法で、最初に試してみたほうがいいでしょう。この方法は、ステージングサーバーを早く設定するときや、初期段階で他の人にあなたのアプリを見せる時に役立ちます。 +Meteorのサブドメイン(例:`http://myapp.meteor.com`)でデプロイするのが一番簡単な方法なので、まずこのデプロイ方法から試していきます。この方法は、初期段階で他の人にあなたのアプリを見せる場合や、素早くステージングサーバーを用意したい場合に役立ちます。 -Meteorのデプロイはとてもシンプルです。ターミナルを開けて、Meteorアプリのディレクトリを開き、以下を入力します: +Meteorのデプロイはとてもシンプルです。ターミナルを開き、Meteorアプリケーションのディレクトリで、以下のコマンドを入力します: ~~~bash $ meteor deploy myapp.meteor.com ~~~ -もちろん"myapp" の部分は自分がつけたい名前に変更する必要があります。使われていない名前にしたほうが良いでしょう。 +もちろん"myapp" の部分は自分が付けた名前に置き換える必要があります。使われていない名前にしたほうが良いでしょう。 +今回が初めてのデプロイであれば、Meteorのアカウントを作成するためのプロンプトが表示されます。全てがうまくいったら、数秒後に`http://myapp.meteor.com`であなたのアプリにアクセスすることができる様になります。 -もしこれがあなたにとって最初のデプロイアプリであれば、Meteorのアカウントを早速取得してください。そして全てがうまくいったら、数秒後に`http://myapp.meteor.com`.であなたのアプリにアクセスすることができます。 +ホストしているインスタンスのデーターベースに直接アクセスしたり、アプリケーションのカスタムドメインの環境の設定をする方法などの情報については[公式ドキュメント](http://docs.meteor.com/#deploying) をご参照ください。 -ホストしているインスタンスのデーターベースに直接アクセスしたり、アプリのカスタムドメインの環境の設定をするなどの情報については[the official documentation](http://docs.meteor.com/#deploying) をご参照ください。 +### Modulus上でのデプロイ -### モジュールのデプロイ +[Modulus](https://modulus.io/)はNode.jsアプリケーションをデプロイするのに有力な選択肢です。Meteorを公式にサポートする数少ないPaaS (platform-as-a-service) プロバイダーの中の一つで、すでに多くの人がプロダクションレベルでMeteorアプリを運用しています。 -モジュール[Modulus](https://modulus.io/) は Node.js appsをデプロイするのに最適な選択です。すでに数多くの人がMeteorアプリの制作を -その上で行っており、Meteorを公式にサポートする数少ないPaaS (platform-as-a-service) プロバイダーの中の一つです。 - -<% note do %> - -### Demeteorizer - -モジュールのオープンソースのツールでディメテオライザー[demeteorizer](https://github.com/onmodulus/demeteorizer) と呼ばれており、あなたのMeteorアプリを 標準のNode.js アプリに変換してくれます。 - -<% end %> - -アカウントの作成[creating an account](https://modulus.io/register)から始めてください。モジュール上で我々のアプリをデプロイすると、モジュールのコマンドラインツールをインストール必要が出てきます: - -~~~bash -npm install -g modulus -~~~ - -そして、その時に以下と一緒に認証されます。: - -~~~bash -modulus login -~~~ - -これでモジュールプロジェクトを作成できます。(モジュールのWebのダッシュボード上でも同じようにこれができることをメモしておいてください。): - -~~~bash -modulus project create -~~~ - -次のステップは、私たちのアプリ用にMongoDBデーターベースを作成することです。MongoDBデーターベースを[Modulus itself](https://modulus.io/codex/database/getting_started)、[MongoHQ](https://www.mongohq.com/)、 もしくは、他のクラウドのMongoDBのプロバイダーとも一緒に作ることができます。 - -私たちのMongoDBデーターベースを一度作ったら、MONGO_URL`をモジュールのWeb UIから私たちのデーターベース(Dashboard > Databases > Select your database > Administration へ行く)から取得できます。そして私たちのアプリの環境設定をするのに使ってください。このように: - - -~~~bash -modulus env set MONGO_URL "mongodb://:@mongo.onmodulus.net:27017/" -~~~ - -やっと私たちのアプリをデプロイする時がきました。入力するのと同じようにとても簡単です。 - -~~~bash -modulus deploy -~~~ - -これで、完璧にモジュールに私たちにのアプリをデプロイすることができました。ログへのアクセスや、カスタムドメインの設定、またSSLのなどについては [the Modulus documentation](https://modulus.io/codex/projects) をご参照ください。 +Modulusについて、より詳しく学びたい場合は[Meteorアプリケーション開発ガイド](http://help.modulus.io/customer/portal/articles/1647770-using-meteor-with-modulus)を読むと良いでしょう。 ### Meteor Up -日常的に新しいクラウドのあり方が出てきますが、それらは頻繁に独自の問題や限界などと面しています。そこで、今日現在では、制作中のMeteorのアプリケーションは自分のサーバーにデプロイしておくのが最善の方法といえるでしょう。ただ一つ言えるのは、特にクオリティの高い開発を目指しているのであれば、自分でデプロイするのはそれほど簡単ではないということです。 +クラウドソリューションは毎日新しいものが出てきていますが、たいてい独自の問題や制限を持っています。そのため独自のサーバー上にMeteorアプリケーションを構築するのがベストな方法でしょう。唯一の難点はプロダクションレベルのデプロイを行うのはシンプルではないということです。 -[Meteor Up](https://github.com/arunoda/meteor-up) (or `mup` for short) is another attempt at fixing that issue, with a command-line utility that takes care of setup and deployment for you. So let's see how to deploy Microscope using Meteor Up. +[Meteor Up](https://github.com/arunoda/meteor-up) (または、省略して`mup`)はMeteorアプリケーションの設定とデプロイを行うためのコマンドラインツールで、デプロイをシンプルにしてくれます。`Meteor Up`を使ってMicroscopeをデプロイする方法を見て行きましょう。 -Before anything else, we'll need a server to push to. We recommend either [Digital Ocean](http://digitalocean.com), which starts at $5 per month, or [AWS](http://aws.amazon.com/), which provides Micro instances for free (you'll quickly run into scaling problems, but if you're just looking to play around with Meteor Up it should be enough). +まずは、サーバーが必要です。$5/月で始めることができる[Digital Ocean](http://digitalocean.com)、マイクロインスタンスを無料(といっても、すぐにスケーリングの問題に直面するでしょう。しかし、Meteor Upを試すだけなら十分です。)で利用できる[AWS](http://aws.amazon.com/)がお勧めです。 -Whichever service you choose, you should end up with three things: your server's IP address, a login (usually `root` or `ubuntu`), and a password. Keep those somewhere safe, we'll need them soon! +どちらのサービスを選んでも、サーバのIPアドレス、ログインアカウント(通常は`root`や`ubuntu`)、パスワードを取得することになります。この情報はすぐあとで必要になるので、安全な場所に保管しておいてください。 -### Initializing Meteor Up +### Meteor Upを初期化する -To start out, we'll need to install Meteor Up via `npm` as follows: +では、`npm`を使ってMeteor Upをインストールすることから始めましょう。 ~~~bash npm install -g mup ~~~ -We'll then create a special, separate directory that will hold our Meteor Up settings for a particular deployment. We're using a separate directory for two reasons: first, it's usually best to avoid including any private credentials in your Git repo, especially if you're working on a public codebase. +次に、デプロイ毎にMeteor Upの設定を保持する特別なディレクトリを分けて作成します。このディレクトリを分離する理由は、特にパブリックなコードベース上で作業する際、Gitリポジトリにプラベートな証明書を含むべきではないということが挙げられます。 -Second, by using multiple separate directories, we'll be able to manage multiple Meteor Up configurations in parallel. This will come in handy for deploying to production and staging instances, for example. +さらに、複数の分かれたディレクトリを使うことで、平行して複数のMeteorアプリケーションの設定を管理することができます。例えば、プロダクションやステージングなど複数のインスタンスがある場合に便利です。 -So let's create this new directory and use it to initialize a new Meteor Up project: +さて、新しいディレクトリを作り、新しいMeteor Upプロジェクトのためのを初期化を行いましょう。 ~~~bash mkdir ~/microscope-deploy @@ -122,19 +82,19 @@ mup init <% note do %> -### Sharing with Dropbox +### Dropboxでの共有 -A great way to make sure you and your team all use the same deployment settings is to simply create your Meteor Up configuration folder inside your Dropbox, or any similar service. +あなたと、あなたのチーム全員が同じデプロイ設定を共有するためのシンプルな方法は、Meteor Upの設定フォルダーをDropbox、またはそれに類似するサービス上に作ることです。 <% end %> -### Meteor Up Configuration +### Meteor Upの設定 -When initializing a new project, Meteor Up will create two files for you: `mup.json` and `settings.json`. +新しいプロジェクトを初期化したら、Meteor Upは`mup.json`と`setting.json`という2つのファイルが生成されます。 -`mup.json` will hold all our deployment-related settings, while `settings.json` will contain all app-related settings (OAuth tokens, analytics tokens, etc.). +`mup.json`はデプロイに関連する全ての設定が含まれています。`settings.json`にはアプリケーションに関する設定(OAuthトークン、解析トークンなど)が含まれます。 -The next step is to configure your `mup.json` file. Here is the default `mup.json` file generated by `mup init`, and all you have to do is fill in the blanks: +次は`mup.json`ファイルを設定していきましょう。以下は、`mup init`で生成されたデフォルトの`mup.json`です。空白の部分を自分で埋めていく必要があります。 ~~~js { @@ -161,52 +121,52 @@ The next step is to configure your `mup.json` file. Here is the default `mup.jso ~~~ <%= caption "mup.json" %> -Let's walk through each of these settings. +それぞれの項目について見て行きましょう。 -**Server Authentication** +**サーバの認証** -You'll notice that Meteor Up supports password based and private key (PEM) based authentication, so it can be used with almost any cloud provider. +Meteor Upがパスワード、及びプライベートキー(PEM)をベースにした認証をサポートしていることに気付いたでしょうか。ほとんどのクラウドプロバイダで利用できるようになっています。 -**Important note**: if you choose to use password-based authentication, make sure you've installed `sshpass` first ([refer to this guide](https://gist.github.com/arunoda/7790979)). +**重要**: パスワードベースの認証を利用する場合、`sshpass`がインストールされていることを確認してください([詳細](https://gist.github.com/arunoda/7790979))。 -**MongoDB Configuration** +**MongoDBの設定** -The next step is to configure a MongoDB database for your app. We recommend using [MongoHQ](https://www.mongohq.com/home) or any other cloud MongoDB provider, since they offer professional support and better management tools. +次はアプリケーションで利用するMongoDBデータベースの設定です。充実したサポートや管理ツールがあるため、[Compose](https://www.compose.io)など、クラウドのMongoDBサービスを利用することをお勧めします。 -If you've decided to use MongoHQ, set `setupMongo` as `false` and add the `MONGO_URL` environmental variable in `mup.json`'s `env` block. If you decided to host MongoDB with Meteor Up, just set `setupMongo` as `true` and Meteor Up will take care of the rest. +Composeを利用するなら、`setupMongo`を`false`に設定し、`mup.json`の`env`ブロックに環境変数`MONGO_URL`を追加します。Meteor Upと一緒にMongoDBをホストする場合には、`setupMongo`を`true`に設定するだけで、残りはMeteor Upが面倒を見てくれます。 -**Meteor App Path** +**Meteorアプリケーションのパス** -Since our Meteor Up configuration lives in a different directory, we'll need to point Meteor Up back to our app using the `app` property. Just input your full local path, which you can get using the `pwd` command from the terminal when located inside your app's directory. +Meteor Upの設定は異なるディレクトリで管理されているので、`app`プロパティでアプリケーションの参照先を設定しなければなりません。アプリケーションのディレクトリ内で`pwd`コマンドを実行して得られるローカルのフルパスを設定します。 -**Environment Variables** +**環境変数** -You can specify all of your app's environment variables (such as `ROOT_URL`, `MAIL_URL`, `MONGO_URL`, etc.) inside the `env` block. +`env`ブロック内にはアプリケーションで使う全ての環境変数(`ROOT_URL`や`MAIL_URL`など)を設定することができます。 -### Setting Up and Deploying +### 設定とデプロイ -Before we can deploy, we'll need to set up the server so it's ready to host Meteor apps. The magic of Meteor Up encapsulates this complex process in a single command! +デプロイすることができるまでには、Meteorアプリケーションをホストするためにサーバを設定する必要があります。この複雑な作業はMeteor Upがカプセル化した1つのコマンドだけで行えるようになっています! ~~~bash mup setup ~~~ -This will take a few minutes depending on the server's performance and the network connectivity. After the setup is successful, we can finally deploy our app with: +サーバのスペックやネットワークの状況により、完了までに2〜3分かかるかもしれません。セットアップが成功すると、以下のコマンドでアプリケーションをデプロイすることができるようになります。 ~~~bash mup deploy ~~~ -This will bundle the meteor app, and deploy to the server we just set up. +このコマンドはMeteorアプリケーションをバンドルし、設定した通りにサーバへデプロイします。 -### Displaying Logs +### ログを表示する -Logs are pretty important and Meteor Up provides a very easy way to handle them by emulating the `tail -f` command. Just type: +ログはとても重要で、Meteor Upでは`tail -f`コマンドと同等の機能で簡単にログを扱うことができます。以下のコマンドを打ってください。 ~~~bash mup logs -f ~~~ -This wraps up our overview of what Meteor Up can do. For more infomation, we suggest visiting [Meteor Up's GitHub repository](https://github.com/arunoda/meteor-up). +ここまでで、Meteor Upでできることを簡単にまとめました。さらに学びたい場合には[Meteor UpのGitHubレポジトリ](https://github.com/arunoda/meteor-up)を見てください -These three ways of deploying Meteor apps should be enough for most use cases. Of course, we know some of you would prefer to be in complete control and set up their Meteor server from scratch. But that's a topic for another day… or maybe another book! \ No newline at end of file +ここで紹介したMeteorアプリケーションをデプロイする3つの方法は、ほとんどの場合で通用します。もちろん、完全に自分で管理したり、Meteorサーバをスクラッチで設定したい場合もあるでしょう。でも、その話題は別の機会にすることにします...もしかしたら別の本で! \ No newline at end of file