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
26
0
Share
All golangでデスクトップアプリからwebアプリにデータ連携させる
pisa-kun
January 18, 2025
More Decks by pisa-kun
See All by pisa-kun
sre本読んだ感想
pisakun
0
530
githubのレポジトリから推しの変遷を見る
pisakun
1
140
vitestはじめるまで
pisakun
0
140
Google Cloudで最近開発した色々_アイマスハッカソン2024
pisakun
1
170
Featured
See All Featured
BBQ
matthewcrist
89
10k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Writing Fast Ruby
sferik
630
63k
Designing for Performance
lara
611
70k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
Raft: Consensus for Rubyists
vanstee
141
7.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
The Cult of Friendly URLs
andyhume
79
6.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
810
sira's awesome portfolio website redesign presentation
elsirapls
0
220
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
340
Making the Leap to Tech Lead
cromwellryan
135
9.8k
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から更に拡充してみる
ご清聴ありがとうございました