Skip to main content

GitHub Codespaces のディザスター リカバリー

この記事では、大規模な自然災害や広範囲にわたるサービスの中断により、地域全体で障害が発生した場合のシステム災害復旧シナリオのガイダンスについて説明します。

当社は、ユーザーが GitHub Codespaces をいつでも確実にご利用いただけるよう努力しています。 しかし、当社の管理できる範囲を超えてサービスに影響を及ぼし、計画外のサービスの中断を引き起こす不可抗力が発生する可能性があります。

システム災害復旧シナリオはまれにしか発生しませんが、リージョン全体にわたる停止が発生する可能性に備えておくことをお勧めします。 リージョン全体でサービスが中断した場合、ローカルで冗長化されたデータのコピーは一時的に利用できなくなります。

次のガイダンスでは、codespace がデプロイされているリージョン全体へのサービスの中断を処理する方法を説明します。

注: リモート リポジトリに頻繁にプッシュすることで、サービス全体の停止による潜在的な影響を減らすことができます。

オプション 1: 別のリージョンに新しい codespace を作る

リージョンが停止した場合、影響を受けていないリージョンで codespace を再び作り、作業を続けることをお勧めします。 この新しい codespace には、GitHub への最後のプッシュ時点までのすべての変更が含まれます。 別のリージョンの手動設定については、「GitHub Codespaces の既定のリージョンを設定する」をご覧ください。

プロジェクトのリポジトリで、開発環境を自動的に復元するために必要なツール、ランタイム、フレームワーク、エディター設定、機能拡張、その他の設定を定義できる devcontainer.json を設定することで、リカバリ時間を最適化できます。 詳しくは、「開発コンテナーの概要」を参照してください。

オプション 2: 復旧を待つ

この場合、ユーザーによる操作は必要ありません。 サービスを利用できるようにするために鋭意取り組んでいることをご理解ください。

現在のサービスの状態は、ステータス ダッシュボードで確認できます。

オプション 3: リポジトリをローカルでクローンする、またはブラウザーで編集する

GitHub Codespaces では事前構成された開発環境を利用できるメリットがありますが、ソースコードは常に GitHub.com でホストされているリポジトリからアクセス可能である必要があります。 GitHub Codespaces が停止した場合でも、リポジトリをローカルでクローンしたり、GitHub ブラウザー エディターでファイルを編集したりすることができます。 詳しくは、「ファイルを編集する」を参照してください。

このオプションでは開発環境を設定しませんが、サービスの中断が解決するのを待つ間、必要に応じてソースコードを変更できます。

オプション 4: ローカルのコンテナ化された環境に Dev Containers 拡張機能と Docker を使う

リポジトリに devcontainer.json がある場合、Visual Studio Code で Dev Containers 拡張機能を使って、ビルドしてリポジトリ用のローカル開発コンテナーにアタッチすることを検討してください。 このオプションのセットアップ時間は、ローカル仕様と開発コンテナセットアップの複雑さによって異なります。 詳細については、VS Code ドキュメントの「コンテナー内で開発する」を参照してください。

注: このオプションを試す前に、ローカルのセットアップが最小要件を満たしていることを確認してください。