はじめに
Keycloakは、ユーザー認証と認可を管理できるオープンソースのアイデンティティおよびアクセス管理ソリューションです。VPS(バーチャルプライベートサーバー)上にKeycloakをセルフホストすることで、認証プロセスを完全にコントロールでき、開発者やホームラボ愛好家の間で人気があります。このガイドでは、特にDockerを使用してデプロイを簡素化しながら、VPS上にKeycloakをインストールする手順を説明します。
適切なVPSプロバイダーの選び方
Keycloakのセルフホスティング用にVPSを選ぶ際は、パフォーマンス、料金、利用可能なリソースを考慮してください。以下は、Keycloak展開に検討できる主要なVPSプロバイダーの比較表です。
| プロバイダー | 月額料金 | RAM | CPUコア | ストレージ |
|---|---|---|---|---|
| Contabo VPS | 5.99 EUR | 4 GB | 2 | 300 GB SSD |
| Hetzner Cloud | 4.15 EUR | 2 GB | 1 | 20 GB SSD |
| DigitalOcean | 6 USD | 1 GB | 1 | 25 GB SSD |
| Vultr | 6 USD | 1 GB | 1 | 25 GB SSD |
| Linode (Akamai) | 5 USD | 2 GB | 1 | 50 GB SSD |
より詳細な情報にはVPS全比較表をご覧ください。
前提条件
開始する前に、次の準備をしてください。
- 十分なリソース(少なくとも2 GB RAM推奨)を持つVPS
- VPSのIPアドレスに紐付けられたドメイン名(任意だが推奨)
- LinuxコマンドラインとSSHの基本的な知識
VPSにKeycloakをインストールする
ステップ 1: VPSにアクセス
SSHを使ってVPSに接続します。your-userとyour-ipはあなたのユーザー名とVPSのIPアドレスに置き換えてください。
ssh your-user@your-ip
ステップ 2: Dockerをインストール
Dockerを使用してKeycloakをセットアップすることで、簡素化と管理が容易になります。UbuntuサーバーにDockerをインストールする方法は以下の通りです。
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
インストールの確認は次のコマンドで行います。
docker --version
ステップ 3: Dockerを使ってKeycloakを起動
以下のコマンドを実行して、KeycloakのDockerコンテナを起動します。
sudo docker pull jboss/keycloak
sudo docker run -d -p 8080:8080 --name keycloak \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=password \
jboss/keycloak
このコマンドでは、KEYCLOAK_USERとKEYCLOAK_PASSWORDに管理者ユーザーとパスワードを設定しています。セキュリティのためにこれらを適切に変更してください。
ステップ 4: Keycloakにアクセス
コンテナが起動したら、ブラウザでhttp://your-vps-ip:8080/authにアクセスしてください。設定した資格情報を使ってログインできます。
ステップ 5: Keycloakの設定
最初のログイン後に、リアルム、クライアント、ユーザーの設定を開始できます。Keycloakはこれらの設定に関する詳しいドキュメントも提供しています。
セルフホスティングKeycloakのベストプラクティス
- VPSのセキュリティ確保:定期的なシステムアップデートと、ファイアウォールを使ったアクセス制限を行います。
- HTTPSを有効化:Let’s Encryptを利用して無料のSSL証明書を作成し、KeycloakをHTTPS上で動作させます。
- データのバックアップ:定期的にKeycloakのデータベースとコンテナ設定をバックアップしてください。
よくある質問
1. Dockerを使わなくてもKeycloakは動かせますか?
はい、Dockerを使わずにKeycloakをインストールすることも可能です。 Keycloak公式サイトからスタンドアロン版をダウンロードし、お使いのOS向けのインストール手順に従うことができます。ただし、Dockerを使う方が導入や管理が容易であり、依存関係のトラブルも少なくなります。
2. VPSでKeycloakをスケールさせるには?
VPSでKeycloakをスケールさせるには、複数のインスタンスをロードバランサーの背後に展開します。Docker ComposeやKubernetesを使って複数コンテナを管理すると良いでしょう。各インスタンスは同じデータベースを共有し、セッションの一貫性を保つ必要があります。VPSのリソースも十分に確保してください。
3. Keycloakはどのデータベースを使えますか?
Keycloakは、PostgreSQL、MySQL、MariaDB、H2(開発用)などさまざまなデータベースをサポートしています。本番環境では、堅牢性と拡張性からPostgreSQLまたはMySQLの使用がおすすめです。設定はstandalone.xmlまたはDockerの環境変数を通じて行います。
これらの手順に従えば、VPS上でKeycloakをセルフホストし、アイデンティティ管理とアクセス管理を自分でコントロールすることが可能です。セルフホスティングに関するさらなる情報やリソースについては、r/selfhostedコミュニティやawesome-selfhostedリポジトリもご参照ください。 ---END---