Q1:Herokuの性能が気になります……本当に企業システムで使えるの? HerokuはAWS(Amazon Web Services)の米国東リージョン上で稼働しているため、通常のWebアプリケーションと同じように構築してしまうと、地理的な問題からレイテンシ(遅延)が大きくなってしまい、性能が落...
Q1:Herokuの性能が気になります……本当に企業システムで使えるの?
HerokuはAWS(Amazon Web Services)の米国東リージョン上で稼働しているため、通常のWebアプリケーションと同じように構築してしまうと、地理的な問題からレイテンシ(遅延)が大きくなってしまい、性能が落ちてしまいます。
それを回避するために、CDN(コンテンツデリバリネットワーク)とAjaxを活用して、うまくレイテンシを抑えるようにする必要があります。
CDNを活用したコンテンツキャッシュ
CDNを活用することにより静的なコンテンツを最寄りのエッジサーバから取得できるため、画像データや動画、CSS/JavaScriptなどのファイルを毎回オリジナルサーバ(Heroku)から取得する必要がなくなります。
実際にYahoo! JAPANを例にしてCDNの効果を検証してみると、受信データ量はサイト全体が約200kbyte。この内、画像データやCSS/JavaScriptファイルを除いたHTMLだけのファイルサイズは約30kbyte(註1)となります。CDNを利用して、すべての静的コンテンツをエッジサーバから取得できる場合には、オリジナルサーバから取得するデータは全体の15%弱程度まで抑えることができます。
ただし、気をつけなければならないのは、CDNではオリジナルのデータが変更されてから時間差でキャッシュが更新されるため、削除・更新が頻繁に行われるデータには不向きであることと、キャッシング時間が決まっているためアクセスの少ないデータでは効果が出にくく、全ての静的コンテンツがCDNの恩恵を受けられるわけではないことです。
註1:データ量はhttpwatchを利用して計測
Ajaxを活用したリクエストデータの局所化
CDNは主にダウンロードする静的コンテンツのデータ量の削減を目的としていましたが、特に海外にサーバがあるようなWebアプリケーションの場合には、回線速度等の問題でそれだけでは十分な性能を出せないケースがあります。
Herokuが稼働する米国の場合は、日本国内からのアクセスに限れば実務で困るくらい遅くなることはありません。しかし、他の国での利用も想定したグローバルなシステムの場合、ロケーションによっては回線の実速度が数キロバイト程度まで落ち込んでしまうケースがあります。実際にグローバル展開を行うシステムを構築した際に、こういったレイテンシに伴う性能の問題に苦しめられるケースがありました。
これを回避するには、Ajaxを活用して通信するデータ自体を絞込み、通信コストを削減するとともに、非同期処理を活用して体感的に速度を早くすることが効果的です。
上記のようにすることでHTTPリクエストを画面全体(HTML)ではなく、一部(必要なテキストデータのみ)に抑えることができるので、通信コストを削減できるようになります。
また、データ量の多い画面の場合には非同期で画面の項目がレンダリングされるため、視覚的に早く見せることが可能で、利用しているユーザーの体感速度を早めることができます。
Q2:Heroku上で構築したアプリケーションはForce.comや社内システムとどう連携させるの?
Heroku上のアプリケーションとForce.comを連携させるには、SOAP、RESTでのHTTPをベースとした方法と、ActiveSalesforce(Ruby)、JPA(Java)を利用した方法があります。
ただし、HerokuのHTTP接続には制約があるため、Force.comとの連携にはActibeSalesforceとJPAを利用する方法をお奨めします。
社内システムと連携させる場合にもSOAP、RESTを利用した連携が可能ですが、HerokuのHTTPの接続制限から、まとまったデータの連携についてはHeroku PostgresやAWSのAmazon RDSといったDatabase as a Service(以下DaaS)を利用したデータベースでの連携を行います。
余談になりますが、Heroku PostgresとAmazon RDSのどちらを使った方が良いのかといった質問を受けることがあります。自動バックアップ、メンテナンスフリー、接続の暗号化(SSL)と、双方が持つ機能にはあまり差が無いので判断が難しいところだと思います。
ただ、格納できるデータのサイズは、Heroku Postgresが2TBなのに対してAmazon RDSは1TBという大きさの違いがあります。また、RDSはリードレプリカが利用できるため、他のシステムへ読み込み専用のデータベースを提供できるなど、機能面でも若干異なっています。 基本的にはHeroku Postgresの使用を前提として、外部システムや他のAWSとの連携要件次第で、Amazon RDSを選択するのが良いと思います。
Q3:Herokuを使った場合にセキュリティが心配なのですが…
Herokuはインターネットを利用して既存システムと連携させる必要があるため、ハッキングなどのセキュリティ面が気になると思います。実際、Herokuに限らず、パブリッククラウドを導入するケースではセキュリティに関する承認に多くの時間を費やすことが多く、重大な関心事だと感じています。
今回は、その中でも実際の導入時に問題となりやすい認証とデータ漏洩という2つの観点からセキュアなシステムを構築する上でのポイントを解説します。
認証
不特定多数のユーザーのみを対象としたWebシステムやFacebookなどのソーシャル系の専用アプリケーションの場合には、OpenIDやOAuthを利用することが多いため、独自で認証を考える必要はありません。
しかし、社員や顧客などの限られたユーザーに限定して提供したいようなWebシステムの場合には認証処理が必須となります。その際、社内で管理されているユーザー情報を基にして認証しますが、それらの情報は個人情報を含むため、単にクラウド上に移管させるだけではリスクが高くなってしまいます。
このようにオンプレミスとクラウドを連携させてIDを管理する必要があるときは、SAMLやSWT(Simple Web Token)に対応したFederation Serverを導入し、安全に認証と属性(ユーザー情報)を連携させることで、ある程度リスクを回避することができるようになります。
SAMLやSWTを利用して連携することで、必要な属性のみが連携されるため、Heorku上で構築したアプリケーションでは個別にユーザー情報を管理する必要がありません。
ただし、上記の構成では社内のID管理(LDAP等)に登録されたユーザーしか使用できません。これに加えて、社外のユーザーにもインターネット経由でアプリケーションを提供する場合には、社内のID管理に利用ユーザー全員を登録した上で、Federation ServerをDMZなどのインターネットからアクセス可能な場所に配置しなければなりません。
IDを管理していない社外ユーザーも対象としたい場合やFederation ServerをDMZ上に配置したくない場合には、Microsoft が提供しているMicrosoft Azure Appfabric Access Control(ACS)を組み合わせることで、既製のIdP(アイデンティティプロバイダ)やクライアント独自のFederaion Server(インターネットアクセスが可能な場合のみ)に登録しているユーザーとの連携を簡単に実現できます。
ACSを併用することで、社内でID管理されているユーザーのほか、不特定多数ではない、他のソーシャルサービスに登録されているユーザーにもID管理無しにWebアプリケーションを提供することが可能となります。
データ漏洩
Herokuではアプリケーションもデータベースもクラウド上に配備されるため、データの漏洩に対する配慮が必要となります。特に既存システムの社内情報と連携させる場合には、セキュリティ管理は重要な課題として対策しなければなりません。
データ漏洩を防ぐには、通信の暗号化とデータの分散配置という2つのアプローチから考える必要があります。
Herokuでの通信の暗号化はSSLを使うことが前提となります。Q2の構成でSOAP、RESTで連携させる場合にはHTTPSを利用し、DaaSであるHeroku Postgres、Amazon RDSではSSLサポートがされている(5月17日時点ではMySQLのみ)ので、クライアント接続、ODBC/JDBC接続時にSSLで接続することで通信の暗号化が可能です。
データの分散配置とは、コードと値を別々のデータストアに格納するようにデータ設計を行うことです。例えば社員情報の場合には、データベース上には社員番号でデータを保持させ、HerokuのaddonであるMemchached(分散キャッシュ)やMogoDB(KVS)に社員マスタを保持しておいて、1つのデータストアに関連も含めたすべてのデータを持たせないようにします。また、そもそもの設計としてマスタ関連は最低限必要なもののみを持たせるようにすることも大切です。
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- 妻が痴漢に遭ったところを警官の夫が現行犯逮捕、妻の通勤に同行するために公休まで取っていた→逮捕に至るまでの経緯に様々な反応が集まるon 2025年8月22日 at AM 11:11
リンク 朝日新聞 妻から痴漢被害を相談された警察官の夫、駅で痴漢容疑者を現行犯逮捕:朝日新聞 神奈川県警に勤務する妻から痴漢被害の相談を受け、警視庁に勤務する夫が公休を取って妻の通勤に同行し、駅のホームで妻の下半身を触った容疑者を現行犯逮捕した。 県警戸部署によると、県迷惑行為防止条例違反容… 9
- 「極右排外主義が国会で多数を占めぬように」共産・田村委員長、街頭演説への抗議活動容認on 2025年8月22日 at AM 11:05
共産党の田村智子委員長は22日の記者会見で、参政党が掲げる「日本人ファースト」などの主張について「極右排外主義」と位置づけ、排外主義や差別主義に対して「知性と理性、そして理論と事実で反論していく」と宣言した。 「日本人ファースト」を掲げた参政党は、参院選で改選前1議席から14議席に躍進した。田村氏は「...
- ネットで有名人の写真を勝手にアイコンとかにしている人がいる問題|佐藤満春on 2025年8月22日 at AM 11:03
SNS全般がもう終わりだということは以前にも書いたのだが、その理由の大きな1つになっているのが、みんなあたり前のように「みんな芸能人や有名人の写真・画像を無断使用している」ことだ。真面目だなと思われるかもしれないけど真面目だ、とても真面目だと自分でも思う。 プロフィール写真やら、その芸能人がSNSに...
- フリーランスにとってクレジットや履歴に載せられないのは致命的だし、過剰な制約は独禁法的に問題が起きるかもという話にフリーランスの方々から疑問やアドバイスが集まるon 2025年8月22日 at AM 11:03
前田久(前Q) @maeQ 「クレジットに載らない」「仕事履歴に書けない」ことのフリーランスにとっての重さは、どれだけ繰り返し言っても足りないくらいですね。会社勤めの人がそれを口にするとき、かなり酷いことを要求していると自覚しておいてほしい。 2025-08-21 14:28:13
- モキュメンタリーではない恐ろしさ : 東京国立近代美術館「コレクションを中心とした特集 記録をひらく 記憶をつむぐ」 - whkr’s diaryon 2025年8月22日 at AM 10:39
東京国立近代美術館の企画展「コレクションを中心とした特集 記録をひらく 記憶をつむぐ」に行ってきた。 満州建国前後から戦中の記録と宣伝、そして終戦後の振り返りまで、第二次世界大戦に関して主に絵画が担った役割を展示でたどっている。 初めは「満朝旅の栞」のような観光案内や、満州国における五族協和のアピ...
- SNSで除草剤の評判落ちた ネガティブ投稿者に「名誉棄損」で賠償命令 抑止力になるかon 2025年8月22日 at AM 10:16
除草剤「ラウンドアップ」を製造・販売する日産化学(東京都中央区)が、SNSでの事実と異なるネガティブ投稿によって同製品の評判を毀損されたとして、複数の投稿者を相手に損害賠償請求を東京地裁に起こし、同地裁が「企業の名誉毀損にあたる」として投稿者に賠償を命じたと同社が22日、公表した。SNSでの自社製品の事...
- 求人広告に「リーダーシップ」という語を入れると女性が嫌がり男女差別を助長する……?|✨わん🐶にゃん😺癒し動画✨on 2025年8月22日 at AM 9:36
Gauche, Friesen, & Kay (2011)の「求人広告におけるジェンダー的単語が存在し、ジェンダー不平等の維持している」と主張する論文(2011年で被引用1124件なので有名論文と言っていいだろう)を読む機会があった。この論文の内容を大まかにまとめると以下のとおりである。 男性職(配管工、電気工事士、修理工、技師、警...
- ダンダダンTVアニメ公式が楽曲「Hunting Soul」に関して謝罪…パロディはどこまで許されるか問題は今後どうなるのかon 2025年8月22日 at AM 9:31
succeed1224@「薬屋稼業」作者 @succeed1224 要約:パロディのクオリティをガチ上げし過ぎて本家から盗用を疑われてしまいました。無断だった事は道義的にどうなのかというところはあるものの、法的に後ろ暗いところは無いので、特に差し替える事なく話し合いで解決しそうです、驚かせてごめん。 クリエイターとしては事...