ガイドラインの順守や省庁との関係性…X-Tech開発の特徴
X-Techには次の特徴がある。
- 国が定めた制度やガイドラインを順守したシステムをつくる必要がある
- 外部システム連携が必要となるが、レガシーなシステムも存在する
- 関係省庁との関係性が重要になる
- 複雑な背景も多く、良いプロダクトをつくるエンジニア・デザイナーだけでなく、業界の事情に精通した人との連携が必要になる
X-Techの例として、田中氏はCLINICSカルテの開発の様子を紹介した。CLINICSカルテの開発当初、順守すべきガイドラインは厚生労働省、経済産業省、総務省の3省が出しているものがあったという。しかもガイドラインの内容は多種多様。特にシステム構成に影響が大きかったものとして、田中氏は次の3つを上げる。
まず1点目は、サービス提供に用いるシステム、アプリケーションを日本国内法の適用が及ぶ場所に設置すること。「これは大きなポイントだった」と田中氏は明かす。東京リージョンがあっても米国法が適用されるクラウドサービスはガイドラインの規定上使用することができないからだ。
次に、2点目は、導入医療機関に対してクライアント証明書を利用したSSL/TLSクライアント認証を実施すること。そして3点目は、アカウントごとの権限管理や各種操作のログ管理・閲覧を厳密にすることだったという。
「ガイドラインの内容を一つ一つ整理分析し、システム設計やアプリケーション設計に適用していくことが必要になる。要件を満たしつつ、スピード感を持って開発するために、フルマネージドサービスを活用した」(田中氏)
田中氏自身、ガイドラインを整理分析し、マネージドサービスとのフィットギャップを調べるのに、相当の工数を割いたという。
CLINICSオンライン診療の初期構成は、AWSとは別のクラウドサービスを使用していた。しかし、「日本国内法の適用が及ぶ場所」ではなかったので、全面的にAWSに移行することを決定したという。
「CLINICSは医療機関も患者さんも使うシステムのため、エンドポイントを一緒にしていた。しかしクライアント認証が必要になるのは医療機関のみ。そこで移行期と割り切ってエンドポイントを分け、それに応じてNginxのSNI別にし、患者さんはサーバー認証、医療機関はサーバー認証に加えクライアント認証と設定を分割することにした」(田中氏)
最近の構成はNLB+AWS Fargate+Amazon ECSで構築。NLBはTCP443で素通りさせてNginxでクライアント認証を行っている。
ガイドラインではセキュリティに関するさまざまな要件も定められているため、設定、管理にAWS Systems ManagerやAWS Config、監視・モニタリングにAmazon GuardDutyやAmazon CloudWatch、ログ収集にAmazon VPC Flow Logs、AWS CloudTrail、通知にAWS Lambda、Amazon SNSなどのマネージドサービスを活用している。こうすることで、自前で仕組みを用意することなく、セキュアなシステムが構築できる。「マネージドサービスをフル活用することによって、本来のプロダクト開発に集中できる」と田中氏は語る。
医療系プロダクトの場合、ガイドライン以外にも他システムとの連携など考慮すべきことは多々あったという。田中氏は「医療用画像管理システムや検査オーダーシステム、診察券発行機、自動精算機など、院内の閉じられたネットワークにはさまざまな機器、システムが存在する。それらをクラウド型電子カルテに連携するために、さまざまな連携方式を満たすプロキシ役が必要だった」と語る。
そこでGoで開発したエージェントプログラムをプロキシとして院内に配置。エージェント管理にAWS IoTを活用。システムや機器のさまざまなプロトコル差異を吸収し、院内システムとの連携を実現したという。
開発がうまく進んだ背景には、臨床経験のある医師や以前厚生労働省で医系技官をしていた職員など、「さまざまなバックグラウンドを持つメンバーが当社に在籍しているため」と田中氏は明かす。つまり、テクノロジーを活用した医療分野のプロダクト開発においては、医師やエンジニア、デザイナー、ディレクターがワンチームで課題に対して協力し合う風土が重要となるわけだ。
X-Tech時代に求められるエンジニア像
これからのエンジニアに求められることとして田中氏は、同社CTOの平山氏がブログで書いた次の文章を紹介した。
「社会の課題を的確にとらえ、適切にテクノロジーを注入し解決していく。エンジニアの本質を追求することがより強く求められる時代になってきているのではと思います」(メドレー 取締役CTO 平山宗介氏)
「いきなり社会課題と言われてもよくわからない」という人もいるだろう。田中氏は「最初から大きく考えなくても良い。まずは家族や友人など周囲の人にとって役立つかどうかから考えれば良い」とアドバイスする。「大事なのは自分ごととしてとらえられるかである。それができれば、結果として社会課題の解決につながる」と田中氏は言うのである。
そして社会課題解決には長期視点が必要になる。だからこそ、キャリアについても長期視点で計画していくことが重要になる。「ものづくりができるエンジニアであることを大事にし、常にスキルバランスを把握して、今は何をなすべきかを考え、計画的にスキルアップしていくことをお勧めする」と田中氏は話す。
そしてもう一つ欠かせないことは、他の職種の人も同じ課題に立ち向かう仲間として大事にすることだ。
X-Techをはじめ、社会課題をテクノロジーで解決する時代となるこれからは、SIとWebの両方のスキルを持つエンジニアがキャリアの1つとして重要になっていく。その上で、自分の書いたコードが現実社会にどんな影響を及ぼすかイメージし続けられることも重要だ。
「こういうことができるエンジニアであれば、年齢に関係なく、きっと活躍し続けられるはずだ」(田中氏)
お問い合わせ
株式会社メドレー