Astro のデプロイ方法比較ガイド
Astro は高速で軽量な Web フレームワークとして人気を集めていますが、作成したサイトを公開するためのデプロイ方法はいくつかあります。この記事では、主要なデプロイプラットフォームについて、それぞれの特徴と設定方法を解説します。
目次
Vercel へのデプロイ
TIPVercel は特に SSR をサポートする Astro サイトに最適なプラットフォームの一つです。
特徴
- 設定不要ですぐにデプロイが可能
- SSR、SSG、ISR など多様なレンダリング戦略をサポート
- プレビュー環境とプロダクション環境の分離
- アナリティクスと環境変数の管理
- グローバル CDN による高速化
設定方法
- Vercel アカウントを作成し、ログインします
- GitHub リポジトリと連携します
- 「Import Project」からリポジトリを選択します
- フレームワークプリセットとして「Astro」を選択します
# または、Vercel CLIを使用する場合
npm i -g vercel
vercel login
vercel
astro.config.mjs の設定
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/serverless";
export default defineConfig({
output: "server",
adapter: vercel(),
});
カスタムドメインの設定
Vercel ダッシュボードから「Domains」セクションに移動し、カスタムドメインを追加します。DNS の設定を行えば、数分で SSL 証明書が自動発行され、サイトにアクセスできるようになります。
Netlify へのデプロイ
NOTENetlify は特に静的サイトの場合、非常に簡単にデプロイできるプラットフォームです。
特徴
- ドラッグ&ドロップでデプロイが可能
- 継続的デプロイメント
- フォーム処理機能
- サーバーレス関数のサポート
- エッジ関数によるパフォーマンス最適化
設定方法
- Netlify アカウントを作成し、ログインします
- 「New site from Git」をクリックします
- GitHub リポジトリと連携します
- ビルド設定:
- Build command:
npm run build
- Publish directory:
dist
- Build command:
# または、Netlify CLIを使用する場合
npm install -g netlify-cli
netlify login
netlify init
netlify deploy --prod
astro.config.mjs の設定
import { defineConfig } from "astro/config";
import netlify from "@astrojs/netlify/functions";
export default defineConfig({
output: "server", // SSRの場合
adapter: netlify(),
});
netlify.toml ファイルの作成
[build]
command = "npm run build"
publish = "dist"
[dev]
command = "npm run dev"
port = 3000
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
GitHub Pages へのデプロイ
IMPORTANTGitHub Pages は特に個人ブログやドキュメントサイトに適しています。
特徴
- 無料で利用可能
- GitHub リポジトリと直接連携
- カスタムドメインと SSL のサポート
- GitHub Actions による自動デプロイ
設定方法
- GitHub リポジトリを作成します
.github/workflows/deploy.yml
ファイルを作成します
name: Deploy to GitHub Pages
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm ci
- name: Build website
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
astro.config.mjs の設定
import { defineConfig } from "astro/config";
export default defineConfig({
site: "https://yourusername.github.io",
base: "/your-repo-name",
});
カスタムドメインの設定
- リポジトリの「Settings」タブに移動します
- 「Pages」セクションでカスタムドメインを入力します
- DNS プロバイダーで CNAME レコードを設定します
- リポジトリに
CNAME
ファイルを作成し、ドメイン名を記載します
Cloudflare Pages へのデプロイ
TIPCloudflare Pages はグローバルなエッジネットワークを活用したい場合に最適です。
特徴
- グローバル CDN による高速配信
- 無制限の帯域幅
- 自動ビルドとデプロイ
- 環境変数とシークレットの管理
- Web アナリティクスの統合
設定方法
- Cloudflare アカウントを作成し、ログインします
- 「Pages」タブに移動し、「Create a project」をクリックします
- GitHub リポジトリと連携します
- ビルド設定:
- Framework preset: Astro
- Build command:
npm run build
- Build output directory:
dist
astro.config.mjs の設定
import { defineConfig } from "astro/config";
import cloudflare from "@astrojs/cloudflare";
export default defineConfig({
output: "server", // SSRの場合
adapter: cloudflare(),
});
Deno Deploy へのデプロイ
NOTEDeno Deploy は特に TypeScript ベースのプロジェクトに適したプラットフォームです。
特徴
- TypeScript ネイティブサポート
- グローバルエッジネットワーク
- 迅速なデプロイと更新
- GitHub 連携
- 無料枠が比較的大きい
設定方法
- Deno Deploy アカウントを作成し、ログインします
- 新しいプロジェクトを作成します
- GitHub リポジトリと連携します
- デプロイ設定を行います
astro.config.mjs の設定
import { defineConfig } from "astro/config";
import deno from "@astrojs/deno";
export default defineConfig({
output: "server",
adapter: deno(),
});
従来のホスティングサービスへのデプロイ
CAUTION従来のホスティングサービスでは、SSR の機能が制限される場合があります。
設定方法
- Astro プロジェクトをビルドします
npm run build
- 生成された
dist
ディレクトリの内容を FTP などでアップロードします - サーバー側で必要な設定を行います(.htaccess など)
.htaccess の設定例
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [L,QSA]
デプロイ方法の比較表
プラットフォーム | 無料プラン | SSR サポート | 自動デプロイ | カスタムドメイン | CDN | 特徴 |
---|---|---|---|---|---|---|
Vercel | ✅ | ✅ | ✅ | ✅ | ✅ | 開発者体験に優れた総合的なプラットフォーム |
Netlify | ✅ | ✅ | ✅ | ✅ | ✅ | フォーム処理やサーバーレス関数が簡単に利用可能 |
GitHub Pages | ✅ | ❌ | ✅ | ✅ | ✅ | 無料で利用できる静的サイトホスティング |
Cloudflare Pages | ✅ | ✅ | ✅ | ✅ | ✅ | グローバル CDN とセキュリティ機能が強力 |
Deno Deploy | ✅ | ✅ | ✅ | ✅ | ✅ | TypeScript ネイティブで高速なエッジ実行環境 |
従来のホスティング | 有料 | △ | ❌ | ✅ | △ | 既存のインフラを活用できる柔軟性 |
まとめ
Astro プロジェクトのデプロイ方法は、プロジェクトの規模や必要な機能によって最適なものが異なります。静的サイトであれば GitHub Pages や Netlify が手軽で、SSR や ISR などの動的機能を活用したい場合は Vercel や Cloudflare Pages が適しています。また、特殊な要件がある場合は従来のホスティングサービスも選択肢になります。
最終アドバイス初めての Astro プロジェクトなら、まずは Vercel や Netlify を試してみることをおすすめします。どちらもゼロコンフィグでデプロイでき、開発体験が優れています。
以上のガイドが、あなたの Astro プロジェクトを最適な方法でデプロイする助けになれば幸いです。質問やフィードバックがあれば、コメントセクションでお待ちしています。