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
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
All golangでデスクトップアプリからwebアプリにデータ連携させる
pisa-kun
January 18, 2025
More Decks by pisa-kun
See All by pisa-kun
sre本読んだ感想
pisakun
0
570
githubのレポジトリから推しの変遷を見る
pisakun
1
160
vitestはじめるまで
pisakun
0
150
Google Cloudで最近開発した色々_アイマスハッカソン2024
pisakun
1
200
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
550
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
260
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
How STYLIGHT went responsive
nonsquared
100
6.3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Into the Great Unknown - MozCon
thekraken
41
2.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
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から更に拡充してみる
ご清聴ありがとうございました