ストレージとライフサイクル
SnapVM のマシンは、ファイルシステムを永続化しながらコンピュートを停止またはハイバネーションできる点が重要です。
永続するもの
Section titled “永続するもの”永続ファイルシステムには次のものが残ります。
- ソースコードと Git リポジトリ
- インストール済みパッケージと言語ランタイム
- 生成ファイル
- ローカル設定
- ディスク上のデータベース
- サービス定義
これにより、コンピュートがセッション間でスリープしても、長く使う開発用コンピュータのように扱えます。
永続しないもの
Section titled “永続しないもの”次のものは一時的なものとして扱います。
- サービスではない実行中プロセス
- インメモリキャッシュ
- 保存していないエディタバッファ
- 一時ソケット
- ランタイム内のネットワーク接続
復帰後に必要なプロセスはサービスとして定義してください。必要なデータはディスクまたはリモートの永続ストアに書き込みます。
復帰のトリガー
Section titled “復帰のトリガー”停止またはハイバネーション中のマシンは、次の操作で復帰できます。
- ユーザーがコンソールでターミナルを開く
- ブラウザがマシンの HTTPS URL にリクエストする
- API が start リクエストを受け取る
- デプロイ固有のスケジューラやワーカーがマシンを起動する
復帰時間はランタイム種別、リージョン、イメージサイズ、サービス起動コストによって変わります。
安全な運用モデル
Section titled “安全な運用モデル”次のパターンを基本にします。
- プロジェクトファイルは予測可能なワークスペースディレクトリに置きます。
- マシン削除前にソースコードを Git にコミットします。
- 長時間動かすプロセスはサービスにします。
- アイドル時は停止またはハイバネーションを使います。
- 削除は取り消せないものとして扱います。
ライフサイクル問題の確認
Section titled “ライフサイクル問題の確認”| 症状 | 確認すること |
|---|---|
| ファイルはあるがサーバーが落ちている | サーバーが対話プロセスだった可能性があります。サービス化してください |
| マシン URL は復帰するがエラーになる | サービスポートとログを確認します |
| ターミナルに接続できない | マシン状態、エージェントヘルス、ゲートウェイログを確認します |
| 復帰が遅い | サービス起動コストとイメージまたはランタイムサイズを確認します |