システム開発におけるインフラ設計の概要と気を付けたいポイント
公開日:2021.01.19 最終更新日:2023.11.14
本記事は、システム開発におけるインフラ設計とはなにかという概要から、気を付けたいポイントまで解説します。
システム開発に関する専門用語がわからないという事業者様は、ぜひ外注を依頼する前にチェックしてみてください。
システム開発におけるインフラ設計とは
インフラ設計とは、アプリケーションに適切なシステム構成、ネットワーク構成を導き出すことです。
インフラ設計を行う人をインフラエンジニアといいます。
具体的には、アプリやシステムが問題なく動作するための基盤として、インフラ構築を行います。
この際にインフラエンジニアは、インフラ設計に基づいた機材の調達や、システムの組立配線を行います。
物理セットアップといわれる電源管理は、インフラ設計の中でも高度なテクニックを要する作業です。
また、インフラエンジニアはインフラの保守・運用も対応します。
保守・運用とは、開発したシステムが正常に作動するようにするために、監視やメンテナンスを行うことです。
具体的には、定期的にシステムのログを取り異常がないかの点検を行う通常時運用と、システム障害が発生した際に原因の追求やトラブル解消を行う障害時運用があります。
運用まで行ってくれる優良なシステム開発業者は、こちらのシステム開発業者を選ぶポイントを参考に、業者選定を行うとよいでしょう。
インフラ設計から運用までのステップ
何もないオフィスに通されて「それでは今からインフラ設計を行ってください」と言われても、設計の経験がない方であれば何から始めて良いのかわからず動けないでしょう。
そこでインフラ設計の流れを知りましょう。
基本的には要件定義、設計、構築、テストを経て、やっと運用の段階に進みます。
システム開発のリリースまでの流れとほぼ同じです。
この手順を正確に行うことで、プロジェクトがスタートした際に急なトラブルに遭遇することなくスムーズに運用していくことができるのです。
要件に合わせたインフラ設計の実施
インフラ設計の基本的な指針は要件定義に集約されています。
どのようなインフラが必要なのか、また、どれくらい必要なのかを明確にしていく必要があります。
よくあるトラブルは、インフラ設計が曖昧だったためにプロジェクトがスタートしてすぐにネットワークの遅延が起こったり、プロジェクトが大きくなる予測ができておらずにスペックが足りなくなったりなどといった事態です。
逆に、オーバースペックで不要で高価な機器を購入してしまったという例もあります。
外部に制作を委託する際にも、これから行うプロジェクトについて正確に伝えていく必要があります。外注先の方々はインフラ構築のプロなので、細かい問題点も気付くスキルはあります。しかしながら、発注する側の社内のことは全くわかりません。
普段相手が言わなくてもわかってくれることも、外注先の方々はわかりません。
もし外注することを検討されているのであれば、インフラを運用後にどのような規模でどういったことを行いたいかを明確にし、細かい部分まで伝えられる努力を行うようにしましょう。
設計に合わせたインフラの構築
要件定義で作成した設計書をもとにして、要望に合わせた機器を調達し設置する構築に移行します。
機器は購入やレンタルがあり、予算や状況に応じて購入する必要があります。
また、機器によっては納期がかなり先になるものもありますので、運用する時期に間に合うかが重要です。
実際に機器を設置する期間も必要になることから、それを逆算して注文を行いましょう。
また、機器のスペックにも気を使う必要があります。
オーバースペックになってしまった際は余裕を持って作業ができるという利点はあるものの、費用がかさんでしまいます。
クラウド環境に構築する際には変更は容易ではありますが、オンプレミス環境となると一度投資してしまった費用は壊れるまで使用しなければ無駄になってしまいます。
各機器にキャパシティが設けられているので、一つずつ機器を確認しながら要件に合わせた機器を選択して構築していきましょう。
各種動作のテスト
構築が終了すると、実際にネットワークに繋いでシステム開発を行ってみましょう。
ここで重要なのは、問題なく動作することを確認することはもちろんですが、どこまでインフラ機器が耐えられるかにも注目します。
界値を知ることにより、オフィスに作業員をどれだけ配置できるのか、どの程度の負荷がかかる作業ができるのかを知ることができるので、必ず確認しましょう。
万が一テスト段階で不具合があった際には、問題を解決するまで実際の運用を開始することは避けるようにしてください。
問題は必ず日々の業務中にトラブルとなって目の前に現れます。
もし運用が始まってから対策する場合、システムを一度ダウンさせなければ作業できないことがほとんどです。
また、原因解明のためにも一切のネットワーク接続が不可能になることもあるので、テスト段階で原因を突き止めて解決することはとても大切なことなのです。
遅延が生じた際にパケットキャプチャを取るパソコンを設置するだけでも、スイッチの再起動など一瞬ネットワークを切らなければいけないこともあります。
テスト段階での苦労は運用開始時の転ばぬ先の杖だと思って作業を行うことが望ましいです。
運用開始
いよいよ作成したインフラの運用開始となります。
家庭用のインフラ機器であれば設置してからほぼメンテナンスフリーで使用できることが多いですが、オフィスのインフラ機器は異なります。
温湿度の管理や脆弱性管理など、安心安全にインフラを使用するためには日々の監視やメンテナンスが必要になります。
そのため、インフラ機器を管理する作業員は常駐させる必要があります。
システム開発のインフラ設計で気を付けたいポイント
ここでは、システム開発のインフラ設計を行う上で気を付けるべき2つのポイントをご紹介します。
ポイント①機材の納品時期を考慮して余裕を持ったスケジューリングをする
インフラエンジニアは、機材の納品時期も念頭に置きながらインフラ設計を進める必要があります。
なぜなら、インフラ機材は海外から取り寄せることが多く、納品まで時間がかかるからです。
ポイント②システムに必要十分なキャパシティを判断する
システム開発におけるインフラ設計の一番大切なポイントは、システムに対して必要十分なキャパシティを備えているインフラを開発することです。
小さすぎると後々問題が発生することも少なくありません。
特に、アプリやゲームに最適なインフラ設計をする場合には、更新などを見込んで、多少の余裕を持たせたキャパシティが必要になるでしょう。
また、適切なキャパシティよりも大きい場合であれば運営上問題は発生しませんが、リソースやコストの無駄になってしまいます。
適切なキャパシティを判断するのは非常に難しいことではありますが、優秀なインフラエンジニアであれば最適なキャパシティを判断しながら開発を進めていくことが可能です。
ポイント③目的やニーズを確認する
インフラ構築を行った後は、構築や設計に携わった人が使用するケースはほとんどありません。
使用する開発者がどんな目的でインフラを使用するのか、どのようなニーズがあるのかはしっかりと認識合わせを行う事が重要です。
ネットワークを考えた際にも、社内のみの通信でも良いのか、顧客回線を独自に引く必要があるのか、会議で無線を使用することが多いのか、どの程度外線を使用するのかなど、細部にわたるニーズを聞き、不自由なく使用してもらう必要があります。
開発者でインフラ知識を持っている人は稀です。インフラ運用の経験がある人が聞き取りを行い、構築していくことが重要です。
開発を行っている方であれば、受注する際に要件定義を行う際、クライアントから詳細な情報を聞き出しているはずです。
これと同様に、インフラも詳細情報が必要になります。
しかしながら、開発とは異なりアジャイルでスピーディーなインフラ構築は実機の費用もかかるのであまり現実的ではありません。
もちろん、AWSやAzureなどの仮想空間においては設定を容易に変えることができるので可能ではあります。
もしオンプレミス環境で構築する場合は、相手が考えていること、やりたいことを全て捻り出してもらってから構築を行いましょう。
ポイント④セキュリティ対策を施す
セキュリティ対策と利便性は相反するものとされていますが、不便に感じさせずにセキュリティ対策を行っていくことは非常に重要なことです。
セキュリティが脅かされてしまうと、ネットワークが全てダウンしてしまったり、資産情報を抜き取られてしまったりといった甚大な被害が起こります。
セキュリティで事件が起こると、企業イメージもダウンしてしまうのでその後の会社経営に甚大なる被害を与えることは避けられません。
ファイアウォールをどこに設置するのか、ふるまい検知は導入するのか、どのポートを開けるのかなど、セキュリティ対策で行うことは無数にあります。また、銀行などのネットワークは全てスタティックルーティングが行われており、インターネットに出られない設計になっています。
しかし、これらの対策を全て行ってしまうとシステム開発の弊害となることも多々あります。そのため、落とし所を決める必要があります。
また、使用している機器やソフトに脆弱性が発覚した際には、速やかに対策する必要があります。以前、金曜の夕方に脆弱性が発覚したものの、月曜日に対策することにしてその日は帰宅し、確認してみると攻撃を受けた痕跡があったということもあります。
脆弱性が発覚すると、すぐに対応のバージョンがリリースされますので、この場合であれば緊急メンテナンスとして遅くとも土曜日に対応する必要がありました。
セキュリティ対策は気にしても足りないくらい気を使わなければなりません。
セキュリティに精通した方からの意見を聞き、どの程度であれば問題がないのかを明確にしつつ、使用するシステム開発者からの意見をすり合わせていく必要があります。
インフラ運用で注意するポイント
細部まで気を遣いながら構築したインフラも、その後は手放しで運用できるほど甘くはありません。むしろ構築の期間は有限ですが、運用となるとオフィスがなくなるまで続きます。
インフラに求められることは、大きな成果ではなく安定した稼働です。
現在設置されているインフラがあるのが当たり前と思って使用してもらうこと、そして障害発生時にはいち早く復旧するというのがインフラエンジニアの仕事です。
これらを実現するためにはどんなことに注意して運用していけば良いのか、ポイントを押さえておくことは非常に重要です。
より良いオフィスを構築し、最高の環境で開発してもらうにはどうしたらよいのかをご紹介していきます。
障害発生時の対応
インフラにおいて障害は避けたい事項ですが、残念なことに日常的に大小様々な障害が起こります。そこで、どのような流れで障害発生に対応していくか準備しておく必要があり
ます。
機器の故障はもちろんですが、それ以外にもセキュリティに問題があり障害が発生した場合、設定に不備があり障害が発生した場合など、様々な要因があります。
これらの原因を追求することは重要ですが、障害発生で最も重要なのはどのように復旧させるかに注目しましょう。
従業員がデスクに出ているハブにLANケーブルを差し間違えてしまいループが起こり、全ネットワークがダウンしてしまうというリスクも抱えています。
どのような手順で、どれくらいの時間で復旧させるのかを日々明確にし、万が一トラブルが発生した場合に対応できる準備をしておく必要があります。
また、データも会社にとっては重要な資産です。
一昔前であれば会社に大きなサーバを設置し、そこにデータベースを設置する方法がメジャーでした。
しかしクラウドの普及により、データセンタに情報を貯蔵する流れがメジャーとなりました。
もし大災害が起きた際にも、2ヶ所の離れたデータセンタに情報を保存しておけば、データが損なわれることもなく、復旧も早いです。
一番はデータが失われないように注意することですが、インフラの障害対応は障害が起こった際にどれくらい早く、どれくらい完全に修復できるのかを対策することも大切です。
サーバの安定稼働
サーバにも様々な役割がありますが、全てのサーバが機能することで、システム開発を可能にしています。もし仮に一つのサーバの負荷が上がりパフォーマンスが落ちてしまった場合、システム開発のパフォーマンスが同様に落ちます。
そのため、開発のスピードを落とさずにプロジェクトを運用するには全サーバを安定させる必要があります。
何か一つのサーバがダウンしてしまうと全ての業務がストップしてしまう可能性もあります。全てのサーバを安定させるということは、負荷が高くなったりダウンした際に即座に対応できるように体制を整えておく必要があるのです。
また、一つのサーバがダウンした際にも予備のサーバを稼働させる準備をしておく「冗長化」という技術もあります。
プロジェクトが止まるとその企業の収益に直結しますので、安定稼働を目標にしていきましょう。
保守管理・監視運用
インフラエンジニアとして最も重要なのが、保守管理・監視運用です。
オフィスのインフラ環境はメンテナンスなしに安定稼働することはあり得ません。
自動車を所有したときをイメージしていただくとわかりやすいですが、例えばバッテリーやブレーキパッドの寿命が近づいてきたときに、交換しなければ車は動かなくなったり性能が落ちてしまいます。
例え車のエンジンが掛からなくても、特に急いでいない場合は修理して再び乗れば良いかもしれませんが、オフィスのインフラは故障してしまうと環境が停止してしまい、停止した時間は開発ができないので損失が生まれます。これを避けるために保守管理・監視運用を行うのです。
機器の寿命が近づいてきた際には、まだ使用できるかもしれませんが思い切って交換をしてしまいます。
それ以外にも、予期せぬトラブルを防止するために些細なことでも注目して原因を追求することが求められます。
これらを行うことで、24時間いつでも開発できる環境を整えているのです。保守作業や監視運用に関しては、必ず経験豊富な人が作業を行う必要があります。トラブルが起こった際の解決方法は、いくら学んでも経験に勝るものはありません。
もちろん、未曾有のトラブルが起こった際には調べたりメーカーに問い合わせをしたりといった対応もありますが、基本的にはトラブルと損失はイコール関係です。今までの経験を活かして、どれだけ早くトラブルを解決できるかが鍵になります。
もし社内に経験が豊富な方がいない場合は、外注するという方法もあります。社内で人員を確保する場合、インフラ以外の情報システムを任せることもあるため、トラブルが起こった際には社内の申請関連が回らなくなる可能性があります。
もしも人員を確保するのが難しい場合、積極的に外注を検討してみるのも非常に良い方法と言えます。
インフラ設計とは、アプリケーションに適切なシステム構成とネットワーク構成を導き出すこと
以上、システム開発におけるインフラ設計の概要と気を付けたいポイントについて説明しました。
インフラ設計とはアプリケーションに適切なシステム構成ネットワーク構成を導き出すことです。
システム開発をする際には、インフラ設計に必要な機材の納品期日も考慮して、余裕のあるスケジュールを組むことが大切です。
また、システム開発後に問題が起こらないようにするためには、システムに対して必要十分必要十分なキャパシティを判断した上でインフラ設計を行う必要があります。
「インフラ設計を安心して任せられる経験・技術のある業者を見つけたい」
と思われた事業者様はぜひEMEAO!をご利用ください。
第三者機関の審査を通過した優良業者の中から、条件にピッタリな業者だけを厳選して、無料でご紹介いたします!
この記事を書いた人
編集部員 河田
編集部員の河田です。編集プロダクションでの書籍編集の経験を経て、現在はEMEAO!のWebコンテンツ編集・執筆とお客様へのインタビューを担当させていただいています。日々、コツコツと皆さんのお役に立つ情報を発信していきます!よろしくお願いします。