「小さなDX、はじめませんか?」をテーマに展開している「ドンピシャ印刷」のサービスですが、裏側では12万件の最新住所データなど、非常にボリュームのある本物のデータを扱っています。これらを扱うシステムを安全に開発・検証するためには、「ローカル(自分のPC)での動作確認」が欠かせません。しかし、大量のデータをローカル環境で再現してテストするのは、実はエンジニアにとってなかなかの「重労働」でした。 今回は、重いローカルエミュレータからスマートに「卒業」し、開発効率を劇的に向上させたインフラ運用をご紹介します。

これまでの開発:Dockerに入れたエミュレータとの日々

これまでは、ローカル環境でのテストを行う際、PC内のDockerコンテナに Firestore や Cloud Storage のエミュレータイメージを入れて動かしていました。 この方法は完全に独立した環境でテストできるというメリットがある一方で、個人開発の現場においては以下のような小さくないストレスを抱えていました。

  • PCへの負荷が重い: Java(Spring Boot)の起動やIDEに加え、Docker上で複数のエミュレータを走らせると、PCのファンが回り続け、動作が目に見えて重くなります。
  • データの同期が面倒: クラウド上のステージング環境にある12万件のテスト用データを、ローカルのエミュレータに毎回再現して同期させる作業は、非常に手間と時間がかかります。

「もっとシンプルに、ステージング環境にある本物のデータを使って、サクサク検証できないか?」という課題に直面していました。

エミュレータからの「卒業」は、驚くほど簡単だった

結論から言うと、ローカルの重いエミュレータ環境から卒業し、クラウド(GCP)上のステージング環境にローカルPCから直接、安全に接続するのは驚くほど簡単でした。 「クラウドに直接つなぐなんて、セキュリティ用の秘密鍵(JSONファイル)の管理や設定が面倒なのでは?」と思われるかもしれません。かつては、サービスアカウントの秘密鍵ファイルをローカルにダウンロードして環境変数に登録する、という手間と紛失リスクを伴う方法が一般的でした。 しかし、GCPにはこれを一瞬で解決するスマートな仕組みが用意されています。

コマンド1つで完了する「ADC(アプリケーションデフォルト資格情報)」

私たちが採用したのは、GCPの「アプリケーションデフォルト資格情報(ADC:Application Default Credentials)」という仕組みです。 なんと、ローカルのターミナル(コマンドライン)で以下のコマンドを1回実行するだけで、すべての設定が完了します。

  • gcloud auth application-default login

このコマンドを実行すると、ブラウザが自動的に起動します。そこで自分のGCPアカウントでログインしてアクセスを許可すると、ローカルPCの所定の場所に安全な認証情報が自動的に保存されます。 あとは、ローカルのJavaプログラムを起動するだけ。SDKが自動的にこの保存されたADC情報を検出して、リモートのステージング環境のFirestoreやCloud Storageへ、秘密鍵ファイルを一切扱うことなくセキュアに直接接続してくれます。

まずは無料で「ドンピシャ」精度を体験!

最後に

重いDockerコンテナの起動を待ち、データの同期に頭を悩ませる時間は、すべて不要になりました。 コマンド1つでステージング環境の実データに直接接続できるようになり、はがき宛名印刷のレイアウト調整や、長い文字列が伝票の枠内に綺麗に折り返されるかの検証を、実機データを使って爆速で行えるようになりました。 新しくなったドンピシャ印刷の「無料ツール」や、位置合わせにこだわった伝票印刷を、ぜひあなたの手元で体験してみてください!