Web開発の世界は常に進化し続けており、近年では Jamstack というアーキテクチャが注目を集めています。Jamstack を最大限に活用するためには、静的ホスティングサービスの選択が重要な要素となります。
本記事では、現在人気の静的ホスティングサービスを比較し、それぞれの特徴や適用シーンについて詳しく解説します。
Vercel
Vercel は、Next.js の開発チームが提供するホスティングサービスで、特に Next.js のアプリケーションに最適化されています。Netlify と同様に、Git ベースの自動デプロイ機能を持つほか、リアルタイムのプレビュー機能が優れています。
プラン | 特徴 | 価格 |
---|---|---|
Hobby | 個人用または非営利のプロジェクト向け。アドセンスなどの広告は不可。CLIまたは個人のgit統合からデプロイ可能で、組み込みのCI/CDを提供します。自動的なHTTPS/SSL対応で、gitへの各プッシュに対してプレビューを提供します。 | 無料 |
Pro | 高度な機能を備えたチーム協働向けです。帯域幅は最大1TBまで対応し、プレビュー上のチームコメントでUIをレビューできます。無制限の関数リクエストと1000GB時間の実行が可能で、メールサポートも提供します。 | $20/月 |
Enterprise | より高度なセキュリティ、サポート、パフォーマンスを必要とするチーム向けです。SSO/SAMLログイン、強化された観測性とログ機能が提供されます。より高性能なハードウェア上の分離されたビルドインフラストラクチャで、待ち行列がありません。専任のサクセスマネージャーとSLAも提供します。 | カスタム |
Vercel はカスタムドメインの対応をしています。Vercel のダッシュボードから簡単に設定することができ、HTTPS の設定も自動で行われます。これにより、自分だけのドメイン名でサイトを公開することが可能となります。
また、Vercel はワイルドカードドメインにも対応しており、一つのドメイン下で複数のサブドメインを扱うこともできます。これにより、大規模なプロジェクトや組織での使用にも適しています。
Vercel の特徴として、Serverless Functions があります。これは、API ルートに JavaScript や TypeScript のファイルを置くだけで、サーバーレス関数として自動的にデプロイされます。これにより、API エンドポイントの作成が簡単になります。
// Vercel の自動デプロイ設定の例
import { Deployment } from '@vercel/client'
const deployment = new Deployment({
token: 'your_vercel_token',
directory: './out',
})
deployment.deploy()
また、Vercel はパフォーマンスの最適化に力を入れています。Next.js のアプリケーションをホストする場合、画像の最適化や ISR (Incremental Static Regeneration) など、Next.js の高度な機能をフルに活用できます。
Netlify
Netlify は、その手軽さと機能の豊富さから、Jamstack プロジェクトのデプロイに広く使用されています。GitHub、GitLab、Bitbucket といった主要な Git リポジトリとの連携が容易で、コードのプッシュにより自動でビルドとデプロイが行われます。
プラン | 特徴 | 価格 |
---|---|---|
スターター | 個人のプロジェクトやプロトタイプのシングルメンバープラン。グローバルエッジネットワークへのデプロイが可能で、協力的なUIを備えたライブサイトプレビューが提供されます。任意のバージョンへの瞬時のロールバック、静的アセットと動的なサーバーレス関数のデプロイが可能です。 | 無料 |
プロ | プロフェッショナルなウェブプロジェクト用。バックグラウンドでの関数処理、パスワード保護されたサイト、1TBの帯域幅と25kのビルド分の提供。7日間の履歴を持つ監査ログ、共有環境変数のサポート。組織が所有するプライベートGitリポジトリへの対応。Slackおよびメールによる通知機能、メールによるサポートが提供されます。 | $19/月 |
ビジネス | 大規模チーム向け。高度なセキュリティとコンプライアンス。SAMLによるシングルサインオン、ロールベースのアクセス制御、1.5TBの帯域幅と35kのビルド分、完全な履歴を持つ監査ログが提供されます。全サイトに対する無制限のアナリティクス、無制限のフォームとアイデンティティ。請求管理者の役割、GitHub Enterprise Server またはGitLabへのサポート。ビルドの優先順位付けが可能。 | $99/月 |
エンタープライズ | チームとパフォーマンスの要件に合わせてサービスをカスタマイズしたプラン。99.99%の稼働時間を保証するSLAと、年間無休の24時間体制のプレミアムサポート。組織レベルの制御を持つ無制限のチーム。エンタープライズグレードのグローバルエッジネットワーク。SLA付きの高性能ビルド。カスタム契約と請求書発行。セキュリティとコンプライアンスのレビュー。ペネトレーションテストと負荷テスト。ログの排出。 | カスタム |
Netlifyもカスタムドメインに対応しています。Netlifyのダッシュボードから簡単にドメインを設定し、サイトを公開することができます。Netlifyが自動的にSSL証明書を発行し、HTTPSで安全にサイトを運用することが可能となります。
また、ドメインをNetlifyに直接購入することも可能で、その場合はDNS設定が自動的に行われます。これにより、ドメインの設定や管理が一元化され、さらに簡単にWebサイトの公開を行うことができます。
Netlify の特徴的な機能の一つに、Netlify Functions があります。これは AWS Lambda を背後に持つサーバーレス関数で、バックエンドの処理を行うことが可能です。
// 自動デプロイ設定の例
import { createClient } from 'netlify'
const client = createClient({ accessToken: 'your_netlify_access_token' })
client.deploySite({
siteId: 'your_site_id',
dir: './public',
})
また、Netlify Identity による認証サービスや、Netlify CMS によるコンテンツ管理機能も提供しています。これらの機能を活用すれば、バックエンドの知識が少ない開発者でも Jamstack アプリケーションを効率的に構築できます。
GitHub Pages
プラン | 特徴 | 価格 |
---|---|---|
Free | 個人向けの基本プラン。無制限のパブリック・プライベートリポジトリ。 GitHub Actionsはパブリックリポジトリのみ無料。 GitHub Pagesはパブリックリポジトリのみ設定可能。CI/CD時間は月2,000分まで。 |
無料 |
Team | 個人および小規模プロジェクト用。 | $44/月 |
Enterprise | セキュリティ、コンプライアンス、柔軟な運用 | $231/月 |
GitHub Pagesもカスタムドメインに対応しています。GitHubリポジトリの設定からカスタムドメインを指定することができます。また、HTTPSのサポートもありますが、手動で設定する必要があります。
ただし、GitHub Pagesでのカスタムドメイン設定は、DNS設定など比較的手続きが複雑な面もあります。そのため、初めてカスタムドメインを設定する場合は、公式ドキュメンテーションを確認しながら進めることをおすすめします。
なお、GitHub Pagesは無料プランでもカスタムドメインの設定が可能なため、個人のブログやポートフォリオサイトなど、小規模なサイトのホスティングに適しています。
GitHub Pages は、GitHub リポジトリから直接静的サイトをホスティングするサービスです。その最大の魅力は、そのシンプルさと手軽さにあります。GitHub リポジトリにコードをプッシュするだけで、サイトが自動的にデプロイされます。
// GitHub Pages へのデプロイは、GitHub のリポジトリにコードをプッシュするだけ
git push origin master
GitHub Pages は、特に小規模な静的サイトや個人のポートフォリオ、オープンソースプロジェクトのドキュメンテーションに適しています。設定が簡単で、追加のコストなく利用できるため、初めて静的サイトをホスティングする方にもおすすめです。
ただし、GitHub Pages は基本的な静的ホスティングの機能しか提供していません。より高度な機能を必要とする場合、Netlify、Vercel、AWS Amplify など他のホスティングサービスを検討すると良いでしょう。
AWS Amplify
AWS Amplify は Amazon Web Services の一部として提供されるホスティングサービスで、フルスタックアプリケーションの開発を強力にサポートします。他の AWS サービスとの統合が強力な点が特徴で、データベース、認証、API、ストレージなど、多岐にわたるサービスを一元的に管理できます。
AWS Amplify の料金 - Amazon Web Services
// AWS Amplify のデプロイ設定の例
import { Amplify } from 'aws-amplify'
Amplify.configure({
Auth: {
identityPoolId: 'your_identity_pool_id',
region: 'your_region',
},
Storage: {
AWSS3: {
bucket: 'your_bucket',
region: 'your_region',
},
},
})
AWS Amplify は、他の AWS サービスとの連携が強力なため、大規模なプロジェクトやエンタープライズ向けの開発でその力を発揮します。また、モバイルアプリケーションの開発にも対応しており、iOS、Android 用の SDK も提供しています。
まとめ
それぞれが独自の強みを持っており、プロジェクトの要件や開発者のスキルによって最適なサービスは変わります。
Netlify は手軽さと機能の豊富さが魅力で、Vercel は Next.js との相性が抜群、AWS Amplify は大規模開発や他の AWS サービスとの統合が必要な場合に強いです。
あなたのプロジェクトに最適な静的ホスティングサービスを見つけて、Jamstack の世界を最大限に活用し