Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust & AWS X-Ray による分散トレーシングの実現
Search
Kazumasa Yamamoto
October 11, 2023
2.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rust & AWS X-Ray による分散トレーシングの実現
Kazumasa Yamamoto
October 11, 2023
More Decks by Kazumasa Yamamoto
See All by Kazumasa Yamamoto
ユニークビジョンの Rust 活用事例
fill9120
2
1.8k
Rust製プロダクトを 3年以上運用して得たノウハウ
fill9120
0
1.1k
Messaging APIを駆使した ChatGPT ボットのUX改善
fill9120
0
390
Rust を開発言語として採用してからの取り組み
fill9120
1
1.9k
ストラクチャードコミュニケーション
fill9120
0
140
Cloudflare PagesにVue.jsアプリをデプロイしてみた
fill9120
0
1.1k
Rustでディープラーニング
fill9120
0
460
Rustで定数式を扱う
fill9120
0
460
LINE BotとLIFFを使って謎解きアプリを作った話
fill9120
0
760
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
WCS-LA-2024
lcolladotor
0
640
Building Adaptive Systems
keathley
44
3.1k
Bash Introduction
62gerente
615
220k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
New Earth Scene 8
popppiees
3
2.3k
Navigating Weather and Climate Data
rabernat
0
220
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Language of Interfaces
destraynor
162
27k
Being A Developer After 40
akosma
91
590k
Google's AI Overviews - The New Search
badams
0
1k
Transcript
ユニークビジョン株式会社 山本 一将 Rust、何もわからない... #10 Rust & AWS X-Ray による
分散トレーシングの実現
2 2023/10/11 Rust、何もわからない... #10 自己紹介 kyamamoto9120 山本 一将 ユニークビジョン株式会社 エンジニア
業務でRust書きつつ、チームの生産性を向上させる改善をします 実績:2015年 世界コンピュータ将棋選手権 9位 趣味:スポーツ観戦、将棋、キャンプ、リアル脱出ゲーム
3 2023/10/11 Rust、何もわからない... #10 Rust、チュートリアルにしたがって APIを作るだけなら結構簡単!
4 2023/10/11 Rust、何もわからない... #10 チュートリアルレベルから 運用に耐える品質に持ち上げるのは 大変
5 2023/10/11 Rust、何もわからない... #10 今日は、情報が少ないと感じる 「オブザーバビリティ」 チュートリアル
6 2023/10/11 Rust、何もわからない... #10 システム構成 ➢ 導入 ➢ 成果物の構成 ➢
環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
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 の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
8 2023/10/11 Rust、何もわからない... #10 プロジェクトの作成 ➢ 導入 ➢ 成果物の構成 ➢
環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
9 2023/10/11 Rust、何もわからない... #10 API サーバーの作成 ➢ 導入 ➢ 成果物の構成
➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
10 2023/10/11 Rust、何もわからない... #10 Dockerfile の作成 ➢ 導入 ➢ 成果物の構成
➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
11 2023/10/11 Rust、何もわからない... #10 AWS へデプロイ ➢ 導入 ➢ 成果物の構成
➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
12 2023/10/11 Rust、何もわからない... #10 OpenTelemetry に必要なクレートを追加 ➢ 導入 ➢ 成果物の構成
➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ tracing 最強!
13 2023/10/11 Rust、何もわからない... #10 tracing の設定を行う関数を実装 ➢ 導入 ➢ 成果物の構成
➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ AWS X-Ray は ID が特殊
14 2023/10/11 Rust、何もわからない... #10 初期化処理とミドルウェアの追加 ➢ 導入 ➢ 成果物の構成 ➢
環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ 追加するのは2行
15 2023/10/11 Rust、何もわからない... #10 AWS Distro for OpenTelemetry を追加 ➢
導入 ➢ 成果物の構成 ➢ 環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ この2行を足すと ADOT が サイドカーで 動く!
16 2023/10/11 Rust、何もわからない... #10 デプロイして動作確認 ➢ 導入 ➢ 成果物の構成 ➢
環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ
17 2023/10/11 Rust、何もわからない... #10 クリーンアップ ➢ 導入 ➢ 成果物の構成 ➢
環境構築 ➢ ベースとなる API の作成 ➢ プロジェクトの作成 ➢ API サーバーの作成 ➢ Dockerfile の作成 ➢ AWS へのデプロイ ➢ 分散トレーシングの実現 ➢ 必要なクレートの追加 ➢ tracing の設定 ➢ main.rs の修正 ➢ manifest.yaml の修正 ➢ デプロイと動作確認 ➢ クリーンアップ 消し忘れると お金かかるよ!
18 2023/10/11 Rust、何もわからない... #10 宣伝
19 2023/10/11 Rust、何もわからない... #10 Rust.Tokyo 2023
20 2023/10/11 Rust、何もわからない... #10 Vue Fes Japan 2023
21 2023/10/11 Rust、何もわからない... #10 採用情報 エンジニア募集中! Rust 書けるかも
22 2023/10/11 Rust、何もわからない... #10 ありがとうございました 皆さんとお話したい 採用してます Xのフォローお願いします • 今日の発表について
• ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc…