内製化を視野に入れた、AWSサーバーレスアーキテクチャによるIoTシステム開発支援

内製化を視野に入れた、AWSサーバーレスアーキテクチャによるIoTシステム開発支援

内製化を視野に入れた、AWSサーバーレスアーキテクチャによるIoTシステム開発支援

NSW株式会社 様

元家 達也 様

公開日 2024.02.16


お客様の課題 お客様の課題
● 製品保守のレイバーコスト増加へ対処し、顧客満足度を向上させる
● システムへの製品接続台数の増加に伴う、クラウドサーバーの負荷増大への対処
● 中長期的な視野に立った、AWSサーバーレス開発の内製化
Arrow
ソリューション ソリューション
● サーバーレス開発の確かな実績と知見に裏付けられ、安心して開発が進められた
● 密なコミュニケーション、十分なマンパワーにより、オンタイムでの開発を進められた
● CloudFormation(IaC)による開発業務の透明化により、素早い内製化が可能になった

AWSのモノリシックな構成から、サーバーレスシステムへの移行

NSW株式会社様では、IoT技術を活用して、ユーザー企業様の製品(一般家庭向けの家電製品)を遠隔監視するシステムを、クラウド基盤(AWS)上に構築、運用しています。

AWSのIoT Coreを活用して、インターネット経由で市場に設置されたデバイスと通信を行います。これにより、デバイス管理(リアルタイムモニタリング・遠隔制御)やトラブルシューティング(問題の事前検知、状況把握)が可能となり、人的資源の確保や交通コストの削減を支援します。

AWS上に構築した仮想マシンのアプリケーションで、市場のデバイスから収集してきた情報を処理するという、モノリシックなシステムとなっていました。

ただ、ユーザー企業様の業績好調により、製品の出荷台数は増加しています。

それにしたがって、サーバーへの負荷集中や、ネットワーク接続コストなどの課題が発生し、遠隔監視システムの改修を検討することになりました。

システムの改修により、遠隔監視システムのパフォーマンスの最適化や、ユーザー企業様の業務効率化など、さらなる顧客満足度の向上を目指します。

システム改修にあたっては、監視対象のデバイス数が増加することによる、システムへの負荷をどうするかという課題がありました。

  • ネットワーク維持コストの問題
    接続デバイスの台数が増えると、単純にデバイスからシステムへのネットワークアクセスが増えることになります。デバイスの監視がシステムの目的である以上、常にデバイスとシステムとの間で通信できる状態にしなければなりません。
    AWSは従量課金制ですので、サーバーへのデータ転送量が増加すると、クラウド利用料金を圧迫します。また、AWS上のEC2へのアクセスが増加すると、システム全体のパフォーマンスに影響がでてきます。
  • デバイスからサーバへのネットワークが通信トラブルやメンテナンスに伴い切断された後のアクセス集中
    通常稼働時だけでなく、システムメンテナンス時にも課題がありました。遠隔監視システムのメンテナンスが終了すると、監視対象のデバイスは、一斉にシステムにアクセスを試みます。これがスパイクアクセスとなり、サーバーインスタンスの負荷を増大させていたのです。
    負荷に対応するために現状のモノリシックなシステムアーキテクチャから脱却し、より効率的なアーキテクチャへと変えていく必要がありました。
  • 扱うデータ容量の増加
    監視対象のデバイスが増加するということは、デバイスのログデータなどの管理データも増加することになります。
    運用コストを削減するために単純にサーバーインスタンスのストレージを増加させるだけでなく、他の効率的なアプローチをとる必要がありました。

以上の課題に対し、NSW様ではAWSのEC2インスタンスによるモノリシックなアーキテクチャから、サーバーレスアーキテクチャへ変更することで、サーバーへの負荷集中にともなう問題を解決しようと考えました。

またサーバーレスアーキテクチャへ移行することで、今後起こりうる課題に対しても、柔軟にシステムをスケーリングできるようにしたいと考えていたのです。

その際クラウドプラットフォームは、現状のAWSから移行することなく、また、フロントエンドの画面や業務フローなどは極力維持して、なるべくコストをかけずに改修を行いたいとご希望されていました。

ただ現行のシステムの開発・運用維持を実施しているチーム内には、AWSでサーバーレス開発を行うためのノウハウが十分ではありませんでした。

サーバーレスアーキテクチャについての概念的な理解はあったものの、開発実績が不足していました。また、既存のモノリシックなシステムを、サーバーレスな仕組みに置き換えるにあたって発生するであろう具体的な問題や懸念事項、問題解決の手法などの知見が足りなかったのです。

無難で、安定したサーバーレスアーキテクチャへの移行を実現するために、NSW様では、設計段階から参画できる、経験豊富なパートナーを必要としていました。

豊富なサーバーレスの開発実績を背景に、システムアーキテクチャの設計から参画

そのような折、NSW様が当社Ragateのホームページをご覧になり、サーバーレスアーキテクチャを活用した導入事例の記事に目をとめて頂き、お声がけを頂きました。

当社は「AWS Lambda」、「AWS DynamoDB」「AWS CloudFormation」のAWSパートナーネットワーク(APN)認定を受けており、サーバーレス開発業務にも豊富な経験と実績を有しております。

当社のサーバーレスアーキテクチャ開発に対する知見を役立てるにあたって、まずは新アーキテクチャの設計段階から関わらせて頂きました。具体的には、NSW様と共同で新アーキテクチャの設計レビューにおいて、豊富な開発の経験からベストプラクティスに基づいた、アーキテクチャの設計支援を実施しました。

また、現状のインフラの仕様を調査する際には、弊社のIaC(Infrastructure as Code)の経験を活かしています。

