GitHubの公開リポジトリとjsDelivr CDNを連携させると、JSONファイルを無料でホスティングし、世界中に高速に配信できます。
このガイドは初心者でも簡単に実践できるよう、ステップごとの手順とともに制限事項や運用時の注意点をまとめています。
目次
- GitHubリポジトリの作成
- JSONファイルのアップロード
- jsDelivr CDNアドレスの生成
- CDNアドレスの利用と確認
- 重要な参考事項
- 参考資料
ステップ1: GitHubリポジトリの作成
リポジトリ作成手順
- GitHubにログイン
- 右上の「+」ボタンをクリック
- 「New repository」を選択
- リポジトリ名を入力
例:
text my-json-data
- リポジトリを公開設定にする
text Public
jsDelivrは公開リポジトリのみをサポートします。
- 「Add a README file」にチェック
- 「Create repository」をクリック
ステップ2: JSONファイルのアップロード
作成されたリポジトリで:
- 「Add file」
- 「Upload files」
- JSONファイルをアップロード
- 「Commit changes」をクリック
例の構造:
text my-json-data/ ├── README.md └── data.json
ステップ3: jsDelivr CDNアドレスの生成
基本URL形式
text https://cdn.jsdelivr.net/gh/ユーザー名/リポジトリ名/ファイルパス
例
| 項目 | 値 |
|---|---|
| ユーザー名 | honggildong |
| リポジトリ名 | my-json-data |
| ファイル名 | data.json |
生成されたURL:
text https://cdn.jsdelivr.net/gh/honggildong/my-json-data/data.json
URL構造の説明
text https://cdn.jsdelivr.net/gh/user/repo@version/file
| 項目 | 説明 |
|---|---|
| user | GitHubのユーザー名または組織名 |
| repo | リポジトリ名 |
| version | ブランチ、タグ、コミットハッシュ |
| file | ファイルパス |
例:
text https://cdn.jsdelivr.net/gh/honggildong/[email protected]/data.json
ステップ4: CDNアドレスの利用と確認
Webブラウザで確認
生成されたURLをブラウザのアドレスバーに入力します。
text https://cdn.jsdelivr.net/gh/honggildong/my-json-data/data.json
JSONの内容が表示されれば成功です。
JavaScriptで使用
html
cURLでのテスト
bash curl https://cdn.jsdelivr.net/gh/honggildong/my-json-data/data.json
重要な参考事項
1. キャッシュの問題とバージョン管理
jsDelivrはCDNキャッシュを積極的に使用します。
一般的なキャッシュ方針
| 方式 | キャッシュ期間 |
|---|---|
| ブランチ参照 | 約12時間 |
| @latest | 最大7日 |
そのため、ファイルを修正しても即時に反映されない場合があります。
推奨方法: Gitタグの使用
リリースの作成
- リポジトリへ移動
- 「Releases」
- 「Draft a new release」
- バージョンを入力
例:
text v1.0.0 v1.0.1 v1.1.0
- 「Publish release」
バージョン固定URLの使用
text https://cdn.jsdelivr.net/gh/ユーザー名/リポジトリ名@v1.0.0/data.json
タグURLのキャッシュ方針
- 最大1年間キャッシュ
- S3に永久保存
本番サービスではタグURLの使用を推奨します。
2. GitHubリポジトリのサイズ制限
| 項目 | 制限 |
|---|---|
| 推奨リポジトリサイズ | 1GB未満 |
| GitHubの警告 | 1GB超過時 |
| 単一ファイル制限 | 100MB |
| 非公式な最大サイズ | 約5GB |
GitHub Packagesのデータ転送量
Freeプラン基準:
text 月1GB
3. jsDelivr帯域幅の制限
長所
jsDelivr自体は
- 帯域幅制限なし
- 無料利用
- グローバルCDN
参考
GitHub Pagesには別途の制限が存在
text 月100GB
4. jsDelivrの利用制限
| 項目 | 制限 |
|---|---|
| パッケージサイズ | 150MB |
| 単一ファイル | 20MB |
| HTMLファイル | text/plainとして提供 |
サポート対象外のケース
text Packages larger than 150 MB Single files larger than 20 MB
5. キャッシュパージ (Purge)
緊急にキャッシュを更新する必要がある場合に使用します。
cURLの例
bash curl https://purge.jsdelivr.net/gh/ユーザー名/リポジトリ名@バージョン/ファイルパス
例:
bash curl https://purge.jsdelivr.net/gh/honggildong/[email protected]/data.json
Webインターフェース
jsDelivr公式のPurge Toolを使用
text https://www.jsdelivr.com/tools/purge
参考資料
| 資料 | 説明 |
|---|---|
| jsDelivr公式ホームページ | CDNサービス |
| jsDelivr GitHubリポジトリ | ソースコード |
| jsDelivr Purge Tool | キャッシュ削除 |
| GitHubリポジトリ制限ドキュメント | リポジトリ容量ポリシー |
| GitHub Billing Docs | データ転送ポリシー |
| jsDelivr GitHub Delivery Docs | URL構造とキャッシュ方針 |
運用チェックリスト
- GitHub公開リポジトリの作成
- JSONファイルのアップロード
- jsDelivr URLの生成
- ブラウザテストの完了
- JavaScript fetchテストの完了
- Gitリリースタグの作成
- バージョンURLの適用
- キャッシュ方針の確認
- データ転送量のモニタリング
注意事項
この方法は以下の用途に適しています。
- 個人プロジェクト
- 開発およびテスト
- 小規模サービス
- 設定ファイル(JSON)の配布
- 静的データの提供
以下の環境では別途のCDNまたはオブジェクトストレージの使用を推奨します。
- 大規模商用サービス
- 金融システム
- ミッションクリティカルサービス
- リアルタイム大容量データサービス
GitHubリポジトリを単純なファイルストレージとして過度に使用する場合、GitHub利用規約に抵触する可能性があるため注意が必要です。
結論
GitHub + jsDelivrの組み合わせは、無料でありながら非常に強力な静的JSON配信方法です。
特に:
- API設定ファイル
- LLMプロンプトデータ
- 株式/暗号資産のメタデータ
- バージョン管理が必要な静的データ
の配信に非常に適しており、Gitタグベースのバージョン管理を併用すれば、安定した本番運用も可能です。