クラウドコンピューティング

クラウドコンピューティングとは

クラウドコンピューティングは、サーバー・ストレージ・データベースなどの計算資源を、必要なときに必要な分だけネットワーク越しに借りて使う形態です。AWS、Google Cloud、Microsoft Azure が三大プロバイダです。

初学者向けポイント

  • 対義語は「オンプレミス」(自前でサーバーを購入・設置・運用する)
  • 従量課金 = 使った分だけ払う。初期投資なしで始められ、負荷に応じて増減できる
  • 「どこまで自分で管理するか」でサービスの層が分かれる(下表)

サービスモデル

モデル借りるもの自分で管理する範囲
IaaS仮想マシンEC2, Compute EngineOS([[Linux]])から上すべて
PaaS実行環境App Runner, Cloud Runアプリのコードだけ
SaaSソフトウェアGmail, GitHub使うだけ

借りられるのは普通のサーバーだけではありません。機械学習のモデルを学習させるには大量の並列計算が必要で、そのために GPU を積んだ高価なマシンが要ります([[ディープラーニング]])。クラウドではこれを GPUインスタンスとして時間単位で借りられるため、学習する数日〜数週間だけ動かして止める、という使い方ができます。自前で GPU マシンを買うと、学習していない時間もその設備を抱え続けることになります。[[生成AI・LLM]] を自分で学習させずAPI経由で使う場合も、その裏側では提供側が同じ種類の計算資源を運用しています。

代表的な構成要素

  • 仮想マシン / コンテナ実行環境 — アプリを動かす([[Docker]] / [[Kubernetes]] のマネージド版もある)
  • マネージドデータベース — [[リレーショナルデータベース]] を運用込みで借りる形
  • オブジェクトストレージ — 画像やログなどのファイル置き場
  • 仮想ネットワーク — 自分専用のアドレス空間を切り、公開範囲を決める([[VPCとクラウドネットワーク]])
  • CDN — 静的ファイルを世界中の拠点から高速配信

マネージドデータベースでは、定期的なバックアップと保持期間内の任意時点への復元(PITR)、レプリカを追加しての読み取り分散が、管理画面の操作だけで手に入ります([[バックアップとリカバリ]] / [[レプリケーション]])。ただし自動化されるのは仕組みの運用までです。テーブル設計やインデックスの選定、遅いクエリの改善、そして「誤って本番データを消した」ときにどの時点へ戻すかの判断は、これまでどおり利用者側の責任として残ります。

リージョンとアベイラビリティゾーン

クラウドの拠点は2段階で捉えます。

  • リージョン — 東京・大阪・バージニアなど、地理的に大きく離れた拠点群。リージョンが違えば災害の影響も別々に受ける
  • アベイラビリティゾーン(AZ) — 同一リージョン内にあり、電源・空調・ネットワークが互いに独立した拠点。近いので通信は高速だが、片方の停電はもう片方に波及しない

この2段階は、そのまま備えの2段階に対応します。複数の AZ にサーバーを分散するのは、機器や建物単位の障害に耐えるための日常的な冗長化([[高可用性設計]])です。一方、リージョンをまたいで待機環境やデータを置くのは、リージョン全体が使えなくなる規模の事態に備える [[災害復旧(DR)]] の領域です。同じ「拠点を分ける」でも、想定する障害の大きさもコストも一段違います。

環境の分離

クラウドでは、開発・ステージング・本番の環境を同じ構成で並べて用意できます。ここで守りたい原則は、環境ごとに変わるのは接続先やキーなどの設定であって、アプリのコードではないということです。コードに環境ごとの分岐を書き込むと、本番でしか通らない経路が生まれ、検証したはずのものと動くものがずれていきます。設定は環境変数などで外から与え、本番と検証では別のキーを使います([[シークレット管理]])。この形にしておくと、[[CI/CD]] は「同じ成果物を、異なる設定で各環境へ配る」という単純な流れになります。

関連技術とのつながり

  • [[Linux]] — 借りる仮想マシンの標準OS
  • [[Docker]] / [[Kubernetes]] — クラウド上のアプリ実行の主流スタイル
  • [[CI/CD]] — クラウドへの自動デプロイと組み合わせて真価を発揮
  • [[DNS]] — 独自ドメインでサービスを公開するときに設定する
  • [[高可用性設計]] / [[災害復旧(DR)]] — AZ分散とリージョン分散が、それぞれの備えの土台になる
Q: 同一リージョン内にあり、電源やネットワークが互いに独立した拠点を指すのはどれ?
- [x] アベイラビリティゾーン(AZ)
- [ ] リージョン
- [ ] オブジェクトストレージ
解説: AZ は同一リージョン内の独立した拠点です。地理的に大きく離れた拠点群はリージョンで、AZ分散よりも大きな災害への備えに使われます。

Q: クラウドのGPUインスタンスを使う利点として適切なのはどれ?
- [x] 学習に必要な期間だけ借りて、終わったら止められる
- [ ] GPUを使わずに並列計算ができるようになる
- [ ] 学習に必要なデータ量そのものが減る
解説: 高価なGPUマシンを買い切らず、必要な期間だけ時間単位で借りられる点が従量課金の利点です。

Q: マネージドデータベースを使っても利用者の責任として残るものはどれ?
- [ ] バックアップ取得の仕組みを自分で組むこと
- [x] テーブル設計やインデックスの選定、遅いクエリの改善
- [ ] レプリカを追加する作業手順の自動化
解説: 自動化されるのはバックアップやレプリカ追加といった仕組みの運用までで、設計やクエリの品質は利用者が担います。