システム開発とは?企画から開発までの基本的な流れをわかりやすく解説 ~インフラ設計

この記事はこんな人向け

  • システム開発とは何かを簡単に知りたい
  • システム開発のはじめ方について知りたい
  • システム開発の流れを知りたい
  • システム開発に必要な事を知りたい
  • システム開発についての注意点について知りたい

システム開発とは?企画から開発までの基本的な流れをわかりやすく解説。今回はインフラ設計編です。

一昔前までは、インフラ設計と言うと、サーバーやネットワーク機器のサーバーラックの物理設計やLANケーブルの物理的な配線図などを盛り込んだ後にルーティングなどの論理設計のことをインフラ設計とすることが多かったのですが、AWSやGCP・Azureなどクラウド全盛となった今、アプリやWebサービス開発を行う上でインフラを設計する場合にはクラウドサービスを利用したインフラの設計を行うことが主流となりました。

クラウドサービスを利用したシステム開発では、インフラ設計=AWSやGCP・Azure、VPSなどでのkubernetes設計をインフラ設計と位置付けています。

サービスを設計する

現代のインフラ設計=AWSやGCPなどのクラウドサービスを設計すると書きました。クラウドサービスの設計では、ネットワーク機器や物理サーバーの設計や設定は、クラウドサービスの提供事業者が予め行ってくれていますので、特に行う必要はありません。クラウドサービスを利用する場合のインフラ設計者が行う設計とは、AWSやGCPなどが提供するサーバーサービス、ネットワークサービス、セキュリティサービスなど「サービスの設計」を行うことがインフラの設計となるのです。

Amazon EC2″サービス”を理解する

Amazon EC2と聞くと、AWSクラウド上に構築する”サーバー”というイメージを持っている方が多いのですが、実際にはサーバーコンピューティング以外にも、目的となる処理に最適なインスタンス(CPU・メモリ・ストレージの組み合わせ)の選択からスケーラビリティの設定、リソースのプロビジョニングなどについても”インフラ設計”工程で設計していきます。

Amazon EC2ひとつ構築するだけでも、インスタンスそのものの理解の他、スケーラビリティやリージョン、AWSというサービスへの理解が必要となります。

また、耐障害性という面では従来のオンプレシステムではLANケーブルのたすき掛け設計などの密結合アーキテクチャが多く採用されてきましたが、AWSなどのクラウドサービス上では、Elastic Load Balancing(ALB)サービスを利用した疎結合アーキテクチャが推奨されるなどの違いを理解した設計にする必要がありますので、クラウドを利用する際のインフラ設計では、クラウドサービスの各サービスへの理解が必要となります。

Elastic Load Balancingとは

Elastic Load Balancingとは、AWSが提供する負荷分散制御サービス(ロードバランシングサービス)でクライアントデバイスから送信されてくるリクエスト(トラフィック)を効率よく分散してるサービスです。

Elastic Load Balancingと呼ぶのは長いので、ELB(またはLB)と略して呼んでいます。

Elastic Load Balancingだけに限った話ではないのですが、Elastic Load Balancingも同様にロードバランサー自体の運用管理やキャパシティコントロールはクラウドの運用業者であるAWSが行ってくれますので、サービスの利用者としてはリクエストの負荷分散制御に集中することができる優秀なサービスです。

インフラ設計のポイント

クラウドサービスを利用したシステムでインフラ設計を行う際の最も重要なポイントがあります。

それが「コスト」です。

設計上、SPOF(Single Point of Failure)を無くすようなアーキテクチャ設計にするとか、モニタリングやセキュリティ設計を行うといった設計を行う上で技術的に重要なポイントはもちろんあるのですが、インフラ設計を行う上で最初に重要視すべきポイントは「コスト(設計)」になります。

コストというのは技術者の関心の薄い分野でもあり、また、従来までのオンプレシステムでは、サーバーやネットワーク機器を購入してしまえば、年間の保守費用を除きいくら機器を稼働させても費用がかかることもあって、見落としがちな部分ではあるのですが、AWSをはじめとしたクラウドサービスでは従量課金制という料金体系を採用していますので、リソースをどれだけ利用したらどの程度のコストがかかるのかについて、各サービスの料金設定等を確認しながら、予算に合うようにTCO(TotalCostofOwnership:総所有コスト)を設計していくことが重要になります。