Wiki.js は無料で利用できる OSS の Wiki です。高速な Node.js エンジンで実行され、多機能でデザインもモダンな次世代の Wiki です。
Wiki.js の概要・特徴についてはこの記事にまとめています。
そんな Wiki.js を AWS Fargate 上にデプロイしてみます。
データベース
Wiki.js はデータベースがないと起動できません。まずはデータベースを作成しましょう。
AWS コンソールの RDS のページから、「データベースの作成」を押下します。
- データベースの作成方法を選択 :
標準作成 - エンジンのオプション :
MySQL - エンジンバージョン :
Mysql-8.0.35 - テンプレート :
無料利用枠 - DBインスタンス識別子 :
wiki-js-mysql - 認証情報の設定
- マスターユーザ名 :
admin - マスターパスワード :
wikis-secret
- マスターユーザ名 :
- インスタンス :
db.t3.micro - ストレージ
- ストレージタイプ :
汎用 SSD (gp2) - ストレージ割り当て :
20 GiB - 自動スケーリング :
無効
- ストレージタイプ :
- 接続
EC2 コンピューティングリソースに接続しない- ネットワークタイプ :
IPv4 - VPC :
Default VPC - DB サブネットグループ :
default-vpc - パブリックアクセス :
なし - VPC セキュリティグループ :
default - アベイラビリティーゾーン :
ap-northeast-1a - データベースポート :
3306
- データベース認証 :
パスワード認証 - モニタリング :
オフ - 追加設定
- 最初のデータベース名 :
wiki_js - パラメータグループ :
default.mysql8.0 - 自動バックアップ :
無効 - 暗号化 :
オフ
- 最初のデータベース名 :
月額の概算は以下の通りです
- DB インスタンス:
18.98 USD- ストレージ:
2.76 USD- 合計:
21.74 USD
RDSを使用していないときは、停止するとインスタンスにかかるコストを抑えることができます。
ただし、RDS は停止しても 1週間後に自動で起動される ことに注意してください。
ECS タスク定義の作成
Fargate サービスを作成するために、タスク定義を作成しましょう。
AWS コンソールから Fargate のページに行き、「新しいタスク定義の作成」を押下します。
以下を入力して、タスク定義を作成します。
- タスク定義ファミリー :
wiki-js-task - 起動タイプ :
AWS Fargate - OS、アーキテクチャ、ネットワークモード :
Linux/X86_64 - タスクサイズ
- CPU :
.5 vCPU - メモリ :
1 GB
- CPU :
- タスクロール :
ecsTaskExecutionRole - タスク実行ロール :
ecsTaskExecutionRole - コンテナ - 1
- 名前:
wiki-js-01 - イメージ URI:
ghcr.io/requarks/wiki:latest - 必須コンテナ:
はい - プライベートレジストリ:
オフ - ポートマッピング
- コンテナポート:
3000 - プロトコル:
TCP - ポート名:
wiki-js-01-80-tcp - アプリケーションプロトコル:
HTTP
- コンテナポート:
- 名前:
- 環境変数
- DB_TYPE :
mysql - DB_HOST :
wiki-js-mysql.xxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com(AWS コンソールの RDS ページで確認してください。) - DB_PORT :
3306 - DB_USER :
admin - DB_PASS :
wikijs-secret - DB_NAME :
wiki_js
- DB_TYPE :
ECS クラスターの作成
サービスを作成する前に、クラスターを作成しておきます。
- クラスター名:
wiki-js-cluster - インフラストラクチャ:
AWS Fargate
ECS サービスの作成
- 既存のクラスター:
wiki-js-cluster - アプリケーションタイプ:
サービス - サービス名:
wiki-js-service - サービスタイプ:
レプリカ - 必要なタスク:
1 - ネットワーキング
- VPC:
default-vpc - サブネット:
default-subnet-01,default-subnet-02,default-subnet-03 - セキュリティグループ:
default - パブリックIP:
オン
- VPC:
- ロードバランシング
- ロードバランサーの種類:
Application Load Balancer 新しいロードバランサーの作成- ロードバランサー名:
wiki-js-alb - ヘルスチェックの猶予期間: 30s
- コンテナ
- ロードバランス用のコンテナの選択:
wiki-js-01 - リスナー:
新しいリスナーを作成- ポート:
80 - プロトコル:
HTTP
- ポート:
- ターゲットグループ:
新しいターゲットグループの作成- ターゲットグループ名:
wiki-js-tg - プロトコル:
HTTP - ヘルスチェックプロトコル:
HTTP - ヘルスチェックパス:
/
- ターゲットグループ名:
- ロードバランス用のコンテナの選択:
- ロードバランサーの種類:
アクセスしてみる
しばらくして、AWS コンソールでロードバランサーのページにいくと、ALB が作成されています。
押下して詳細に進むと、「DNS名」という項目があります。
これをコピーしてブラウザに貼り付けてアクセスしてみましょう。
こんな感じで表示されたら成功です!!
![]()
感想
Wiki.js は公式がコンテナを配布してくれているので、ビルドやコーディングなしで AWS 上にデプロイできてしまうことがわかりました!












