Slide 1

Slide 1 text

ユニークビジョン株式会社 山本 一将 Rust、何もわからない... #10 Rust & AWS X-Ray による 分散トレーシングの実現

Slide 2

Slide 2 text

2 2023/10/11 Rust、何もわからない... #10 自己紹介 kyamamoto9120 山本 一将 ユニークビジョン株式会社 エンジニア 業務でRust書きつつ、チームの生産性を向上させる改善をします 実績:2015年 世界コンピュータ将棋選手権 9位 趣味:スポーツ観戦、将棋、キャンプ、リアル脱出ゲーム

Slide 3

Slide 3 text

3 2023/10/11 Rust、何もわからない... #10 Rust、チュートリアルにしたがって APIを作るだけなら結構簡単!

Slide 4

Slide 4 text

4 2023/10/11 Rust、何もわからない... #10 チュートリアルレベルから 運用に耐える品質に持ち上げるのは 大変

Slide 5

Slide 5 text

5 2023/10/11 Rust、何もわからない... #10 今日は、情報が少ないと感じる 「オブザーバビリティ」 チュートリアル

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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 の修正 ➢ デプロイと動作確認 ➢ クリーンアップ

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

18 2023/10/11 Rust、何もわからない... #10 宣伝

Slide 19

Slide 19 text

19 2023/10/11 Rust、何もわからない... #10 Rust.Tokyo 2023

Slide 20

Slide 20 text

20 2023/10/11 Rust、何もわからない... #10 Vue Fes Japan 2023

Slide 21

Slide 21 text

21 2023/10/11 Rust、何もわからない... #10 採用情報 エンジニア募集中! Rust 書けるかも

Slide 22

Slide 22 text

22 2023/10/11 Rust、何もわからない... #10 ありがとうございました 皆さんとお話したい 採用してます Xのフォローお願いします • 今日の発表について • ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc…