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
Visualization
eitanlees
152
17k
Believing is Seeing
oripsolob
1
150
The Pragmatic Product Professional
lauravandoore
37
7.3k
The browser strikes back
jonoalderson
0
1.2k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
Abbi's Birthday
coloredviolet
2
8.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
Technical Leadership for Architectural Decision Making
baasie
3
410
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…