LogoLogo
日本語
日本語
  • Diarkis ヘルプセンター
  • Diarkis の概要
  • 始めよう
    • Diarkis サーバーテンプレート
    • Diarkis クライアント SDK
    • チュートリアル
      • 1. Diarkis サーバーをローカル環境で起動する
      • 2. テストクライアントで疎通確認する
      • 3. カスタムコマンドを実装する
      • Diarkis クライアントからサーバに接続する
    • サンプル
  • Diarkis のモジュール
    • Room モジュール
      • Room モジュールをサーバーでセットアップする
      • Room サンプル
        • room_broadcast
      • Room モジュールをクライアントから利用する
      • Room のその他の機能
    • MatchMaker モジュール
      • MatchMaker モジュールをサーバーでセットアップする
    • Field モジュール
      • Field モジュールをサーバーでセットアップする
    • P2P モジュール
      • P2P モジュールをサーバーでセットアップする
      • P2P サンプル
    • DM (Direct Message) モジュール
      • DM モジュールをサーバーでセットアップする
    • Notifier モジュール
      • Notifier モジュールをサーバーでセットアップする
    • Session モジュール
      • Session モジュールをサーバーでセットアップする
    • Group モジュール
      • Group モジュールをサーバーでセットアップする
  • Diarkis サーバー
    • Diarkis サーバをクラウド環境で起動する
      • AWS
    • Diarkis サーバーを Windows 環境で起動する
    • MARS サーバー
    • UDP サーバー
    • TCP サーバー
    • HTTP サーバー
    • Metrics API
    • サーバー間通信 - Mesh
  • Diarkis クライアント
    • ランタイム・ライブラリ
      • Diarkis RUDP
    • Diarkis Module
      • Diarkis Module の初期化と終了
      • Diarkis Module のカスタイマイズ
      • Diarkis Module のロギング・システム
      • マイグレーション
      • Diarkis のスレッド
    • サンプル
      • C++
        • room_broadcast
        • directmessage_simple
        • group_sample
        • matching_and_turn
        • matchmaker_ticker
        • p2p_rudp_sample
        • session_simple
      • Unreal Engine Plugin
        • FieldWalker
      • Unity Plugin
        • FieldWalker
          • HowToReplicatePosition.md
  • Diarkis ツール
    • Diarkis CLI
      • cgo を利用するプロジェクトをビルドする方法
      • Diarkis CLI v3 への切り替え手順
  • リファレンス
    • API リファレンス
    • リリースノート
      • v1.0
      • v1.0.1
      • v1.0.2
      • v1.0.3
      • v1.0.4
      • v1.0.5
      • v1.0.6
  • サポート
    • ライセンスと購入
GitBook提供
このページ内
  • 概要
  • 必要条件
  • セットアップガイド
  • Diarkisイメージ用のECRを作成
  • Diarkis用のEKSを作成して接続
  • EKSファイアウォールを開放
  • サーバーイメージにタグを付けてプッシュ
  • マニフェストを適用
  • Diarkisクラスタの確認
  • クラスタオートスケーラーのセットアップ
  • ログコレクターのセットアップ

役に立ちましたか?

  1. Diarkis サーバー
  2. Diarkis サーバをクラウド環境で起動する

AWS

このドキュメントでは、AWS(EKS)上でDiarkisを構築、デプロイ、オーケストレーションするプロセスについて説明します。

前へDiarkis サーバをクラウド環境で起動する次へDiarkis サーバーを Windows 環境で起動する

最終更新 1 か月前

役に立ちましたか?

概要

提供されているk8s設定を使用すれば、Diarkisの使用は簡単です。ただし、これらの設定は初期段階のものであるため、必要に応じて自由に修正してください。


必要条件

  1. Docker のいずれかの設定:

    1. MacOS - Docker for MacOSをインストール。インストールガイドは。

    2. Linux - お使いのLinuxディストリビューションに合わせてDockerをインストール。インストールガイドは。注意: Dockerはx86_64/amd64アーキテクチャの主要なLinuxディストリビューション用に.debと.rpmパッケージを提供しており、Archベースのディストリビューションのも提供しています。

    3. Windows (WSL2またはHyper-Vバックエンド) - インストールガイドは。初めてDockerをインストールする場合は、バックエンドの選択前にユースケースを考慮してください。

  2. AWSアカウント と請求が有効になっていること。AWSアカウントやプロジェクトをお持ちでない場合は、を参照して始めてください。

  3. AWS CLI (awsコマンド) と適切な認証。インストールガイドは (注意: AWS CLIはすべての主要なオペレーティングシステムをサポートしています)。CLI認証のヘルプはを参照してください。

  4. Kubernetes CLI (kubectlコマンド) はからダウンロード可能です。

  5. EKS CLI (eksctlコマンド) はAWS Workshopのからダウンロード可能です。


