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
AWS ハッカソン体験記~ゲーム開発で得られたAWSスキル紹介~
Search
toyo-da01
February 04, 2025
Technology
0
10
AWS ハッカソン体験記~ゲーム開発で得られたAWSスキル紹介~
AWS Jr.Champions登壇資料。AWSハッカソン体験記紹介。
toyo-da01
February 04, 2025
Tweet
Share
More Decks by toyo-da01
See All by toyo-da01
Amazon Connect コンタクトフローの大量移管?!
da01toyo
0
13
UTM (統合脅威管理; FortiGate) on AWSを構築するにはどんなネットワーク設定??
da01toyo
0
68
悪用厳禁! SQLインジェクションやってみた!
da01toyo
0
5
業務効率化したいのに時間がない??OSSとLambdaを用いたツールのスピード開発術
da01toyo
0
12
普通のやり方だとできない!?💦 Amazon Connect x Lambdaのレア?な連携のご紹介!
da01toyo
0
15
CI/CD ツール導入で達成した、開発と運用の協力関係強化とストレスフリーなリリースプロセスの実現に迫る!
da01toyo
0
10
CI / CDって具体的にどう動いている??
da01toyo
0
3
監視オペレータはもういらない?~Amazon Connectを用いたスペシャリスト自動手配システムの内製開発~
da01toyo
0
4
優良な技術サイトを「お気に入り」で終わらせないためのWebアプリケーション開発
da01toyo
0
3
Other Decks in Technology
See All in Technology
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
270
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.1k
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
190
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
110
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
140
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
430
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
270
なぜSaaSがMCPサーバーをサービス提供するのか?
sansantech
PRO
8
2.6k
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
470
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
210
kubellが考える戦略と実行を繋ぐ活用ファーストのデータ分析基盤
kubell_hr
0
150
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
300
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
It's Worth the Effort
3n
187
28k
Raft: Consensus for Rubyists
vanstee
140
7.1k
How to train your dragon (web standard)
notwaldorf
96
6.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Building an army of robots
kneath
306
46k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Transcript
/ AWS ハッカソン体験記 ~ゲーム開発で得られたAWSスキル紹介~ 2025/02/04 Jr. Champions第7回目勉強会 豊岡大地
/ /10 ―― 今回の内容 ―― 2 ハッカソンについて • devpost.com
AWS Game Builder Challenge ✓ 概要 Amazon Q Developer・生成AIのアシストを用いて、開発速度を向上さ せて、AWSサービスでゲーム開発をしてください ※1位の賞金は、$25,000!※ ✓ 提出物 ・Webホスティングをしていればゲームサイト ・コードレポジトリ(パブリック) ・生成AIをどのように用いたか [Optional] 動画、AWSフィードバック、AWS re:Postへのブログ投稿 AWSからAzure, GCP。 公式~有志開催まで諸々揃ってました!
/ /10 ―― 今回の提出した内容 ―― 3 Python Game Library
(pyxel) ✓ 概要 WAFの気持ちになって、悪意のあるパケットをさばくシュー ティングゲームです笑 (”Q”を自分で押さないと終わらないクソゲーです笑) ✓ 提出物(※皆さん、アクセスできます!) ・DevPost https://devpost.com/software/packet-shooting-game ・サイト https://gameday.pmda01.com/index.html ・コードレポジトリ(パブリック) https://gitlab.com/Toyo-Daichi/hackathon_aws_gameBuilderChallenge ※GitLab Duo(with Amazon Q)を使いたかったものの、まだ SaaS版では使えませんでした。 ・生成AIをどのように用いたか Amazon Nova Canvasを用いて、キャラクター作成を模索 Amazon Qに質問をすることで、トラブルシューティング こんな感じで作れます! 16x16 or 32x32
/ /10 ―― どんな感じで進めたか? ―― 4 スケジュール • 公開日:2024/11/02
• 提出日:2025/01/15 提出日 完成度 100% 0% 日程 12/18~20 12/23~28 12/30~1/3 1/6~10 1/13~1/15 1/15~1/17 Amazon Novaと格闘 締め切りドリブン発動 Pythonのライブラリが Webホスティングだと 限定されてる レコード登録だけして、 アップデートを続ける裏技 アーキ① アーキ② アーキ③ アーキ④ 本格始動は、 色々あって2024/12/18から実施
/ /10 ―― アーキテクチャの遷移(1/4) ―― 5 Pub (255.0/24) AWS Cloud
ap-northeast-1 VPC (192.168.0.0/16) AZ-1 AZ-3 Aurora servreless Pub (254.0/24) • Webホスティングしない • DBがパブリック ⇒いけてないので、 やっぱりWebホスティングしよう!
/ /10 ―― アーキテクチャの遷移(2/4) ―― 6 Pri (101.0/24) AWS Cloud
ap-northeast-1 VPC (192.168.0.0/16) Pub (192.168.255.0/24) AZ-1 AZ-3 Pub (192.168.253.0/24) Pub (192.168.254.0/24) Fargate Pri (192.168.1.0/24) Pri (192.168.2.0/24) Ex Application Load Balancer NAT Gateway Elastic Network Interface Elastic Network Interface ECS Task ECS Task Aurora servreless ECR Image scanning Pri (102.0/24) ここで突っかかります、、
/ /10 ―― アーキテクチャの遷移(2/4) ―― 6 Pri (101.0/24) AWS Cloud
ap-northeast-1 VPC (192.168.0.0/16) Pub (192.168.255.0/24) AZ-1 AZ-3 Pub (192.168.253.0/24) Pub (192.168.254.0/24) Fargate Pri (192.168.1.0/24) Pri (192.168.2.0/24) Ex Application Load Balancer NAT Gateway Elastic Network Interface Elastic Network Interface ECS Task ECS Task Aurora servreless ECR Image scanning Pri (102.0/24) 最近のPythonは、 HTMLタグでも動かすことができます! Pyodideはブラウザ向けのPythonランタイムで、 Pyxelもウェブホスティング機能もこの方法で提供。 ※関連ワード ”WebAssembly” <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js"></script> </head> <body> <script> async function main() { let pyodide = await loadPyodide(); const code = ` from datetime import datetime now = datetime.now() now.strftime("ただいま%Y年%m月%d日 %H時%M分%S秒です") `; window.alert(pyodide.runPython(code)); }; main(); </script> </body> </html> ここで突っかかります、、 便利な一方、ライブラリが限定
/ /10 ―― アーキテクチャの遷移(3/4) ―― 7 Pri (3.0/24) Pri (101.0/24)
AWS Cloud ap-northeast-1 VPC (192.168.0.0/16) Pub (192.168.255.0/24) AZ-1 AZ-3 Pub (192.168.253.0/24) Pub (192.168.254.0/24) Fargate(Frontend) Pri (192.168.1.0/24) Pri (192.168.2.0/24) Ex Application Load Balancer NAT Gateway Elastic Network Interface Elastic Network Interface ECS Task ECS Task Aurora servreless ECR Image scanning Backend Pri (102.0/24) Pri (4.0/24) In Application Load Balancer Pri (5.0/24) Pri (6.0/24) ここで突っかかります、、
/ /10 ―― アーキテクチャの遷移(3/4) ―― 7 Pri (3.0/24) Pri (101.0/24)
AWS Cloud ap-northeast-1 VPC (192.168.0.0/16) Pub (192.168.255.0/24) AZ-1 AZ-3 Pub (192.168.253.0/24) Pub (192.168.254.0/24) Fargate(Frontend) Pri (192.168.1.0/24) Pri (192.168.2.0/24) Ex Application Load Balancer NAT Gateway Elastic Network Interface Elastic Network Interface ECS Task ECS Task Aurora servreless ECR Image scanning Backend Pri (102.0/24) Pri (4.0/24) In Application Load Balancer Pri (5.0/24) Pri (6.0/24) ここで突っかかります、、 ECSの異なるサービス間で通信をする場合は、 名前解決を意識する必要があります。 関連ワード:CloudMap
/ /10 ―― アーキテクチャの遷移(4/4) ―― 8 Pri (101.0/24) AWS Cloud
VPC (192.168.0.0/16) Pub (192.168.255.0/24) AZ-1 AZ-3 Pub (192.168.253.0/24) Pub (192.168.254.0/24) Ex Application Load Balancer NAT Gateway Elastic Network Interface Elastic Network Interface Aurora servreless ECR Image scanning Backend Pri (102.0/24) Pri (1.0/24) Pri (2.0/24) HTTPS ap-northeast-1 HTTPS • フロントエンドでは、pyxelをパッケージ化 してしまえば静的ファイルになったのでS3 ホスティングにできた!
/ /10 ―― 細かいTips集 ―― 9 1. Amazon Aurora Serverless
v2でゼロキャパシティ―が提供されました! ⇒バージョンによっては、最小キャパシティーが0.5のままなので注意が必要です。 (最初のデフォルトパラメータのバージョンではゼロキャパシティーは使えませんでした) 2. Amazon Nova Canpassはすごいですが、 細かい条件下*だと、それなりにスクリプト工夫してみも難しかったです *今回だと16x16 or 32x32 px)で描画してほしかった 明らかに情報量が多い、、
/ /10 ―― 今回のハッカソンを得られたこと・最後に ―― • 普段業務で使わないサービスを積極的にアーキテクチャに採用できて理解度を深められた点 • 普段業務で関りが少ないメンバーと交流ができる点+各々技術スタックを共有できた点 -
開発環境整備で気づいたTips ✓ メンバー毎のライブラリ整備が楽なように、開発環境EC2にSSH接続で潜って共同開発を検討 ⇒今回はアプリケーション描画が必要なもので、X11で転送する形になり、遅すぎた 「ssh x11 forwarding 遅い」でたくさんヒットしたが、暗号化の設定代えても改善なし ✓ Pythonでもpoetryのパッケージマネージャーがあり、JS/TSみたいにpackage.jsonの感じで使えた! AWSスキルの向上にはある程度の締め切りドリブンが必要だと思うので、ぜひAWS周りのハッカソンに 挑戦してみてはいかがでしょうか?! チームメンバー足りない場合は、ぜひ声かけてください!笑 10