こんにちは、開発責任者の土田です。
2019年7月11日(木)に開催された X-Tech JAWS 【第8回】〜時代を突き抜けるX-Tech企業の真髄〜に「帳票も今や HTML でつくる時代!?日本の税理士を支えるサーバーレス帳票基盤」という内容で登壇してきました。
X-Tech JAWS は、FinTech や EdTech に限らず様々な X-Tech 業界において AWS を利用している異業種企業が交流する場として開催されている勉強会です。名前に JAWS と名前がついていることから気付く人もいらっしゃると思いますが AWS を利用するユーザーのグループ JAWS-UG 支部のひとつとなっています。
今回の登壇は、エンジニアの野田から主催者の吉江さんに紹介いただいたことで実現しました。ちなみにエンジニアの野田自身も昨年の7月に開催された X-Tech JAWS 【第4回】に「準天頂衛星と AWS で日本の交通課題を解決する」という内容で登壇しています。詳細は岡山県玉野市のデマンド交通を支えるAWS+SORACOMという取材記事をご覧ください。
さて、今回の X-Tech JAWS はナビタイムジャパン本社1階の綺麗なセミナーホールでの開催となり、弊社も含めて6社が登壇しました。エーサースとしては「帳票も今や HTML でつくる時代!?日本の税理士を支えるサーバーレス帳票基盤」と題し、AWS のテクノロジーを使用して開発したサーバーレス帳票基盤のお話をさせていただきました。この記事ではその講演の概要をお伝えしたいと思います。また、この記事に合わせて公開しました発表スライドも一緒にご覧ください。
紙による顧客体験
エーサースでは、会計事務所向けにクラウドで税務・会計・給与システムを提供しています。会計システムにおいて、会計の帳簿や伝票は電子的に表現されます。一方で、先生やスタッフのみなさまが顧問先を訪問するときは、試算表などを印刷して紙で見せながら会話をしています。「ノート PC やタブレットで見せればいいのでは?」という声があるかと思いますが、顧問先への提供しやすさや通信環境、画面の大きさ、コンピューターを取り出すことによる圧迫感など様々な理由から、顧問先とのコミュニケーションに紙を用いることに価値があります。システムの画面だけではなく、システムから印刷される「紙による顧客体験」も重要な位置を占めているのです。
柔軟な HTML 帳票
これまで、エーサースでは Adobe AIR を用いて帳票印刷を実装してきました。しかし、Adobe AIR の Adobe によるサポート終了が迫っていることから、サーバーサイドでの帳票印刷の実装が急務となりました。Java による開発を長く続けてきているので、Java に対応した帳票開発ツールを利用することも考えましたが、会計や日本語特有の表現をオープンソースの帳票開発ツールや商用の帳票開発ツールで実現することは困難でした。最終的にそのような表現を HTML と CSS で実現できることがわかり、柔軟な HTML 帳票によって実装することを決定しました。残念ながら、HTML 帳票を様々なブラウザーで印刷することは難しかったので、サーバーにヘッドレス Chrome を導入し、その Chrome から PDF ファイルを生成することで、統一的な印刷を実現することができました。
サーバーレス帳票基盤
印刷のリクエストが散発的になることがわかっていたので、印刷用にサーバーを常時稼動させておくのではなく、サーバーレスな帳票基盤を構築することでコスト削減を実現しました。
まず、Endpoint (Amazon API Gateway) に HTML ファイルを送信します。そうすると Splitter (AWS Lambda) によるページ分割処理が実施されます。そのあと、Converter (AWS Lambda) による変換が分割されたページごとに並列で実行されます。すべての変換処理の完了したあと、Merger (AWS Lambda) によってページ分割された PDF を結合したものを Output (S3) に格納します。Client (Browser) は、Endpoint にリクエストしたときに Location ヘッダーに記載された URL を開くことで、Amazon CloudFront を経由した先の Output にある PDF ファイルをダウンロードすることができるという構成になっています。
このようなサーバーレス帳票基盤によって、コストを抑えつつも安定的に動作する HTML から PDF を生成する仕組みを実現しました。この基盤によって「柔軟な HTML 帳票」を帳票開発に利用することができ、「紙による顧客体験」のさらなる向上を達成できています。
エーサースでは、アプリとインフラの垣根なく、顧客価値の最大化に寄与するようなアーキテクチャをプロジェクトチームで考えて実現しています。そんなチームで一緒に働いてみたい方はぜひ当社にご応募ください。お会いできるのを楽しみにお待ちしております。