ベンダーロックインを完全に排除するための「非依存スタック」と「設計原則」を端的にまとめます。

### 1. インフラ構成(ハード・OS)
* **OS:** **Debian** 一択(中立・安定・コミュニティ管理)。
* **仮想化:** **KVM/QEMU**(標準仕様)、または物理サーバー直運用。
* **コンテナ:** **Podman**(Daemonless・ルートレスで依存を排除)。

### 2. アプリケーション設計(コード)
* **SDK排除:** クラウド専用SDKをコードに埋め込まない。
* **抽象化:** インターフェースを挟み、実装(AWS/GCP/Azure等の機能)をいつでも差し替え可能にする。
* **設定管理:** 全て環境変数または外部設定ファイルに追い出し、コードに環境依存情報を書かない。

### 3. データとミドルウェア(運用)
* **DB/キャッシュ:** 独自サービス(DynamoDB/BigQuery等)は使用禁止。**PostgreSQL / Redis** をコンテナ化して自前で管理。
* **互換性:** **S3互換ストレージ (MinIO)** など、標準プロトコルで動くOSSを活用する。

### 4. 運用・開発フロー(CI/CD)
* **IaC:** **OpenTofu**(TerraformのOSSフォーク)で環境をコード化。
* **認証/監視:** クラウド固有機能を使わず、**OIDC**(認証)、**Prometheus/Grafana**(監視)など、業界標準のOSSで完結させる。

### 「ロックインされない」判断基準
**「コンテナイメージと設定ファイルがあれば、明日どの会社のクラウド(あるいは自宅のPC)でも同じシステムを1時間以内に立ち上げられるか?」**
この問いに「YES」と即答できる状態を維持することが、唯一かつ最強の対策です。