Scaleble PDF概要

Scalable PDFとは

 米ニューヨークタイムス(New York Times)は2007年末、過去100年分の新聞記事をPDF化するためにAmazon EC2を使用しました。 合計で数TBに及ぶ40万5000個のTIFF画像をPDF変換するのにAmazon EC2の仮想マシン100台を24時間使用したといいます。 その際にAmazonに支払った料金は、EC2の使用料が240ドルで、データ転送量が1000ドル程度でした。(参考) 大規模インフラ個人運用:AWS+Hadoopの成功例 
  また、米国の動画共有サイトAnimoto(http://animoto.com)は、Facebookにアプリケーションを公開した結果、わずか3日間で、アニモトのユーザー数は2万5千人から25万人に増えました。 ところが、アニモトは、ユーザー数が10倍に拡大した3日間で、サーバーの台数を50台から4000台にまで増強してみせました。それができたのは、同社がサーバーにAmazon EC2を使用していたからです。 Amazonは、世界最大のショッピングサイト運営者であり、そのデータセンターを利用しているAmazon EC2は、とてつもなく大きな規模に拡張可能です。2009年2月現在、アニモトが運用するサーバーは8000台にも達します。 このように、クラウドを活用することで、低予算で効率よい大規模システムをすぐに使用でき、また、自分が使いたいサーバー資源をほとんど無制限に拡張できます。  
 Scalable PDFは、クラウドPDFサービスをさらに発展させたもので、大規模な要求に対して効率的に処理するサービスです。 これは、Amazon EC2上のAuto Scalingを利用しており、Reflex iTextのインスタンスを負荷に応じて自動で起動することができます。 iTextとEC2を使っている点はNewYorkTimesの事例と同じです。
 また、前面にGAEを置いてPDFのキャッシュ機能をもたせ、必要なリクエストのみをバックエンドのEC2にディスパッチすることで、EC2への余分な負荷をなくすことができます。 このように、Scalable PDFは、Amazon EC2とGoogle App Engineのそれぞれの強みを生かしたスケーラブルなサービスを提供します。

パフォーマンス

 Scalable PDFは、高速描画に定評のあるiTextをPDF生成エンジンとして採用し、また、クラウド上の複数ノードを疎結合、並列処理させることで、圧倒的なパフォーマンスを引き出します。  以下はReflex iText1ノードあたりのレスポンスタイム測定結果です。約30秒で1インスタンスにつき100ページを作成できますので、20インスタンス使うと約30秒で2000ページ作成できる計算になります。 使用したテンプレートはA4サイズで1ページあたり約100項目3000文字、6つのBarcode、2つのQRコードを含みます。

Reflex iText on Amazon EC2 (単位秒)

Response TimeうちNW転送ファイルサイズ
Small(100Pages/1node)29101.4M
Small(100Pages/1node) + SSL36111.4M
Small(200Pages/1node)67202.7M
Medium(100Pages/1node)23101.4M

セキュリティ

 下図はお客様データセンターからセキュアに接続する例です。通信はHTTPSで暗号化されており安全です。データは一時的にキャッシュされるものの、永続的にクラウド内に保管されるものではないため、データ漏洩のリスクは最小限に抑えられます。 Google App EngineやAmazon S3はセキュアな環境下に置かれており他者の侵入を許しません。

利用料金

 Scalable PDFサービスでは、Google App Engine、Amazon EC2、および、Reflex iTextの利用に応じた料金が課金されます。詳細な算出方法については、弊社サポートまでお問い合わせください。

従量課金がもたらすコストメリット

 帳票出力など不規則な処理ピークを持つ業務などでは、最大ピーク時の処理能力を考慮したシステムリソースを確保するのが一般的ですが、 ピーク時以外のあまり使用しないときは余剰リソースとなり管理コストが余分に発生してしまいます。  また将来のトランザクション予測が難しく、システム規模が想定しにくいような場合には、初期構築時にどれだけのリソースを確保すべきか見積もることは難しいものです。 一方、クラウドは従量課金であり、 初期投資は必要なく、導入・管理コストの最適化をもたらします。 また、サーバリソースをいつでも必要な時に必要なだけ利用でき、予測が困難な状況にも迅速に対応できます。