SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Herokuでスタート! はじめてのPaaSアプリケーション開発

構築・運用の必須知識! Herokuアプリケーションの実行プラットフォーム「Dyno」を徹底的に理解する

Herokuでスタート! はじめてのPaaSアプリケーション開発 第4回


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

 前回はHeroku上でデータベース(PostgreSQL)を使用したアプリケーションを作成する方法について解説しました。今回はアプリケーション開発から少し離れて、Herokuの中心的概念である「Dyno」について詳細に説明します。

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

Dynoとは

 Dynoとは、Herokuアプリケーションが実際に実行されるプラットフォームのことです。その実体は、Amazon EC2の巨大インスタンス上で動作する軽量Linuxコンテナです。

 ベースとなるOSはUbuntuであり、ユーザーの作成したアプリケーションはすべてDyno上で実行されます。

 大きな特徴として、Dynoのファイルシステムは揮発性であることが挙げられます。例えば、ブラウザからアップロードしたファイルをDynoのディスク上に保存しても、そのファイルはDynoがシャットダウンした際に失われます。

 Dynoは常にHerokuのDynoManagerによって監視されており、毎日1度は再起動されます。データを保存する際には必ずHeroku Postgresなどの外部ストレージを利用します。

 また、DynoはHerokuの課金のための単位でもあり、DynoのサイジングをどのようにするかはHerokuを運用する上で大きなポイントになります。

Dynoの種類と料金

料金体系は最新情報をご確認ください

 Herokuから、2015年6月より料金体系が変更されると発表がありました。以下の説明は、本稿執筆時点での情報に基づいてに書かれています。最新の料金はこちらでご確認ください。

 

 現在Dynoには1X、2X、PXという3種類のサイズがあります。

名称 メモリ CPUシェア マルチテナント 処理能力 価格/時間
1X 512MB 1x yes 1x-4x 0.05米ドル
2X 1,024MB 2x yes 4x-8x 0.10米ドル
PX 6GB 100% no 40x 0.80米ドル

 Dynoサイズによって、メモリ容量とCPUの処理能力が異なります。1X、2Xはマルチテナント、つまり1台のEC2上で複数のコンテナが共存するモデルです。一方PXは、ホストを1つのコンテナで占有するモデルとなっています。

 Dynoの価格はDyno Hourという概念に基づいて設定されています。1X Dynoが1時間起動している状態を「1Dyno Hourを消費する」といい、1Dyno Hourの料金は0.05米ドルです。

 2X Dyno、PX Dynoの価格はそれぞれ1時間あたり0.1米ドルと0.8米ドルですが、Dyno Hourの考え方では以下のように説明されます[1]

  • 2X Dynoを1時間起動していると2Dyno Hourを消費する
  • PX Dynoを1時間起動していると16Dyno Hourを消費する

[1] ちなみに、1時間以下の使用時間も割合をかけて算出されます。

 なぜ、こういう考え方をするかというと、Herokuでは1つのアプリケーションにつき750Dyno Hourの無料枠があるからです。

 例えば、2X Dyno 2台を1か月間動かしたとします。1か月は24時間 × 31日で744時間です。2X Dynoは1時間につき2Dyno Hourを消費するので、1台あたり1488Dyno Hourの消費、それが2台で合計2976Dyno Hourの消費です。

24 × 31 × 2 × 2 = 2976 Dyno Hour

 ただし、750Dyno Hourの無料枠があるので、2976から750を引いた111.3米ドルがこの場合の料金です。

(2976 - 750) × $0.05 = $111.3

 無料枠はアプリケーションごとに提供されるので、1X Dyno 1台で運用しているアプリケーションの場合は1か月あたりのDyno Hourの消費が最大で744Dyno Hourとなり、無料枠の中で収まって料金が発生しません。

 1X Dyno1台のみの運用にはいろいろと制限事項があるので、本番運用ではお勧めできませんが、開発環境やテスト環境をAdd-Onまで含めて無料枠内で構築することは実際に可能です。

 750時間の無料枠はどのような組み合わせで使用しても構いません。例えば、PX Dyno10台を4時間だけ起動していた場合、

16 × 10 × 4 = 640 Dyno Hour

 の消費となりますが、それ以外の時間の起動台数を0としておけば無料枠内で収まります。

 筆者は負荷テストなどで100Dynoを同時起動してテストを行うことがたまにありますが、短時間の利用なのでほとんど料金は発生していません。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Dynoの呼称

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Herokuでスタート! はじめてのPaaSアプリケーション開発連載記事一覧

もっと読む

この記事の著者

小西 俊司(コニシ シュンジ)

株式会社Giveryに所属するエンジニア。CODEプロジェクトというエンジニアの成長を促進するプラットフォーム開発のテックリード。Herokuも使った新しいプロダクトを今秋リリース予定。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8344 2015/06/15 17:54

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング