クラウドは、ハードウェアを自社で持たず、インターネットなどのネットワーク経由でアクセス可能なベンダー保有のハードウェアを利用します。
ハードウェアは、複数のユーザによって共有され、ユーザ毎の環境を仮想マシン(VM)上に構築します。これらは、仮想マシン上で提供されるサービスを「リソース」と呼び、ユーザが使うリソースを選択できるようにします。原則、使うリソース単位で課金されます。
リソースには、以下の種類があります。
・コンピュータ
CPU(中央処理装置)、メモリ、オペレーティングシステムなどの計算能力を提供する
・ストレージ
ファイル、ドキュメント、その他のデータを蓄積する。容量を拡張または縮小可能
・ネットワーク
クラウド内外のリソース間の通信のためのネットワーク。仮想プライベートネットワーク(VPN)、ロードバランサー、DNS、コンテンツデリバリーネットワーク(CDN)などのネットワーク機能も提供
・データベース
リレーショナルデータベースやNoSQLデータベースなどを提供
・アプリケーション
メールサービス、CRM(顧客関係管理)システムやERP(企業資源計画)システムなどのパッケージソフトウェア、AI開発環境などを提供
AI
最低限、コンピュータ、ストレージ、ネットワークの3つのリソースがあれば、クラウドを利用して、ソフトウェア開発をすることが可能です。
■ まとめ
「クラウド前提で、ソフトウェア開発を考える」
クラウドベンダーは、現時点において、AWS、GCPのいずれかとなります。ランニングコストを最適化し、予算を超えないように、使用状況を監視する必要があります。