Q1:そもそもHerokuってなに? Herokuは元々Ruby on Railsを対象とした、Amazon Web Services(AWS)のIaaS上に構築されたPaaSで、デプロイには分散リポジトリのGitを利用するなど、Webアプリケーションの開発から公開まで非常に簡単にできる優れたプラ...
Q1:そもそもHerokuってなに?
Herokuは元々Ruby on Railsを対象とした、Amazon Web Services(AWS)のIaaS上に構築されたPaaSで、デプロイには分散リポジトリのGitを利用するなど、Webアプリケーションの開発から公開まで非常に簡単にできる優れたプラットフォームです。
Herokuは2010年にSalesforce.comにより買収され、Salesforce.comが掲げるソーシャルエンタープライズを実現させる中核の役割を担う要素の1つとして、現在ではRuby以外にもJava、Python、JavaScript(node.js)、Scala、Cloujureにも対応したマルチ言語なプラットフォームとなっています。
また、HerokuにはWebアプリケーション、特にソーシャルアプリケーションを開発する上で必要なアドオンが多数提供されており、ソーシャルアプリケーションとの連携や動画の配信なども簡単に開発する事ができます。
Q2:Force.comとはなにが違うの? 使い分けは?
Salesforce.comはForce.comというPaaSをHeroku買収以前から提供しており、単にWebアプリケーションを構築するというだけであればどちらでも実現可能なので混乱してしまいがちです。
基本的には、Force.comはSalesforceのSaaSを拡張するためのPaaSであり、HerokuはWebアプリケーションを開発するためのPaaSです。それぞれが生まれた背景が異なるため、提供されているツールも実行している環境も異なります。そのため、用途に応じて使い分けるというのがポイントになります。
基本的なアプローチとしては、社内向けのサービスにはForce.comを、社外の情報と連携させた自由度の高いアプリケーションのケースではHerokuといった棲み分けとなり、それぞれ利用用途が異なります。(下記参照)
- Salesforce CRM(Sales Cloud)やService Cloud、Chatterとの連携したサイトを構築する場合
- →Force.comを利用
- 社内ポータルを構築したい場合
- →Force.comを利用
- FacebookなどのSNS上、またはSNSのデータと社内システムを連携させたアプリケーションを構築する場合
- →Herokuを利用
- 制約の少ない自由度の高いWebアプリケーションの開発の場合
- →Herokuを利用
Q3:Force.comとは、どう連携するの?
Q2で回答したように、Force.comとHerokuでは利用する環境が異なるため基本的には別のシステムとなります。
そのため、Salesforce CRMとForce.comの関係のような密な連携や拡張は、Herokuでは実現できません。連携する手段は以下のいずれかの手段を使う事になります。
Webサービスによる連携
- Force.comが提供しているSOAPを利用して直接Webサービスを呼び出す
- Force.comが提供しているRESTサービスを利用して直接Webサービスを呼び出す
ActiveSalesforce(Ruby)、JPA(Java)を利用したデータ連携
- Force.comの開発コミュニティが提供するActiveSalesforceやDatabase.comのモジュールとして提供されているJPAの機能を利用して、Heroku側から直接Salesforce内のデータにアクセスする
どちらでも連携は可能ですが、Webサービスによる連携は、Force.com側に呼び出し回数や通信上のデータ量の制約などがあるので、データ連携とトリガー機能を利用した連携をする方が良いでしょう(実際にはデータ連携もSOAP通信を利用していますが、Salesforceの制約を回避するように実装されています)。
ただし、注意しないといけないのは、Herokuは現在AWSの米国東部一部地域のみでしか提供されていないため(2012年5月10日時点)、Salesforceの環境が日本国内のデータセンターを利用している場合には通信上のレイテンシーの遅延が発生します。そのため、Heroku側にはレスポンスを30秒以内に返さないといけない制限があり、その制限に引っかかる可能性があります。
従って、連携する際には非同期ジョブを活用してバックグラウンドで連携するか、Herokuが提供する「Heroku Postgres」やHerokuのアドオンで利用できるAWSのRDSなどのDaaS(Database as a Service)を活用して(第3回で紹介します)非同期にニアリアルタイムで連携させる必要があります。
Q4:Herokuで開発するメリットってなに?
Herokuの強みにはいくつかありますが、ここでは開発と運用のそれぞれに着目していきたいと思います。
メリット その1:豊富な開発言語のサポートとアドオン、標準的な開発環境
Herokuの魅力の1つとして、Ruby以外にもJava、Python、JavaScript(node.js)、Scala、Cloujureといった多彩な開発言語のサポートがあります。アジャイル開発に適しているRuby(Ruby on Rails)や、最近注目を浴びているScalaをはじめ、エンタープライズでは幅広く利用されているJavaもサポートされているので、開発チームにとって最適な環境での開発が可能です。
また、Webアプリケーションでは頻繁に利用される機能、例えばSSLやメール配信、オンメモリキャッシュといった機能がアドオンとして提供されており、開発者はアプリケーション開発に集中することができ、短期間でシステムを実行させる環境が提供されます。
2つ目の魅力として、デプロイ環境が挙げられます。アプリケーションのデプロイには分散バージョン管理システムであるGitを使用し、ビルドツールにはJavaであればMavenを使用します。これによりリソースのバージョン管理からビルド、アプリケーションのデプロイまでをスムーズに行なうことが可能です。
Herokuが提供するこのデプロイ環境は、開発からデプロイまでのコストを最小限に抑えることができます。このことは、継続的にシステムに機能を追加して成長させていくアジャイル開発に非常に適しており、Herokuの強みの1つであると考えられます。また、Herokuの環境に依存したツールを使うわけではないので、クラウド環境にみられるベンダーロックインの心配が少ないという点も非常に大きな魅力とも言えるでしょう。
メリット その2:スケールアウト
Herokuで実際にアプリケーションを稼働させた際に、Herokuの提供するスケールアウトの容易性は非常に高い点が挙げられます。他のクラウド環境では、スケールアウトが可能なようにインフラ面からの設計が必要ですが、Herokuを使用する場合はその必要がほとんどありません。
Herokuはアプリケーションをdynoと呼ばれるプロセス単位で実行させることができ、アプリケーションにかかる負荷に応じて実行プロセス数を調整することが可能だからです。アクセス数が多くなったり、比較的重い特定の処理を行なわせる繁忙期のようなときにだけ、dyno数を上げることでアプリケーションがスケールアウトします。
スケールアウトはHerokuのサイト上からでも可能ですし、コマンドラインから実行する事も可能です。また、「Hero Scale」というHerokuアプリのDynos/Workerをオートスケーリングさせるサービスもあります。
メリット その3:運用をサポートする標準機能
Herokuが提供する機能には、開発に利用する機能の他にも、ログの確認やパフォーマンスのモニタリング、データベースのバックアップといった運用をサポートする機能も含まれています。長期的なシステム運用には運用設計が必須になりますが、Herokuが運用のための機能を容易に扱える環境を提供することで、運用コストを抑えることに繋がるでしょう。
このようにHerokuは、アプリケーションの開発に注力させ、アジャイル開発を適用させやすい環境を提供している点が非常に大きな魅力となっています。
Q5:Herokuと一緒に検討すべきサービスは?
Herokuはクラウドサービスの中でPaaS(Platform as a Service)に分類されます。他社が提供するPaaSには、Googleの「Google App Engine」、Microsoftの「Windows Azure」、Amazon Web Servicesの「AWS Elastic Beanstalk」などがあります。
利用するサービスの選定には、稼働させるアプリケーションの特性にもよりますが、Windows AzureとAWSはVPN、またAWS Elastic Beanstalkは専用回線による接続をサポートしていることから、業務用途での利用に適していると言えるでしょう(Windows Azureはまだベータ提供かつクライアントベース)。
一方で、Herokuは外部公開のアプリケーション構築や、外部ソーシャルサイトと連携したアプリケーション構築に向いたプラットフォームという位置づけになります。特にFacebookには専用プランが用意されているので、Facebookアプリケーションを容易に作成することができます。逆に既存の業務システムのクラウドへの移管にはあまり向いておらず、そのようなケースではBeansTalkを含むAWSの利用が向いています。
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- 【連載30回記念】市川沙央さん凱旋! 芥川賞後の長すぎた2年。「自費出版するしかないと思い詰めたことも」 小説家になりたい人が、なった人に〈その後〉を聞いてみた。#30|好書好日on 2025年11月26日 at AM 4:45
【連載30回記念】市川沙央さん凱旋! 芥川賞後の長すぎた2年。「自費出版するしかないと思い詰めたことも」 小説家になりたい人が、なった人に〈その後〉を聞いてみた。#30 市川沙央さん(写真提供:文藝春秋) 物語の出来でいえばライトノベル>芥川賞 初代・小説家になった人、市川沙央。この人なくしては連載が30...
- JVN#67185535: SwitchBot製スマートテレビドアホンに利用可能なデバッグ機能が存在している脆弱性on 2025年11月26日 at AM 4:33
SwitchBotが提供するスマートテレビドアホンには、次の脆弱性が存在します。 有効なままのデバッグ機能(CWE-489) CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N 基本値 8.6 CVSS:3.0/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 基本値 8.0 CVE-2025-64983
- トランプの和平案 ウクライナが決して呑んではいけない理由(Forbes JAPAN) - Yahoo!ニュースon 2025年11月26日 at AM 4:10
10月16日、ウクライナ第152独立擲弾兵旅団の砲兵隊員がポクロウシク近郊で活動する。米国製M-114榴弾砲は、ロシアによる全面侵攻開始後、チェコ共和国からウクライナへ供与された。 (Photo by Marharyta Fal/Frontliner/Getty Images) ロシアによるウクライナ侵攻を巡り、トランプ米大統領が28項目にのぼる和平案を提示...
- 理研の大量雇い止めは何だったのか 和解した研究者が明かす裁判の舞台裏と「10年ルール」の実態 - 弁護士ドットコムニュースon 2025年11月26日 at AM 3:59
「なぜ私が裁判を起こしたのかと言いますと、私に対する雇い止めとチームの解散に合理的な根拠がなかったこと、そして理研による大量の雇い止めを阻止する意味もありました。本来は裁判なんか起こしたくないんですよ。毎日研究に没頭していたかったのですが、裁判を起こさざるを得ませんでした」 そう思いを吐露したのは...
- Re:転勤:「あれ、働けない?」 夫の韓国赴任に同行、バリキャリに思わぬ壁 | 毎日新聞on 2025年11月26日 at AM 3:43
時間を忘れて没頭するぐらい仕事が好きだ。育休が明けたら当然、元の仕事に復帰するつもり。夫の海外転勤について来たけれど、リモートで働けるから大丈夫……。だが、現実は違った。「あれ、働けない?」 広告業界で働く千尋さん(34)=仮名。新卒でゲームアプリを製作する会社に入り、企画プランナーとして勤務した。シ...
- 野生のオオカミが道具を「使用」か、初めて撮影 遊びではなく明確な行動on 2025年11月26日 at AM 3:38
(CNN) カナダ・ブリティッシュコロンビア州中部の沿岸部に生息する野生のメスオオカミが、水中に仕掛けられたカニ用のわなを引き寄せて餌を食べる様子が撮影された。これは、これまでに観察されたことのない行動であり、オオカミによる道具の使用が初めて記録された事例となる可能性がある。 このわなは、先住民ヘイル...
- 理研の大量雇い止めは何だったのか 和解した研究者が明かす裁判の舞台裏と「10年ルール」の実態(弁護士ドットコムニュース) - Yahoo!ニュースon 2025年11月26日 at AM 3:29
「なぜ私が裁判を起こしたのかと言いますと、私に対する雇い止めとチームの解散に合理的な根拠がなかったこと、そして理研による大量の雇い止めを阻止する意味もありました。本来は裁判なんか起こしたくないんですよ。毎日研究に没頭していたかったのですが、裁判を起こさざるを得ませんでした」 【写真】ネット中傷で自...
- [33コマ目:応用:レンジで正解・温野菜] ヤンキー君と科学ごはん - 岡 叶 | となりのヤングジャンプon 2025年11月26日 at AM 3:17
ヤンキー君と科学ごはん 岡 叶 化学教師の蘭は担任を務めるクラスの問題児・千秋の留年回避のためマンツーマンで補習をすることになる。 科学に興味ゼロの千秋に補習を受けさせるため、蘭が提案したのは“料理”で…?
