~/VibeHandbook
$39

インフラ

aws.amazon.com

Virtual Machines

概要

仮想マシン(VM)は、ソフトウェアとして存在し、プロバイダのハードウェア上で動く完全なコンピュータです。完全に制御できるオペレーティングシステムが手に入り、ログインして好きなものをインストールし、物理マシンと同じようにアプリを実行できます。ホスティングの選択肢の中で最も手を動かす方式です。

強み

  • 完全な制御 — フルのオペレーティングシステム、任意のソフトウェア、任意の構成。
  • 予測可能な性能。借りている限り、そのマシンはあなたのもの。
  • サーバーレスやエッジと違い、実行時間やランタイムの制限がない。
  • 何でも動く: データベース、レガシーソフトウェア、カスタムデーモン、長時間ジョブ。
  • 数十年分のツールを備えた、成熟しよく理解されたモデル。

トレードオフ

  • すべてを自分で管理する: OS の更新、セキュリティパッチ、バックアップ、監視。
  • マシンが忙しくても遊んでいても料金を払う。
  • スケーリングは手動 — リサイズやマシンの追加を自分で行う。
  • 可動部が多いほど、壊れる経路も多い。
  • 関数やコンテナと比べて、プロビジョニングが最も遅い。

使いどころ

完全な制御が必要なとき、あるいは軽量な選択肢では満たせない要件があるときは VM を使いましょう。専門的なソフトウェア、永続的な状態、セルフホストのデータベース、GPU ワークロード、あるいは既存のアプリを書き直さずに移行する場合などです。

バイブコーディングとの相性

VM は AI エージェントに最も広いキャンバスを与えますが、最も多くの責任も与えるため、手動のクリックではなく Infrastructure as Code に頼りましょう。SSH 越しに手作業でサーバーを構成する代わりに、マシン全体が再現可能でレビュー可能になるよう、プロビジョニングスクリプト(cloud-init ファイルやシェルのセットアップスクリプト)をエージェントに書かせましょう。ヒント: セットアップを単一のブートストラップファイルにスクリプト化し、自動セキュリティ更新を設定するようエージェントに依頼しましょう。そうすれば、構成を失うことなくいつでも VM を破棄して再作成できます。

#!/usr/bin/env bash
# bootstrap.sh — provision an Ubuntu VM
set -euo pipefail

apt-get update && apt-get upgrade -y
apt-get install -y nginx
systemctl enable --now nginx

# enable unattended security updates
apt-get install -y unattended-upgrades
dpkg-reconfigure -f noninteractive unattended-upgrades
# Run the bootstrap on a fresh server
scp bootstrap.sh user@my-server:/tmp/
ssh user@my-server "sudo bash /tmp/bootstrap.sh"