auカブコム証券:立ちふさがる技術的負債をHashiCorpで効率化
次にauカブコム証券から、同社システム技術部 副部長 兼 基盤グループ グループ長である高橋佑太氏が登壇。同社はWebサイトやスマホアプリを通じて、個人を対象とした証券取り引きサービスや証券取り引きサービスのREST API(kabu.com API)サービスを提供する。
主要な証券システムはオンプレミスとして日本東西のデータセンターで稼働しており、その他グループ間のエコシステムはAWS上でRESTful APIを中心としたシステムを稼働しており、約20名のエンジニアがシステム基盤の運用管理をしている。
同社のシステムには主に「注文管理」「顧客管理」「商品管理」「勘定管理」に分かれており、それぞれ取り引きUXを提供する「Web(チャネル)」、ビジネスロジックの主機能を提供する「Application(トレーディング/バックオフィス)」、データ管理やバックアップの「Database(RDBMS/KVS)」のレイヤーがある。このうち、商品管理から順次コンテナ化を進めている。なお、2023年3月にはスマホアプリを刷新した。ここで採用されている技術はコンテナへと移行し、すべてHashiCorp製品で管理運営している。
高橋氏は、まず同社の主要技術スタックの歴史を振り返る。2000年の会社設立当時、IIS(Microsoft Internet Information Services)などマイクロソフト技術のスタックが中心で、段階的にOSSを中心に幅が広がってきた。2014年ごろからスマホユーザー向けにチャネル拡充や商品情報拡充が始まってきた。このころからマイクロソフト以外のプロダクトを採用するようになる。AWSの利用開始もこの頃からだ。2020年ごろから次期アーキテクチャの検討を開始するようになり、先述したスマホアプリの公開を目指して商品管理システムの一部でコンテナ採用に踏み切った。既存システムの課題は主に5つあり、それぞれ解消するための技術や具体的な製品を挙げてみよう。
- リソース効率はDockerでコンテナ化
- IDやパスワード管理はVaultでシークレット管理
- 負荷分散と通信暗号化はConsulでサービスメッシュ
- 運用効率低下はNomadでオーケストレーション
- 保守性はAWS ECSやGitHubでマルチベンダーバージョン管理などを割り当て
既存システムの課題解決を3~5で詳しく見ていこう。まず3はシークレットの管理方法や実装方法がパスワード付きExcelや疑似KVSのテーブルで管理するなど、複数存在していて管理が煩雑化していた。さらに読み込み時の経路暗号化も課題だった。
ここにVaultを導入することで、シークレットをセキュアに一元管理できるようになった。コンテナ化されたアプリケーションはNomadとVaultを連携させ、アプリケーションは直接シークレット情報を意識しないような作りにしている。またコンテナ以外のアプリケーションはAppRole認証を利用したシークレット情報の取得を検証している。
続いて4は負荷分散と通信暗号化だ。従来はIPアドレスを中心とした静的負荷分散が中心だったが、アプリケーション間のサービスディスカバリや負荷分散機能を自前で作り込んでいたため新たに考える必要があったほか、通信経路の暗号化は各アプリケーションの実装に頼る状況に。さらに同社では、BIG-IPやgRPC負荷分散はTLS化が必須でサーバーサイドアプリケーションにSSL証明書を組み込む必要があった。
ここにConsul(connect)を導入することで、コンテナ間通信を一元管理し、ヘルスチェックを利用したサービスの登録・ディスカバリ、TLSによる通信暗号化をアプリケーションが意識することなく実施できるようになった。今後は任意のサービス間の通信のみ許可するようなAPI制御の実施を予定している。
最後の5では、サーバーごとのアプリケーション管理とデプロイ作業の難易度とコストがともに高まり、運用効率が低下。システムの初期段階では、サーバーに複数の役割(アプリケーション)を導入した構成となっており、インフラ変更時の影響範囲が広く把握するコストも増していた。またインターフェースや外部ライブラリの依存関係を意識したアプリケーションがあり、専用のビルド方法やリリース作業も存在していたという。
ここにコンテナ化とNomad導入により、開発段階から一貫した構成管理とデプロイ作業が可能になった。サーバーとアプリケーションが切り離されたことでインフラ変更に強くなり、Dockerイメージのレジストリ(ECR)管理も併せてリリース物の管理・準備作業も効率化している。高橋氏は今後の展望として、次のように述べている。
「現時点では43あるシステムのなかで、8のシステムでHashiCorp製品を適用しています。そのためまだ運用上のコスト削減は限定的ですが、今後は同製品を全体に向けて広げていくことで、リリース作業の半減を目標にしたいと考えています。またオンプレミスを中心にコンテナ化の推進と、非コンテナ領域へのHashiCorp製品の適用も検討していきます」(高橋氏)
HashiCorp Strategy Day Japan 2023 オンデマンド配信中!
本記事で取り上げた、各社のクラウド戦略とHashiCorp製品の導入・活用事例を視聴するにはこちらから!