Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rust & AWS X-Ray による分散トレーシングの実現

Kazumasa Yamamoto
October 11, 2023
2.3k

Rust & AWS X-Ray による分散トレーシングの実現

Kazumasa Yamamoto

October 11, 2023
Tweet

Transcript

  1. 2 2023/10/11 Rust、何もわからない... #10 自己紹介 kyamamoto9120 山本 一将 ユニークビジョン株式会社 エンジニア

    業務でRust書きつつ、チームの生産性を向上させる改善をします 実績:2015年 世界コンピュータ将棋選手権 9位 趣味:スポーツ観戦、将棋、キャンプ、リアル脱出ゲーム
  2. 6 2023/10/11 Rust、何もわからない... #10 システム構成 ➢ 導入 ➢ 成果物の構成 ➢

    環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  3. 7 2023/10/11 Rust、何もわからない... #10 資料作成時の環境 インストール方法 • Rust : https://www.rust-lang.org/tools/install

    • Docker : https://docs.docker.com/engine/install • AWS Copilot : https://aws.github.io/copilot-cli/ja/docs/getting-started/install/ ➢ 導入 ➢ 成果物の構成 ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  4. 8 2023/10/11 Rust、何もわからない... #10 プロジェクトの作成 ➢ 導入 ➢ 成果物の構成 ➢

    環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  5. 9 2023/10/11 Rust、何もわからない... #10 API サーバーの作成 ➢ 導入 ➢ 成果物の構成

    ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  6. 10 2023/10/11 Rust、何もわからない... #10 Dockerfile の作成 ➢ 導入 ➢ 成果物の構成

    ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  7. 11 2023/10/11 Rust、何もわからない... #10 AWS へデプロイ ➢ 導入 ➢ 成果物の構成

    ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  8. 12 2023/10/11 Rust、何もわからない... #10 OpenTelemetry に必要なクレートを追加 ➢ 導入 ➢ 成果物の構成

    ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ tracing 最強!
  9. 13 2023/10/11 Rust、何もわからない... #10 tracing の設定を行う関数を実装 ➢ 導入 ➢ 成果物の構成

    ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ AWS X-Ray は ID が特殊
  10. 14 2023/10/11 Rust、何もわからない... #10 初期化処理とミドルウェアの追加 ➢ 導入 ➢ 成果物の構成 ➢

    環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ 追加するのは2行
  11. 15 2023/10/11 Rust、何もわからない... #10 AWS Distro for OpenTelemetry を追加 ➢

    導入 ➢ 成果物の構成 ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ この2行を足すと ADOT が サイドカーで 動く!
  12. 16 2023/10/11 Rust、何もわからない... #10 デプロイして動作確認 ➢ 導入 ➢ 成果物の構成 ➢

    環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
  13. 17 2023/10/11 Rust、何もわからない... #10 クリーンアップ ➢ 導入 ➢ 成果物の構成 ➢

    環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ 消し忘れると お金かかるよ!
  14. 22 2023/10/11 Rust、何もわからない... #10 ありがとうございました 皆さんとお話したい 採用してます Xのフォローお願いします • 今日の発表について

    • ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc…