💬
#02 EC2 & KeyCloak構築メモ(202303)
1. はじめに
QuarkusベースのKeycloakをEC2上で構築した時のメモです。
Keycloakを、開発者モードで起動し、 ローカルの環境からログインできるまでを記載します。
セットアップ対象のバージョン
- Windows11
- WSL2
- cdk 2.69.0
- ubuntu 20.04.1
- keycloak 21.0.2
2. WSLセットアップ
EC2にCDKで構築するためには、CDKコマンドを実行できる環境が必要です。
下記の記事を参照し、CDK
他記事: Rust & AWS Lambda & API構築メモ(202303) を参照してください。
3. CDKを使ってEC2環境をデプロイする
EC2のCDK環境を準備する
次のコマンドを、wsl2上から実施する
$ mkdir ec2-cdk && cd ec2-cdk
$ cdk init app --language typescript
$ vi lib/ec2-cdk-stack.ts
---
$vi lib/ec2-cdk-stack.ts
---
#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { Ec2CdkStack } from '../lib/ec2-cdk-stack';
const app = new cdk.App();
new Ec2CdkStack(app, 'EC2CDkStack', {
env: {account: '************', region: 'ap-northeast-1'},
});
$ cdk synth
$ cdk deploy
Do you wish to deploy these changes (y/n)? y
※作成されるリソースに、"NAME:EC2CDkStack"のタグが追加される
Ubuntuセットアップ
EC2インスタンスから ※EC2インスタンス一覧から"EC2 Instance Connecdt"を使ってEC2に接続する
$ uname -srmvpio //Version確認
Linux 5.15.0-1033-aws #37~20.04.1-Ubuntu SMP -- x86_64 x86_64
$ sudo apt-get update //パッケージリストを最新化する
$ sudo apt-get upgrade //インストールされているパッケージを最新化する
$ sudo apt-get dist-upgrade //不要になったパッケージを削除する
$ sudo apt-get install zip
$ sudo apt-get install cifs-utils //mount: wrong fs type, bad option, bad superblock on 対応
$ java --version
$ sudo get install openjdk-17-jre-headless // version17を選択
WSL2からssh接続する
次のコマンドを、wsl2上から実施する
$ ssh-keygen #キーペアファイルを作成
---
Generating public/private rsa key pair.
Enter file in which to save the key (<user_directory>/.ssh/id_rsa): //鍵の保存先
Enter passphrase (empty for no passphrase): //パスフレーズを入力
Enter same passphrase again: //再度パスフレーズを入力
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
WSL2で作成した"id_rsa.pub"の内容を最下部に追記する
$ vi /home/ec2-user/.ssh/authorized_keys
---
ssh-rsa *********
// WSL2からSSHでEC2インスタンスに接続する
$ aws ec2 describe-instances //ec2情報取得(publicIP...)
$ aws sg-07de6f101dc3eefad
$ ssh ubuntu@ec2-99-123-456-789.ap-northeast-1.compute.amazonaws.com
// security-group ルール追加方法(例:8080 IPアドレス追加)
$ aws ec2 authorize-security-group-ingress --group-id sg-07de6f101dc3eefad --protocol tcp --port 8080 --cidr ***.***.***.***/32
Keycloakセットアップ
次のコマンドを、EC2上から実施する
$ sudo yum update -y
$ sudo yum install -y wget java-1.8.0-openjdk
$ java -version
$ mkdir /home/ec2-user/keycloak && cd /home/ec2-user/keycloak
$ curl -LO https://github.com/keycloak/keycloak/releases/download/21.0.2/keycloak-21.0.2.zip
$ unzip keycloak-21.0.2.zip
$ cd keycloak-21.0.2
$ KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=password bin/kc.sh start-dev & //Keycloak起動
$ bin/kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin --password //管理CLIを使ってログイン
$ bin/kcadm.sh update realms/master -s enabled=true -s sslRequired=none // Keycloak のSSL 暗号化で保護を外したい場合
ブラウザーから:8080にアクセスするとKeycloakの管理画面にアクセスできます
Keycloak Usages
1. API一覧の取得
- Realm Settingを開きます。
- "User-managed access"を、有効にします。
- "OpenID Endpoint Configuration"をクリックして、API一覧を取得します。
[参考]
Discussion