- 更新日 2024.02.27
- カテゴリー インフラ構築
クラウド開発とは?AWS, Azure, GCPなどの特徴や依頼する会社の選び方を解説【2024年最新版】
「クラウド開発を始めたいが、どの開発会社にお願いすれば良いかわからない」
「開発会社が本当にクラウドの技術力があるのかわからない」
「クラウドの開発会社を比較して選ぶ時間がない」
クラウド開発は情報が専門的であることも多く、自社に最適な開発会社を探すのは非常に困難です。特に、クラウド開発ではセキュリティなどが課題になりやすいため、きちんとした会社選びを行う必要があります。
そこで、クラウドエンジニアとして働いているプロへの取材情報をまとめ、クラウド開発における開発会社の選び方のポイントを解説します。
最後まで読めば、クラウド開発の失敗がグッと減りますので、ぜひ参考にしてください。
※クラウド開発に不安がある方は、システム幹事にお問い合わせください。予算や目的などをヒアリングした上で、最適な開発会社を提案します。相談料・紹介料は一切かかりません。
クラウド開発とは何か(AWS、Azure、GCPでの開発)
まずは、クラウド開発について具体的なイメージを掴んでもらうために、クラウド開発の概要やクラウドについて簡単に説明します。
クラウド開発は、AWSやAzure、GCPなどのパブリッククラウドを活用して行う開発のことです。そもそもクラウドとは、利用者がサーバーなどのITインフラを持つことなく、必要な時に必要なだけITインフラを利用することができるサービスのことです。
クラウドの考え方と近い例として、カーシェアが挙げられます。従来は、車や自転車は自分で購入・保有するのが当たり前でした。(≒オンプレミス)
しかし近年は、自らで車や自転車を保有せず、使いたい時に使いたいだけ使うシェアサービスが台頭してきています。(≒クラウド)
オンプレミスとの比較
クラウドと比較されるのが「オンプレミス」です。オンプレミスとは、システムに必要なサーバーやネットワーク機器などを、自社で保有する形態のことです。
プレミス(premises)とは英語で建物や施設を意味する単語。そのためオンプレミス(on premises)で建物内や施設内という意味になります。
クラウドとオンプレミスの比較表
クラウド |
オンプレミス |
|
初期費用 |
ハードウェアの購入の必要なく 初期費用を抑えられる |
ハードウェアやデータセンターなど 初期費用が大きい |
ランニングコスト |
月額従量課金 使った分だけ費用が発生 |
空調・電源費用など メンテナンスの人件費が必要 |
使用開始までの時間 |
最短即日で開始できる |
調達などに数ヶ月が必要 |
拡張性 |
簡単な設定で柔軟に拡張可能 |
多くの費用と所要時間が必要 |
カスタマイズ性 |
クラウド事業者に依存するため 制約が多い |
自社管理のためカスタマイズは自由 |
セキュリティ |
クラウド事業者が許可する 設定のみ変更可能 |
自社管理のため自由に設定可能 |
柔軟性
オンプレミスの場合は、環境を0から整備・構築するため、柔軟なカスタマイズが可能です。一方クラウドは既存の事業者が提供するサービスを利用する形態なので、設定項目によっては変更できない場合もあります。
例えばOSは、クラウド事業者が提供しているもののみ使用でき、一部のバージョンなどは使用できないなどのデメリットもあります。ソフトウェアやミドルウェアは、動作するOSが決まっているため、自身の使いたいソフトウェアやミドルウェアがクラウド事業者が提供しているOS上で使用可能かは、きちんと確認すべきでしょう。
また、他システムとの連携の際にも、連携できなかったり、連携できるがセキュリティ的に脆弱になってしまう設定を入れざる得なかったりする場合があるため、きちんとサービス選定を行う必要があります。
セキュリティ
オンプレミスの場合は、上記の柔軟性と同じ理由で、セキュリティを最大まで厳しい設定にすることができます。
クラウドを使用する場合は、使用サービスのセキュリティ設定に依存する部分が大きくなります。
また、デフォルトでインターネットに接続可能なサービスも多いため、仕様をきちんと確認し、ファイアウォールやWAFなど適切なセキュリティ対策を行う必要があります。
各クラウド事業者は、脆弱性などを検知して対処方法をレコメンドするセキュリティサービスも出していますので、それらも積極的に活用して安心安全なシステム構築を行う必要があります。
リードタイム
オンプレミスの場合、サーバの選定・調達や実際に使用可能になるまでに数ヶ月を要する場合がほとんどです。クラウドの場合は、最短その日から使用することができるため、スピーディーな開発が可能となります。
1つ注意点として、クラウドサービスはクレジットカード払いから始まる場合がほとんどです。利用金額が一定以上になるなど、特定の条件を満たした場合にのみ請求書払いに変更することが可能な事業者もありますが、使用開始時はほとんどがクレジットカードです。クレジットカードを準備・使用する際の自社内の手続きや承認に時間がかかる場合もありますので、早めに対応しておくことをお勧めします。
コスト
オンプレミスの場合、サーバの調達に何百万~何千万単位の初期コストがかかります。クラウドの場合は自社でのサーバ購入が不要のため、初期コストはほぼ0、月々のランニングコストも数百円~数万円で開発を始めることができます。そのため、スモールスタートで事業を始めるハードルが低いというメリットもあります。
例えばNetflixは、AWSを2009年に大規模導入しています。これは当時としてはかなり先進的で、Netflixの本気度が伺えます。現在では、15万台以上の仮想マシンを利用し、マイクロサービスを構築しています。
一方で、お試しで作ったリソースを消し忘れて毎月課金されている、サーバやデータベースの自動取得されるスナップショットが溜まり、コストを圧迫しているといったことも起きるため、料金体系や自身のアカウント上のリソースはきちんと把握しておく必要があります。
クラウド開発の進め方
多くの企業が、オンプレミス(自社でサーバを持つ方式)主体の開発からクラウド主体の開発に移りつつあります。クラウド開発は、大まかに以下のように進みます。
①要件定義・設計
まずは、どんなシステムをどのように作るかを決めていきます。ここで、どのクラウド事業者を使用するかが決まります。
また、非機能要件と呼ばれるパフォーマンス(性能)や耐久性に関する要件もここで決めていくため、どのクラウドサービスでどのような設定をするかが自ずと決まってきます。
非機能要件の具体例としては、レスポンスタイム(アクセスしてから何ミリ秒以内に応答するか)や、バックアップの頻度や範囲、稼働率(決められたサービス時間のうち99%以上は正常に使用できるなど)などがあります。
②クラウドを使ったインフラ構築・テスト
次にクラウド上で、サーバやデータベースなどのインフラを構築します。このインフラ構築には、クラウド事業者が提供するIaaS(Infrastructure as a Service)やPaaS(Platform as a Service)を使用します。IaaSやPaaSについては、後述で詳しく説明します。
IaaSはカスタム性が高い一方、OSやミドルウェアなどユーザが管理すべきものが多く、管理工数はPaaSよりかかります。
一方PaaSを利用する場合、OSやミドルウェアをクラウド事業者に任せることで管理工数を削減することができます。しかし、クラウド事業者が指定するOSやミドルウェアを使用せねばならないため、カスタム性が制限されるというデメリットもあります。
③アプリケーションの実装・テスト
クラウド上のサーバなどに、アプリケーションを実装していきます。
従来のオンプレミスの開発では、②の工程で大きなイニシャルコストやリードタイムがかかっていました。物理サーバの購入には最低でも数十万円、大きなものだと数百万円以上のコストがかかりますし、実際に使えるようになるまでの納品~セットアップまでのステップで、数週間から長いと数ヶ月など、かなりの時間を要するためです。
この課題が、クラウドを活用することで大きく緩和されています。
また、クラウド事業者が提供するサービスにはIaaSやPaaS、SaaSといった種類があり、使い分けることで効率的な開発が可能となります。
IaaS、PaaS、SaaS
IaaS
開発に必要なサーバやネットワークなどのITインフラリソースを、インターネット上で使用できるサービスです。従来、自社で購入する必要があったサーバなどを、インターネット上で従量課金で手軽に利用することができます。従量課金というのは、使った分だけ払う、コインパーキングのような課金方式です。
ユースケースとしては、フルスクラッチ開発や、カスタム開発が必要なアプリケーション・サービスの開発に使用されます。
有名なサービスとしては、Amazon EC2やAzure VMなどが挙げられます。
PaaS
アプリケーションを用意するだけで、データベースやサーバ、OSの準備が不要な開発プラットフォームです。開発者はアプリケーションに集中できるため、コストを抑えて開発ができます。
一方で、カスタム性はそこまで高くない場合が多いため、トレードオフの一面もあります。
有名なサービスとしては、VercelやSalesforceのHerokuなどが挙げられます。
SaaS
開発が不要で、インターネット上で利用できるソフトウェアです。ユースケースとしては、企業や個人の特定課題の解決のために使われます。
例えば、会議やチャットなどのコミュニケーションや、採用や労務の管理など、さまざまな領域でSaaSが台頭しています。日本で有名なSaaSの例としては、SanSanやSmartHRなど挙げ始めたらキリがありません。このように、SaaSは開発者のみならず一般の個人や企業も多く利用するソリューションである場合が多いです。
これらの様々なクラウドソリューションを組み合わせることで、効率的な開発が可能となります。もう少し専門的に説明をすると、SaaSやPaaS、IaaSは、クラウド事業者とユーザーの責任範囲(管理すべき対象範囲)によって分類されます。事業者がハードウェアやOS、ミドルウェアからアプリケーションまで全て管理し、ユーザーは使用するだけの形態がSaaSです。
OSやミドルウェアまでクラウド事業者が管理し、アプリケーション部分だけにユーザーが責任を負うのがPaaSです。
OSやミドルウェアまで含めてユーザーが責任を負うのがIaaSであり、オンプレミスは当然ながら全てがユーザーの責任です。
クラウド開発のメリット
クラウド開発のメリットとしては、以下のような点が挙げられます。
コストを抑えられる
オンプレミスの場合、サーバの調達に何百万単位の初期コストがかかります。一方でクラウドの場合は自社でのサーバ購入が不要のため、初期コストはほぼ0、月々のランニングコストも数百円~数万円で開発を始めることができます。そのため、スモールスタートで事業を始めることができ、その時々に合わせてスピード感を持った事業推進が可能です。
リードタイムの短縮
オンプレミスの場合、サーバーの選定・調達や実際に使用可能になるまでのセッティング完了までに数ヶ月を要する場合があります。
クラウドの場合は、最短その日から使用することができ、サーバやデータベースの使用をすぐに始めることができるため、スピーディーな開発・事業推進が可能となります。
スケーラビリティの向上
オンプレミスの場合は、物理サーバのスペックを上げるスケールアップや、物理サーバの数を増やすスケールアウトには、大きなコストとリードタイムを要します。
一方クラウドの場合は、数クリックでスケールアップが可能であり、マネージドなサービスを使うことで簡単にスケールアウトが実現できます。また、利用が少ない時はサーバーの数を減らしコストを抑えるスケールインができることもクラウドのメリットです。
このように、クラウドは嵐のように変わる市場の状況に合わせて小回りを利かせやすく、コストメリットが出しやすいというメリットが評価されています。
クラウド開発の種類
続いては、AWS、Azure、GCPでの開発の特徴を解説します。
AWSでの開発
AWS(Amazon Web Service)は、業界トップのクラウドベンダーです。2006年からサービスを開始しており、2022年Q1期のクラウドインフラ業界におけるシェアは33%で、継続してNo1を維持しています。
AWSの有名なサービスとしては、IaaSのサーバとして使用されるEC2や、リレーショナルデータベースであるRDS、堅牢なストレージであるS3などが挙げられます。
また、AWSのPaaSとしては、ITインフラの管理が不要なElastic Beanstalkや、サーバレスのコード実行環境であるLambdaなどが有名です。
AWSは業界リーダーであり、バランスよく様々な領域のサービスを展開しています。また、インターネットへの接続は明示的にゲートウェイを作成しないと有効化されないなど、エンタープライズの厳しい要件を満たせるよう、セキュリティレベルが高い設計思想で作られていると感じます。
開発会社を選定するという視点でも、AWS経験のある開発会社やエンジニアは、他のクラウドと比較しても多く存在します。開発会社の候補が多いことも、メリットの1つです。
またインターネット上には、AWSの公式ドキュメントに加えて「やってみた」系の個人や企業の技術記事などの構築方法に関する情報が最も多く存在します。APIのドキュメントも整備されており、多くの人が挑戦してノウハウをインターネットで公開しているので、良い意味でひらかれたサービスが多いです。
関連記事:Amazon Web Service(AWS)とは?主な機能と活用事例・メリット・注意点
Azureでの開発
Azureは、業界No2のクラウドベンダーです。2010年からサービスを開始しており、2022年Q1期のクラウドインフラ業界におけるシェアは22%と、首位のAWSとの差をじわじわ縮めています。
Azureの有名なサービスは、IaaSのサーバとして使用されるAzure VMやリレーショナルデータベースであるSQL Database、堅牢なストレージであるAzure Blob Storageなどが挙げられます。
また、AzureのPaaSとしては、WebアプリケーションのフルマネージドプラットフォームであるAzure App Serviceや、サーバレスのコード実行環境であるAzure Functionsなどがあります。
Azureの最大の強みとして、Microsoft OfficeやAcitive DirectoryなどのMicrosoftサービスとの親和性が高いことが挙げられます。これらのサービスと簡単に連携できるため、システム導入やシステム移行がスムーズに実施でき、コストを削減できます。
料金面でも、WindowsサーバやSQL Serverデータベースを使用する場合は、ライセンス込みで他クラウドよりも数十%安く利用できるため、Microsoftサービスを最大限活用する場合には多くの恩恵を受けられます。
また、AzureはUIが統一されていてわかりやすいというのは使っていて感じるため、特にWebコンソールを主体にして開発や保守運用を行う場合は、ストレスフリーで実施できるかと思います。
画像引用:マイクロソフトサポート
開発会社選定の視点だと、AWSほどではないですが、Azure経験のある開発会社やエンジニアは多く存在します。
インターネット上の情報としては、Azureの公式ドキュメントに加えて「やってみた」系の個人や企業の技術記事などもだいぶ増えてきました。一方で開発者目線だと、AzureのAPIを組み込んだ開発は、AWSと比較して情報を見つけるのがやや難しく、AWS開発よりはやや難易度が高いと感じます。
関連記事:Microsoft Azureとは?主な機能と活用事例・メリット・注意点について解説
GCPでの開発
GCP(Google Cloud)は、Googleが提供するクラウドサービスです。2008年からサービスを開始しており、2022年Q1期のクラウドインフラ業界におけるシェアは10%でした。
有名なサービスとして、ビッグデータの分析基盤であるBigQueryや、IaaSのサーバとして使用されるGCE(Google Compute Engine)、Kubernetes(k8s)によるコンテナのオーケストレーション(構築や運用の管理)を提供するGKE(Google Kubernetes Engine)、データベースサービスであるCloud SQLなどが挙げられます。また、GCPのPaaSサービスとしては、Google App Engineが有名です。
GCPの特長は、Googleとして培っているデータ分析などの特定の領域に非常に強いこと。例えばBigQueryは、他クラウドと比較して低コストと高パフォーマンスでビッグデータを分析できます。また、Kubernetesも元々はGoogleが開発したという経緯もあり、GKEもGCPが推しているサービスの1つです。
また、GCPはAPIやAPIに関するドキュメントが非常によく整備されており、エンジニア目線だと非常にありがたいです。GCPを用いた開発は、AWSやAzureほどは多くないため、開発会社やエンジニアを見つける難易度がやや高いという懸念もあります。
クラウド開発で大切な知見と実績
ここから実際にクラウド開発を行うにあたって大切な知見と実績についてご紹介していきます。
クラウド開発で求められる知見・スキル
クラウド開発においては、前提として以下に関する知見・スキルが求められます。
- ネットワーク
- OS/ミドルウェア
- アプリケーション
「クラウド上に構築したネットワークと社内ネットワークをどう安全に接続するか」「全世界にアプリケーションを公開する場合、アプリケーションサーバやデータベースを悪意のあるアクセスからどう保護するか」
これらをきちんと考慮し設計するためには、ルーティングなどのネットワークの知見・スキルが不可欠です。また、OSやミドルウェアの知識も必要です。「どのバージョンのどのOSを採用し、どの設定をするか」「それらのOS上でどのミドルウェアをどのような設定で動かすか」
採用するOSやミドルウェアの種類・バージョンで、システム全体の信頼性も大きく変わってきます。また、OSによってはミドルウェアが動作しない場合もあるため、OSやミドルウェアの知見・スキルも一通り押さえていることが求められます。
当然ですが、アプリケーションの知見・スキルも必要です。「求められている要件に対して、どの言語のどのバージョンを用いるか」「どのフレームワーク/ライブラリをどう組み合わせるか」
お客様の要件に対して、バックエンドとフロントエンドを適切に構築して求められている機能を実装していく。これはクラウド開発にとどまらず、全ての開発において共通していることです。
これらの土台となる知見・スキルを前提として、クラウド特有の以下の観点も求められます。
各クラウドサービスの仕様・特徴
適切なサービス選定を行うためには、各サービスの仕様・特徴を理解する必要があります。
特に、クラウドサービスには多くの制約があるため、後から他のサービスとの連携ができない、使いたいソフトウェアが使用できないなどの致命的な設計ミスを防ぐためにも、各々のサービスの理解が非常に重要です。
また、クラウドサービスの仕様や特徴を押さえるためには、ネットワークやOSなどの最低限のITインフラの知識も不可欠です。
クラウドサービスを組み合わせたアーキテクチャ策定
実際のシステムにおいては、数個~数十個のクラウドサービスを組み合わせて使用します。
そのため、サービス同士の相性や組み合わせ方、組み合わせた際の懸念点なども考慮した上でアーキテクチャを組み立てる必要があります。
アーキテクチャを描くためには、各クラウドサービスの仕様や特長と、ITインフラの知識の両方に対する深い理解が必要なため、通常は中級以上のクラウド/インフラエンジニアが求められます。
クラウドのセキュリティ
クラウドサービスは、デフォルトでインターネットにアクセスできる設定のサービスもあり、適切なセキュリティ設定と監視を行う必要があります。
また、クラウド事業者自体の障害も想定しなければならないため、クラウドサービス自体の死活監視、サーバやデータベースなどの死活監視、アプリケーションやOSなどのログ監視、メモリやCPUなどのパフォーマンス監視など、幅広く網羅的にセキュリティ設定を行うことのできる知見・スキルが必要です。
AWSやAzureなどのクラウド事業者が提供しているセキュリティサービスも多くありますが、それを適用して終わりではなく、そのサービスによって対応すべき要件が満たせているかをきちんと考えられるスキルが求められます。
クラウドのパフォーマンス
クラウドを使用する際に考慮すべき大事な点の1つがパフォーマンスです。例えば、クラウドサービスではディスクのI/Oの上限がオンプレミスより低かったり、実態の物理サーバが動いているのはクラウド事業者の東京/大阪のデータセンターのため、物理的な距離が理由でパフォーマンスが出なかったりと言った課題が浮き彫りになることがあります。
パフォーマンスの問題は、スケールして顕在化してから対応すると対応が非常に困難な場合も多いため、初期構築時点できちんと考慮して非機能要件を決定し、実装することが大切です。また、サービスリリース後に想定以上のアクセスがあった場合なども考慮し、よりスケールする余地のあるアーキテクチャを組むことも大切です。
クラウド開発で求められる実績・開発内容
最初にヒアリングすべき内容として、以下の実績を確認してください。
- ネットワーク構築
- OS/ミドルウェア構築
- アプリケーション構築
クラウド開発は、インフラからバックエンド~フロントエンドに至るまでの幅広い知識・経験が必要です。ネットワーク構築の実績としては、社内ネットワークの構築や、社内ネットワークと他ネットワークの接続、またインターネット向けアプリケーションのネットワーク設計などの経験があると望ましいです。
またOS/ミドルウェア構築の実績としては、例えばLinuxやWindowsサーバの構築をしたことがあるかどうか、またミドルウェアの導入・セットアップ経験などがあると安心です。
アプリケーションについては言わずもがな、クラウドでもオンプレミスでも、きちんとしたシステムを作ったことがあるかどうかが重要です。そのような土台となる実績を踏まえて、以下のようなクラウド開発の実績を確認してください。
対象のクラウドおよびクラウドサービスを用いた開発実績
同じクラウド開発でも、AWSなのかAzureなのかで大きく変わってきます。またAWSでも、EC2とRDSを使ったIaaS中心の構成なのか、LambdaとDynamoDBを使ったPaaS中心の構成なのかで、開発に必要な知識や開発のポイントとなる観点はかなり違ってきます。
どのようなシステムを、どのクラウドのどのサービスを使って開発したかまで聞くと良いでしょう。また、クラウド構築の際の仕組みについても確認すべきです。
Infrastructure as Code(IaC)を使ってITインフラをコード化し、効率的かつ正確に作っているのか。もしくは手動でWebコンソールから作っているのか。テストやデプロイについて、CI/CDを組んで自動化しているか。もしくは手動で全て実施しているか。これらの観点によって、開発会社のおおよその開発レベルを掴むことができます。
監視やセキュリティ設定の実績
クラウド開発の実績があっても、それらのシステムの監視やセキュリティに関しては不十分な場合も多々あります。どのようなセキュリティ思想/ルールでどのようなセキュリティ設定、監視設定をしたのかを、きちんとヒアリングしましょう。また、使用しているセキュリティサービスによっても、おおよそのセキュリティ思想を掴むことができます。
パフォーマンスチューニングの実績
クラウド開発で多く見られるのが、あまりパフォーマンスを考慮せずシステムが作られている場合です。システムのリリース直後はユーザが殺到することは多くないですが、時間が経つにつれてスケールし、パフォーマンス課題が顕在化することがあります。
パフォーマンス観点でどのようなサービス選定・アーキテクチャ選定をしたのか、ヒアリングすることが大切です。
クラウド開発をお任せする会社の見分け方
クラウド開発に関する実績はあるか
上記でも述べたとおり、以下のような実績があることが望ましいです。
これらの3観点はきちんと抑えておくと安心です。
対象のクラウドおよびクラウドサービスの知見や開発実績を確認する
実績の数だけでなく、どのようなお客様に対して、どのようなシステムを、どのクラウドのどのサービスを組み合わせて開発したかまで詳細にヒアリングできるとGoodです。また、どのサービスが得意か、どのアーキテクチャが得意かなどの開発会社の強みであったり、クラウド開発におけるこだわりポイント、工夫点なども聞く価値があります。
監視やセキュリティの知見や実績を確認する
それぞれのシステムに対して、どんなセキュリティ基準やルールで、何のサービスを使って、どのようなセキュリティ・監視設定をしたのかをきちんとヒアリングすることが重要です。特に、セキュリティはきちんと作り込まなくてもシステムは動いてしまうので、手を抜きやすい部分。セキュリティ部分の実装にきちんとポリシーを持って対応している開発会社は、良い会社と言えるでしょう。
パフォーマンスチューニングの知見や実績を確認する
パフォーマンス観点でどのような開発における工夫をしたのか、非機能要件はどうなっているのかなどを聞きたいです。パフォーマンスも、システムを開発した直後には顕在化しづらく、ある程度ユーザーが増えてきた数ヶ月後、数年後などに大きな問題になることが多いです。
スケールの余地を残した構成になっているか、どのようなパフォーマンス対策を講じているかなどをヒアリングしてみてください。
クラウド開発の実績は、開発対象のシステムと近いか
先ほども記載したとおり、同じクラウド開発でも使用しているクラウドやサービスの種類によって、開発手法やアーキテクチャは大きく変わります。
対象の業界やシステムに近いかどうかはもちろんのこと、使用しているクラウド事業者やクラウドサービスの組み合わせなどもヒアリングし、開発会社のテックスタックが自社のシステムにマッチしたものかどうかを判断することが大切です。
また、システムの機能的な類似性はもちろんのこと、セキュリティ基準や、将来的に何人のユーザの使用が想定されるかといったパフォーマンス観点での要件も、近いことが望ましいです。
クラウド開発を効率的に行う仕組みはあるか
オンプレミスからクラウドに遷移していく中で、CI/CDなどの自動化の仕組みにも光が当たるようになってきました。CI/CDとは、Continuous Integration / Continuous Deliveryの略称で、日本語に訳すと、継続的インテグレーション / 継続的デリバリーとなります。CI/CDは、テストやデプロイの作業を自動化するという開発手法を表します。
クラウドとCI/CDは相性が良く、CI/CDを活用することで高速なクラウド開発を実現できる場合も多いです。テストやデプロイなどの定常作業を自動化し、アプリケーション開発に集中できる環境を資産として整備している企業は、リソースを開発のみに投下できるため、高品質なシステムを作りやすいと考えることができます。
代表的なサービスとしては、サーバにインストールして使うCI/CDサービスのJenkinsや、SaaSとして使用することができるCircleCI、GitHub Actionsなどが挙げられます。
クラウド開発会社の選定の失敗パターン
ここからは、よく聞くクラウド開発会社を選ぶ際の失敗事例について紹介します。
安易に決めることをせず、きちんと吟味・相談をした上で開発会社を選ぶことをお勧めします。
社歴が長いだけで選んでしまった
必ずしも、社歴の長さ=技術のある会社ではありません。特に、クラウドは2010年ごろから台頭してきたサービスなので、社歴はあまり関係ありません。
歴史のある会社に頼んだから安心と思っていたら、実態はクラウド開発の知見・経験がほとんどなく、開発が大きく遅延してしまった/動くものはできたが、セキュリティが全く考慮されていないなどのパターンも存在します。社歴の長さだけで判断せず、きちんとその開発会社の実績やテックスタックを確認することが大切です。
大手というだけで選んでしまった
必ずしも、大手=技術や実績のある会社ではありません。人数が多く規模が大きい会社であっても、例えば下請けに丸投げしているだけの場合も存在します。下請けはマージンが抜かれる分、実際の開発に使われるお金は少なくなってしまいます。
開発体制や技術力を確かめる質問を投げかけ、実績のある開発会社や技術を内製化している(=外部委託せずに、自社で開発できる技術力を養っている)開発会社を選定するようにしましょう。
値段が高くて高品質と思って選んでしまった
値段が高いものが、必ずしも品質が高いものではありません。クラウド開発は、発注者がクラウドやシステム開発に詳しくないのを良いことに、強気の価格を提示してくる場合も存在します。高価格なので安心と思っていたら、実際は非常に効率の悪い開発で、品質が高くないシステムが出来上がるといったパターンも存在します。
例えば、システムの機能ごとの詳細な見積もりを取るなど、価格の内訳をきちんと把握することが大切です。もちろん高価格で高品質を売りにしている開発会社さんも多く存在するので、テックスタックや実績をきちんと確認した上で、開発会社を選定しましょう。
クラウド開発会社の選び方まとめ
クラウド開発の概要から、クラウド開発で大切な知見と実績、クラウド開発をお任せする開発会社の見分け方と失敗パターンについて紹介しました。
- クラウド開発の知見と実績を備えているか
- クラウド開発の実績は、開発対象のシステムに近いか
- クラウド開発を効率的に行う仕組みがあるか
また、知見や実績については、セキュリティやパフォーマンスの観点も重要でした。
このような観点で開発会社を見極めていきますが、テックスタックや技術力を見極めるためには、ある程度のクラウドの前提知識が必要となるケースも少なくありません。
クラウド開発会社選びに困った場合は、システム幹事にご相談ください。予算や目的から最適な会社をご紹介します。相談料などは一切かかりません。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
必ず開発会社に発注する必要はありません。システム開発の相場の情報から最適な会社選びまで無料でサポートします。お気軽にご相談ください。
Q. クラウド開発とは何ですか?
クラウド開発とは、AWSやAzure、GCPなどのパブリッククラウドを活用して行う開発のことです。必要な時に必要なだけITインフラを利用できます。
Q. クラウド開発のメリットは?
クラウド開発のメリットは「コストが抑えられる」「リードタイムが短縮できる」などです。詳細は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人
Definer Inc. | ライターチーム
専門分野: クラウド開発・クラウド移行(フルスクラッチ開発・自社SaaS提供・AI Ops構築)
外資IT企業出身のトップエンジニアが、企画・要件定義の上流から開発まで、総合的なITソリューションをワンストップ提供しております。また、AWS、Azure、GCPでのクラウド開発・移行、フルスクラッチなアプリ・システム開発を得意としています。「2025年の崖」を打破すべく、クラウドに関するお役立ち情報をお届けします。
このライターの記事一覧