フロントエンドにつきましても、すでにインタビュー済みであった現状の画面を確認しつつ、オペレーターの方が使いやすいように設計を進めました。

その他コストに関しましても、既存のOSS(Open Source Software)を組み合わせることで、開発工数を抑える工夫をしております。

現在では、フロントエンドと、インフラおよびバックエンドの、ベースとなる部分の実装が完了しています。

フロントエンド: 

  • Vue.jsおよびNuxt.jsと、TypeScriptを用いた画面開発 

インフラおよびバックエンド: 

  • AWS CloudFormationを使用したインフラの構築
  • AWS IoT Coreとの連携 
  • Amazon Aurora (PostgreSQL)の設計と実装

システム全体の開発委託ではなく、NSW様と当社とで機能単位で役割を分担し、実装を進めております。

内製化を意識し、中長期的に継続が可能なシステムを実装

今回、NSW様のサーバーレスアーキテクチャへの移行案件につきましては、サーバーレスへの不安が払拭できたこと、さらに密なコミュニケーションがとれたこと、そして開発体制が整っていたことについて、評価して頂きました。

お打ち合わせ風景

経験に裏付けされたアドバイスで不安を払拭

サーバーレスアーキテクチャに関して実装前の懸念事項の洗い出し、設計の段階から適切なアドバイスをさせて頂きました。

サーバーレスアーキテクチャの単なる知識だけではなく、多くの実績による裏付けをもって、起こりうる問題の予測や、その回避方法などについての助言も、説得力のあるものになったと考えています。

NSW様からは、ご自身のユーザー企業様に対しても、自信をもって説明、提案ができたとのお言葉を頂きました。

円滑に業務を進めるためのコミュニケーション

今回の開発案件は、ゼロベースからの開発ではなく、既に稼働しているシステムの移行であったため、円滑に業務を推進することを心がけました。

例えばフロントエンドの開発についても、NSW様からご提供頂いた情報をしっかりと精査し、密にコミュニケーションをとることで、効率的な設計作業を実施することができました。

NSW様とは地理的にはオフィスは離れた場所にありましたが、リモート会議ツールなどを活用し、定期的にミーティングを開くなど、認識のズレが生じないようにしました。

お客様の要望に合わせた開発体制

今回の開発案件では、当社の関わり方は、部分的なものではありました。

設計段階では、インフラやフロントエンドの設計、実装においても一部の機能を担当するなどです。

ただ当社では、事前にお客様の要件をしっかりと精査し、すり合わせを行うことに特に力をいれております。そのため、実装を担うエンジニアには、仕様通りに実装してもらうだけの段階にまで、事前に練りこみをしています。

たとえプロジェクトへの参画が部分的なものになっても、お客様のご要望を満たすために充分な人材を、余裕を持ってアサインできています。

もちろんNSW様からも、「常にオンタイムの進行で、ともすると、こちらの確認が間に合わなくなるほど」とのお言葉もいただいております。

内製化を目指した中長期的なサポート

今回の遠隔監視システムでは、NSW様から外部への委託が難しい開発領域がありました。

そのため、いつまでも外部に開発を委託する訳にもいかず、中長期的にはサーバーレス関係のコンポーネントの開発業務もNSW様で内製化する必要がありました。

当社では、IaC(Infrastructure as Code)を活用し、インフラ関係の設計開発の透明性を高めています。IaCでは、これまでのように手動でリソースを構築するのではなく、コードを利用して自動でリソースの構築を実現します。

コードを利用することで作業の属人化を回避でき、「自動化による作業効率のアップ」「トラブルシューティングの効率化」「運用効率の向上」「複数の環境への容易な展開」も期待できます。

また、OSS(Open Source Software)の活用は、ソフトウェアの調達コストを抑えるだけではなく、開発の透明性を確保する効果があります。

OSSではコミュニティにより情報交換が活発に行われており、また、ドキュメントも充実しています。これにより、ノウハウの属人化を防ぎ、開発の透明性の向上と、お客様の内製化を促進できます。

当社としては、お客様の状況に応じて、開発業務の内製化を支援し、長期的に良好な関係を築いていきたいと考えております。

豊富な開発実績と知見でAWSサーバレス開発への移行を支援

クラウドプラットフォームのメリットを享受しつつ、柔軟なスケーリングが可能で、コストの削減にも寄与するサーバーレスアーキテクチャへの関心は、ますます高まっています。

ただ、サーバーレス開発への移行の必要性を感じながらも、なんとなくハードルが高いように感じられ、なかなか手を出せないと感じられるお客様も多いと思います。

当社では、豊富な開発実績と知見により、サーバーレス開発に対する不安を取り除きます。

お客様の実情に応じて、内製化へのお手伝いなどを含めた、柔軟なシステム開発支援が可能です。

今後もお客様へ、AWSによる新たなソリューションを届けられるように尽力していきます。

Ragateメンバーの紹介

フルスタックエンジニア 杉山元和

エンジニア歴10年以上のフルスタックエンジニア。 バックエンドからフロントエンドの実装に幅広く携わる。 現在は、AWSサーバーレスの設計/開発を中心に、数多くのお客様へ最新技術の提案を行っている。

好きなAWSサービス

CloudFormation/Lambda/DynamoDB/AppSync/StepFunctions/Cognito/ECS

AWS SAP 認定 プロジェクトマネージャー 久保翔太

AWSソリューションアーキテクト Pro 認定プロジェクトマネージャー。 AWSサーバーレス開発のプロジェクトマネージャーとして、数多くの大規模プロジェクトへAWSサーバーレス導入を手掛ける。得意領域は、大規模開発の中長期を見据えたAWS全体の設計。

好きなAWSサービス

CloudFormation/Lambda/DynamoDB/OpenSearch/AppSync/CloudFront/StepFunctions