クラウドをより身近に!Google Driveを使った業務データ移行入門

2013年10月1日(火)
清野 克行

最近、クラウドファーストという言葉が使われるようになっています。クラウドファーストは、システムの導入・構築に際して、「まずクラウドでできないかを検討し、それが困難な場合にはオンプレミスでの構築を検討する」という考え方です。

しかし、実際に中小の会社などの担当者からよく聞かれるのは、業務内容をクラウドに移行するのは、「まだ不安がある」、或いは「クラウドはやってみたいが技術面での敷居が高い」といったような言葉です。確かに、中小の一般的な企業担当者の多くは、業務システムもクラウド移行を目指すべきと言われても、不安を感じる会社も多いかもしれません。

本連載では、いきなり本格的なクラウドへの移行を行うのではなく、難易度の低いレベルから本格的なクラウドへと、2ステップでクラウド移行を実現するシナリオを紹介したいと思います。

具体的には、、

1stステップとして、難易度の低いクラウドストレージ上のGoogle Apps(以後、Apps)への移行を行い、
2ndステップで、AppsをGoogle App Engine(以後、App Engine)とリンクし、本格クラウドシステムへの移行を達成する。

という考え方です。ここで特徴的なのは、本格クラウドへの移行後も、Appsを使用した処理、さらにはここで取り上げるExcelを使用した従来からのエンドユーザー処理はそのままでも全く問題がないという点です。

1. 連載での最終的なシステム構成

図1:連載での最終的なシステム構成(クリックで拡大)

図1は連載での最終的なシステム構成です。図の右側がApp Engine環境、図の左側がApps環境で、処理の流れは次のようになります。

(1)図左下のExcelをGoogle Drive上にアップロードする。アップロードされたExcelはGoogleのスプレッドシート(以後 スプレッド)に自動変換される。

効果:

  • セキュリティ:Googleアカウントを使用してスプレッドを参照、編集可能なユーザー(およびユーザーグループ)で共有することができ、作業の効率化を進めることができます。
  • スプレッドに変換されると、Google Apps Script(以後、GAS)により、JavaScriptを使用した強力なプログラミング処理機能を付加することができます。

(2)Google DriveのスプレッドデータをApp Engineのアプリから読み込んで、Datastoreに書き込む。

効果:

スプレッドデータをApp Engineから読み込み、さらにDatastoreに書き込むことによって、本格的なクラウド環境でスプレッドデータを扱うことができるようになります。例えば、メール送信などのサービス機能や、Task Queuesによる処理の自動化はこの後見ていきますが、更にChannelを使用したリアルタイムWebや、BigQueryを使用したビッグデータ解析などとリンクすることもできます。

(3)(2)の処理に書き込み完了を関係者のメール送信する処理を追加し、App EngineのPull Taskを使用して処理を自動化する。

効果:

App EngineのTask Queuesを使用すれば、

  • Google Drive上のスプレッドデータをApp Engineから読み込む
  • スプレッドデータをApp EngineのDatastoreに書き込む
  • 処理の完了を関係する担当者にメールで通知する

以上のような処理をすべて自動化することができ、担当者の負担を大幅に削減できます。

(4)Datastoreに書き込まれたスプレッドデータをApp Engineから読み取り、そのデータをGASのURLFetchを使用してスプレッドに書き込む。データが書き込まれたスプレッドはもとのExcelシートにも再現できる。

効果:

スプレッドシートの累積数は業務によっては膨大な数になります。しかしAppsは、App EngineのDatastoreに書き込まれたデータをスプレッドに読み込み再現する事ができます。従って、データが書き込まれたスプレッドをDrive上に置いておく必要はなくなり、スプレッドの管理工数削減およびセキュリティ上大きな効果を上げることができます。

本連載について

連載ではおおよそ以上のような流れに沿って解説していきますが。図1左のAppsではプログラム言語としてJavaScriptを使用し、右側App EngineではJavaを使用します。連載最初の部分では、プログラミング経験がほとんどないような方でも理解できるように進めますが、その後のApp Engineの処理が関係する部分辺りからは、プログラミング経験もある程度要求される内容になってきます。

また、AppsやEclipseのUI表示は、日本語化も可能ですが、ここではすべて英語表記のままにしてあります。たとえばGoogle社のドキュメントを参照するような場合、日本語のドキュメントは内容が古かったり、日本語化されていないような場合もかなりあります。従って英文のドキュメント参照が強く推奨されますが、その場合はすべてUI表示も英語になっているので、英語表示のUIに慣れておく方が後々便利な事が多いという主旨です。

有限会社サイバースペース
慶應義塾大学工学部電気科卒。日本IBM、日本HPなどにおいて、製造装置業を中心とした業務系/基幹業務系システムのSE/マーケティングや、3階層C/Sアーキテクチャによる社内業務システム開発などに携わる。現在は、Ajax/Web 2.0関連のセミナー講師/コンサルティング、書籍執筆などを行っている。情報処理学会会員。http://www.at21.net/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています