Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSを使って日々のゲームライフを充実させた話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for mmtakumma mmtakumma
January 17, 2025
220

 AWSを使って日々のゲームライフを充実させた話

Avatar for mmtakumma

mmtakumma

January 17, 2025

Transcript

  1. ͓࿩͢͠Δ಺༰  • "84Λ࢖ͬͯݸਓͰήʔϜαʔόΛޮ཰తʹߏஙɾӡ༻ͨ͠࿩Λ͠·͢ • ήʔϜʹΑͬͯ͸༡Ϳ؀ڥΛϢʔβଆͰ༻ҙ͢Δඞཁ͕͋Δ • .JOFDSBGU 1BMXPSME౳ •

    αʔό༻ҙͷͨΊطଘαʔϏεΛ࢖༻͢Δखஈ΋͕͋ͬͨɺ 
 ֶश໨తͰ"84ͰͷߏஙʹνϟϨϯδ ➡ "84Λ࢖͏લͷঢ়گͱ"84Λ࢖ͬͯͲͷΑ͏ʹ՝୊ղܾ͔ͨ͠આ໌͠·͢
  2. ࣗ୐1$ͰήʔϜαʔόΛϗετ͢Δࡍͷ՝୊  • ؅ཧऀ΁ͷӡ༻ෛՙͷภΓ • αʔό؅ཧऀ͕ෆࡏ࣌ɺଞͷϝϯόʔ͕ήʔϜͰ༡΂ͳ͍ • ߏங࣌ͷखಈૢ࡞ͷଟ͞ • αʔόߏங࣌ͷઃఆΛຖճશͯख࡞ۀͰ࣮ࢪ

    • ύϑΥʔϚϯε໰୊ • Քಇதͷ1$͕ఀి΍ճઢෆௐͰμ΢ϯ͢ΔϦεΫ • ύϑΥʔϚϯεෆ଍ʢ$16ɾ3".ͷ੍ݶʣ • ίετ໰୊ • ෆཁͳՔಇ͕࣌ؒ૿͑ɺిྗίετ͕͔͞Ή
  3. Ϋϥ΢υΛ࢖ͬͯղܾ  • ߏங೉қ౓Λ௿ݮ • *B$ʢ$MPVE'PSNBUJPOʣͰߏ੒ΛίʔυԽ͠࠶ར༻Մೳʹ • ӡ༻ෛՙΛܰݮ • %JTDPSE͔Β୭Ͱ΋αʔόΛىಈɾఀࢭՄೳʹ

    • ίετ௿ݮΛ࣮ݱ • &WFOU#SJEHFͰ&$ࣗಈఀࢭ͠ແବͳՔಇΛ๷͙ AWS Cloud User Region EventBridge lambda (受信用) lambda (停止用) lambda (起動用) lambda (ステータス確認用 Discord Bot CloudFormation AWS Cloud User Region EventBridge lambda (受信用) ( ( (ステ Discord Bot CloudFormation
  4. VPC AWS Cloud User Region EventBridge lambda (受信用) lambda (停止用)

    lambda (起動用) lambda (ステータス確認用) Public subnet EC2 Discord Bot CloudFormation ࡞੒ͨ͠ߏ੒  • ࣮૷ͨ͠ػೳ • ߏ੒ͷίʔυԽ • %JTDPSE࿈ܞ • αʔόӡ༻ࣗಈԽ
  5. ߏஙޮ཰Խ΁ͷΞϓϩʔν  • $MPVE'PSNBUJPO׆༻ • ࠶ར༻͢Δ͜ͱΛߟྀ͠ɺͭ؍఺ͰςϯϓϨʔτ෼ׂ • ήʔϜαʔό༻ • %JTDPSE࿈ܞʢ

    ࣗಈఀࢭʣ༻ • ϢʔβσʔλͰ&$ͷࣗಈઃఆ • ήʔϜΞϓϦέʔγϣϯͷΠϯετʔϧ • ήʔϜΞϓϦέʔγϣϯͷىಈࣗಈԽ • &$ىಈޙ͙͢ʹήʔϜͰ༡΂ΔΑ͏ʹ CloudFormation Templete (ゲームサーバ用) Templete (Discord連携用) Stack#1 Stack#2 VPC EC2 IAM Lambda EventBridge 管理 管理 "Fn::Base64": !Sub | #!/bin/bash # Create pal user and directories adduser pal mkdir -p /opt/pal/Steam/installed chown -R pal:pal /opt/pal # Install dependencies for SteamCMD yum install -y glibc.i686 libstdc++.i686 # Install SteamCMD cd /opt/pal/Steam curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - # Set correct permissions chmod +x /opt/pal/Steam/steamcmd.sh chmod +x /opt/pal/Steam/linux32/steamcmd chown -R pal:pal /opt/pal/Steam echo "SteamCMD installation and permission setup completed." ɹɹɹɹɹɹ~ লུɹʙ # Enable and start the Palworld server service systemctl daemon-reload systemctl enable palworld-server.service systemctl start palworld-server.service echo "Palworld server service is started and enabled." echo "Palworld server setup completed." CloudFormation ete ーバ用) ete 連携用) Stack#1 Stack#2 VPC EC2 IAM Lambda EventBridge 管理 管理 ࡞੒ͨ͠ϢʔβσʔλʢҰ෦ʣ ϢʔβσʔλͰࣗಈߏங
  6. lambda (受信用) lambda (停止用) lambda (起動用) lambda (ステータス確認用) EC2 関数URL

    Commnd送信 Discord Bot User EC2の情報送信 応答送信 EventBridge ӡ༻ෛՙܰݮ΁ͷΞϓϩʔν  • %JTDPSEͱͷ࿈ܞ • %JTDPSE#PU͕ίϚϯυΛड͚औΓɺ-BNCEBΛτϦΨʔ • -BNCEB͔Β&$Λૢ࡞ • εςʔλε֬ೝ༻ήʔϜαʔόʢ&$ʣՔಇঢ়گऔಘ • ىಈ༻ήʔϜαʔόىಈ • ఀࢭ༻ήʔϜαʔόఀࢭ • &WFOU#SJEHFʹΑΔαʔόఀࢭࣗಈԽ • ໷ؒʹࣗಈఀࢭΛ࣮ࢪ • ຖ೔".ʹఀࢭ༻-BNCBΛτϦΨʔ
  7. ·ͱΊ  • ಘΒΕͨ͜ͱ • αʔό؅ཧऀͷෛՙܰݮ • αʔό؅ཧऀෆࡏͰ΋αʔόىಈఀࢭ͕Մೳʹ • ผͷήʔϜͰ༡Ϳ৔߹ͷαʔόߏஙෛՙܰݮ

    • .JOFDSBGU౳ͷผͷήʔϜͰ༡Ϳࡍʹ΋ࠓճͷߏ੒ΛҰ෦ྲྀ༻Ͱ͖Δ • "84εΩϧͷ֫ಘ • ۀ຿Ͱ࢖ͬͨ͜ͱͷͳ͍αʔϏε΍ػೳʹ͍ͭͯ஌ݟΛಘΒΕͨ