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
All golangでデスクトップアプリからwebアプリにデータ連携させる
Search
pisa-kun
January 18, 2025
0
15
All golangでデスクトップアプリからwebアプリにデータ連携させる
pisa-kun
January 18, 2025
Tweet
Share
More Decks by pisa-kun
See All by pisa-kun
sre本読んだ感想
pisakun
0
310
githubのレポジトリから推しの変遷を見る
pisakun
1
70
vitestはじめるまで
pisakun
0
85
Google Cloudで最近開発した色々_アイマスハッカソン2024
pisakun
1
81
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Documentation Writing (for coders)
carmenintech
67
4.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Site-Speed That Sticks
csswizardry
3
310
The Pragmatic Product Professional
lauravandoore
32
6.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
11
900
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
All golangでデスクトップアプリからwebアプリ にデータ連携させるまで 2025年 1月 18日 ぴさ(x: @pisa40338570) Gopher's Gathering
1 2 3 自己紹介 やりたいことの経緯とアーキテクチャ アジェンダ goで動かしてみる
出身: 福岡県 就職してからの居住地: 大阪(新卒)->名古屋(転職1回目)->東京(今年・2回目) ぴさ@SREエンジニア/クラウドエンジニア 事業会社で府省庁向けのサービス開発しています 昨年3か月でGoogle Cloud全資格コンプリートしました 自己紹介 ビジネス向けPCのプリインソフト開発(C#)
PCのデータ収集基盤開発(AWS, Python, TS) Sier転職してPL・PM 現在: 府省庁向けサービス開発(GCP, Nextjs) SREっぽいこと(CICD, その他改善活動)
・Hello World的なサンプルアプリを作ってクラウド上で動作させる話です ・デスクトップアプリ -> put -> S3 <- read <-
Webアプリ みたいな話 ・結構簡単にデプロイとサービス連携できるんだね ・技術ワード: golang、aws、docker、app runner、WMI 今日やりたいこと・伝えたいこと
1.デスクトップアプリをGoで作成してデータをクラウドにアップロード 2.WebサーバーをGoで作成してDockerコンテナ化 3.IaCをGoで作成してDockerコンテナをクラウド上にデプロイ 4.Webサーバーが1のデータを読み込む(連携) 今日やりたいこと・なぜこの流れに?? 具体的に 1.WindowsアプリをGoで作成してデータをAmazon S3にアップロード 2.WebサーバーをGoで作成してDockerコンテナ化 3.AWSコンソールからApp
Runnerをデプロイ 4.WebサーバーがS3のデータを読み込む(連携) CDKでデプロイ予定でしたが実 装間に合わず~
今日やりたいこと・なぜこの流れに?? 1.WindowsアプリをGoで作成してデータをAmazon S3にアップロード 2.WebサーバーをGoで作成してDockerコンテナ化 3.AWSコンソールからApp Runnerをデプロイ 4.WebサーバーがS3のデータを読み込む(連携) モチベーション ・今後の業務でこういうことをやりそうなので予習 ・Winアプリもサーバーも
IaCも全部Goで書けるじゃん! -> マネージャー・・・Golangが書きたいです・・・ ・Cloud Runは仕事で使ってるけど、AWSのコンテナサービス触ってない -> Fargateは私には難しすぎました、じゃあApp Runner!
今日やりたいこと・簡易アーキテクチャ デスクトップアプリケーション クラウド put push read
Goで動かしてみる・Windowsアプリケーション編 1. aws-sdk-goやデータ取得するパッケー ジをgo getしてimportに記載する WMI(Windows Management Instrumentation)とは、 Windowsにおいて、システムについての情報を様々なソフトウェアか ら統一的な方法で取得・設定できるようにする仕様。
2. データを取得する 例ではWMIでバッテリー充電率を取得して る
Goで動かしてみる・Windowsアプリケーション編 3. ログファイルにデータを書き出す 今回は雑にtxtに書き込み 4. S3にファイルアップロード go run main.go でプログラムを実行する
Goで動かしてみる・Windowsアプリケーション編(おまけ) ログ取得系のアプリはサービス登録してOSに定期実行させましょう
Goで動かしてみる・Webサーバー編 Dockerfileを使ってwebサーバーが動作するように設定する みせられないよ! シンプルなWebサーバーのコード例 S3のバケットリストを取得して表示
Goで動かしてみる・App Runner デプロイ編 App Runner とは? ・スケーリングやネットワークなど意識せずに簡単にWebサービスをデプロイできるサービス ・ECS、Fargateに比べて制約はあるが、インフラ設定せずにデプロイ可能 余談) SREの集いでCloud
Run VS App Runner の投票でボロ負けしてました
Goで動かしてみる・App Runner デプロイ編 1. App Runnerのページから「 サービスの作成」を選択する
Goで動かしてみる・App Runner デプロイ編 2. コンテナイメージを選択する
Goで動かしてみる・App Runner デプロイ編 3. App RunnerがECRにアクセスするためのロールを設定する
Goで動かしてみる・App Runner デプロイ編 4. 作成とデプロイ! みせられないよ! App RunnerとS3も連携できている
tips・困ったこと 1. App Runnerが他サービスと通信する際のIAMロールをGUIから作れない ユースケースにApp Runnerが表示されないので、CLI経由でロール作成する必要あり jsonに信頼関係ポリシー記載 -> create role
-> roleにs3アクセスポリシー付与 -> App Runner にアタッチ
tips・困ったこと 2. GolangのCDK資料少なすぎる問題 本当はCDKでApp Runner実装したかったんです・・・ -> 時間足りなくて妥協でコンソール経由でデプロイしました。 普段、CDK触るときはtypescriptが多い -> goでCDKの資料があまり見つからず・・・
goでCDK使うプロダクト多いんすかね?
まとめ ・DesktopアプリのデータをS3に上げて、App Runner上のWebサーバーが取得 ・App Runnerのマネジメントコンソールデプロイは数クリックで爆速デプロイ ・terraform、AWS CDKでデプロイは今後の宿題 今後の展望 ・Cloud Run、App
Runnerの性能比較を実機でやってみる ・Hello Worldから更に拡充してみる
ご清聴ありがとうございました