セットアップガイド

以下の手順で、テンプレートDiarkisサーバークラスタの構築、デプロイ、オーケストレーションのプロセスをご案内します。これらの手順で、開始するのに十分な情報が得られるはずです。

Diarkisイメージ用のECRを作成

aws sts get-caller-identity  # 正しいターゲットを確認
aws ecr create-repository --repository-name http
aws ecr create-repository --repository-name udp
aws ecr create-repository --repository-name tcp
aws ecr create-repository --repository-name mars

Diarkis用のEKSを作成して接続

eksctl create cluster -f cloud/aws/cluster_config.yaml  # 約10分かかります

注意: 選択したAZでNATゲートウェイの互換性に関するエラーが発生した場合は、別のAZを選択してください

aws eks --region ap-northeast-1 update-kubeconfig --name diarkis  # k8s認証情報を取得

EKSファイアウォールを開放

EKSノードへの0.0.0.0/0からのポート7000-8000のTCPおよびUDPトラフィックを許可します。 セキュリティグループ名eks-cluster-sg-diarkis-*で設定することをお勧めします。


サーバーイメージにタグを付けてプッシュ

server-templateで生成されたプロジェクトルートから、以下のコマンドを実行します:

make build-local

./remote_binにサーバー実行ファイル(udp、tcp、http、mars)を生成した後、コンテナイメージをビルドします:

make setup-aws
make build-container-aws
make push-container-aws

マニフェストを適用

kustomize build k8s/aws/overlays/dev0 | kubectl apply -f -

以下の4つのコンポーネントが実行中かどうかを確認します:

$ kubectl get po -n dev0
NAME                    READY   STATUS    RESTARTS   AGE
http-5c7dbbb6d7-lhjlm   1/1     Running   0          3d14h
mars-0                  1/1     Running   0          3d14h
tcp-88dc5f97d-7sqk9     1/1     Running   0          3d14h
udp-fdc6bbccc-dwc5w     1/1     Running   0          3d14h

Diarkisクラスタの確認

まず、パブリックエンドポイントを取得します:

EXTERNAL_IP=$(kubectl get svc http -o json -n dev0 | jq -r '.status.loadBalancer.ingress[].hostname')
kubectl get svc -n dev0 -o wide  # または、このコマンドを使用

取得したEXTERNAL_IPにHTTP GETリクエストを送信します:

curl ${EXTERNAL_IP}/auth/1

以下のようなレスポンスが返ってきた場合、正常に動作しています:

{
  "TCP": "ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com:7201",
  "UDP": "ec2-yy-yy-yy-yy.ap-northeast-1.compute.amazonaws.com:7101",
  "sid": "xxxxxxxxxx",
  "encryptionKey": "xxxxxxxxxx",
  "encryptionIV": "xxxxxxxxxx",
  "encryptionMacKey": "xxxxxxxxxx"
}

項目が不足している場合、デプロイされたコンポーネントのいずれかに問題がある可能性があります。この時点で、Diarkisサポートに連絡することをお勧めします。


クラスタオートスケーラーのセットアップ

kubectl apply -f cluster-autoscaler-autodiscover.yaml

このファイルはdiarkisというクラスタ名用に事前設定されています。異なるクラスタ名を使用する場合は、マニフェスト内のdiarkisへの参照を修正してください。


ログコレクターのセットアップ

コンテナからのログはCloudWatch Logsを使用して集約できます。 fluent-bitは既にamazon-cloudwatch名前空間にデプロイされていますが、権限が設定されていません。

diarkis-publicとdiarkis-privateノードにCloudWatchAgentServerPolicyを割り当ててログを集約します。ログは/aws/containerinsights/Cluster_Name/applicationの下に表示され、フィルタリングが可能です。

Diarkisコンポーネントイメージをデプロイ用にプッシュする前に、まずリモートECRレジストリを準備する必要があります。ベースイメージとしてデフォルトでalpineを使用しており、から取得できます。

こちら
こちら
実験的サポート
こちら
こちら
こちら
こちら
こちら
こちら
Docker Hub