0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

tao community edition を ec2 にインストールする

0
Last updated at Posted at 2026-04-09

これはなに

IBTのオープンソース TAO を ubuntu へインストールしたときのメモ。

1. 概要

  • インスタンスリソース
  • docker インストール
  • tao インストール
  • hostsで名前解決

ここから性能改善.
まず、chunk-vendor.js のロードに1分ほどかかるので、これを改善する。

  • docker内networkのMTUを調整
  • 送信データを圧縮
  • 自己証明書をローカルPCに登録

2. インスタンスリソース

当初、smallサイズ(2vcpu, 2GB)で構築したが、メモリ不足で動作できなかった。
推奨にはメモリ4GB以上とある。ローカル環境で起動したcontainerをみると、メモリ使用量: 5.02GBとなっていた。おそらく、7GB程度はあった方がよい。
t4g.large(2vpu, 8GB)で、disk: 50GB を使用、swapを4GB追加する。

2-1. swap

fileを作成する。

sudo fallocate -l 4G /swapfile

パーミッションを変更する。

sudo chmod 600 /swapfile

mkswapを実行する。

sudo mkswap /swapfile

swapon を実行する。

sudo swapon /swapfile
$ free
               total        used        free      shared  buff/cache   available
Mem:         3918156      358108     3346236         920      364444     3560048
Swap:        4194300           0     4194300

↑ Swap: 4GB でOK。

起動時に swapを mount する。
/etc/fstab に /swapfile none swap sw 0 0 を追加する。

3. docker インストール

公式 reference に沿って行う。
https://docs.docker.com/engine/install/ubuntu/

3-1. apt をセットアップ

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

3-2. docker インストール

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3-3. ユーザーを docker グループに追加

sudo usermod -aG docker $USER

再度ログインして、docker ps が動くことを確認する。

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

4. tao インストール

まず、公式webサイトの community-edition-install の form から deployment guide を取得する。
https://www.accelerate.taotesting.com/community-edition-install

入力したメールアドレスに deployment guide が送られる。

4-1. docker-compose.tao-ce.yaml を取得

任意のdirにて、指定されたzipを取得する。

wget https://gist.github.com/tao-community-edition/5ac924d5021aa2d7d3635064edc0e752/archive/eb21e720043a3278655516ae1e5993ef6ca2e3f4.zip

unzip をインストールする。

sudo apt install unzip

zipを解凍する。

unzip eb21e720043a3278655516ae1e5993ef6ca2e3f4.zip

yamlを移動しておく。

mv 5ac*/docker-compose.tao-ce.yaml ./docker-compose.yaml

4-2. container 起動

docker compose up -d

4-3. 自動再起動を設定

EC2インスタンス起動時にTAOを自動起動するため、 restart: always を付与する。
対象は、es, firestore, pubsub, tao

※ pgsql, redis は、付与されている。

5. hosts で名前解決

この ta-ce は、ホスト名 community.tao.internal でアクセスする必要がある模様。
自PCの /etc/hosts に以下の名前解決を追加する。
(windows: C:\Windows\System32\drivers\etc\hosts

<IPaddress> community.tao.internal  # for tao-ce

IPaddress は ec2 の ip アドレス)

これで、https://community.tao.internal へアクセスできるようになる。

6. docker内networkのMTUを調整

TCP パケットがネットワークのどこかで「分割が必要なのに分割できない」ためにドロップし、再送(Retransmission)が発生している典型例とのこと。

原因: aws EC2 (MTU 9001) と Docker ブリッジ (MTU 1500)、そしてあなたのインターネット環境の境界でパケットが詰まっています。

対策: docker-compose.yml でネットワークの MTU を明示的に下げてください。

networks:
  default:
    name: tao-ce_default
    driver: bridge
    driver_opts:
      com.docker.network.driver.mtu: "1400"

7. 送信データを圧縮

curl -I -H "Accept-Encoding: gzip" -k https://community.tao.internal/portal-static/chunks/chunk-vendor.js

上述のcliでヘッダを見ると、content-encoding: gzip が付与されていなかった。

まず、Caddyfile を取得する。

docker cp tao-ce-tao-1:/etc/tao-ce/config/Caddyfile ./Caddyfile

そして、encode gzip zstd 行を追加。

{$TAO_CE_PUBLIC_DOMAIN}:443 {
        encode gzip zstd  # 圧縮を有効にする
        @deliver-static path /deliver/sw.js /sw.js /deliver-fe-static/*

docker-compose.yaml で、これをマウントする。

docker-compose.yaml
services:
  tao:
    volumes:
      - ./Caddyfile:/etc/tao-ce/config/Caddyfile:ro  # <- この行を追加

8. 自己証明書をローカルPCに登録

自己証明書を使用している環境では、ブラウザの仕様によるが、キャッシュが有効にならない場合が多い。
キャッシュを活用するため、自己証明書をローカルPCに登録する。

8-1. 自己証明書をインポート

ブラウザからDLしてPCにインポートする。

  1. 保護されていない通信 > 証明書の詳細 > 詳細 を開く
  2. 「証明書の階層」で、Intermediate を選択する
  3. 右下のエクスポートボタンを押下、保存する

この pem ファイルをダブルクリックし、ローカルPCに証明書をインストールする。
★ このとき、証明書を信頼するように指定する。
macの場合: 常に信頼
windowsの場合: 信頼されたルート証明機関

8-2. 自己証明書を固定

caddy が再起動しても同じ証明書を用いるようにマウントして永続化する。
docker-compose.yaml に以下を追記する。

docker-compose.yaml
services:
  tao:
    volumes:
      - ./root_local_share_caddy:/root/.local/share/caddy

/root/.local/share/caddy/certificates/local/community.tao.internal/community.tao.internal.crt が生成される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?