GameLift์ API Gateway, Lambda, SQS, RDS๋ฅผ ํตํด Session์ ๋ง๋ค๊ณ ์ ์ฅํ์ฌ ๊ฐ์, ๋ฐ์, ๋ณด ๊ฒ์์ ์งํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด๋ด ๋๋ค.
GameLift์ ๊ธฐ๋ณธ์ ์ธ Build, Fleet ์์ฑ ๋ฐ ๊ตฌ์กฐ ์ดํด.
GameLift ๋ Session ๊ฒ์์ ํนํ๋ ์๋น์ค ์ ๋๋ค. ์์๊ณผ ๋์ด ๋ช ํํ Session ํ ๊ฒ์์ FleetIQ๋ฅผ ์ด์ฉํ์ฌ Spot ์ธ์คํด์ค๋ฅผ ํ์ฉํ๊ณ ๋น์ฉ์ ์ ๊ฐํฉ๋๋ค.
๋ํ Session ํ ๊ฒ์ ์๋ฒ์ ์์ฌ์ด Auto-scaling ๋ฐ Matchmaking์ ์ง์ํ๊ณ ์์ต๋๋ค.
์ฌ๋ฌ ๋ฒ์ ์ Unity๋ฅผ ์ค์นํ๊ณ ๊ด๋ฆฌํ ์ ์๋ Unity Hub๋ฅผ ์ค์นํฉ๋๋ค.
Unity Hub๋ฅผ ์คํํ ํ ์ผ์ชฝ ์ค์น ํญ์ผ๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ์์ ์ฌ์ฉํ 2020.1.11f1 ๋ฒ์ ์ ์ค์นํฉ๋๋ค.
์ํ๋ ๋ฒ์ ์ด ๋ชฉ๋ก์ ์๋ค๋ฉด Unity ๋ค์ด๋ก๋ ์์นด์ด๋ธ๋ก ์ด๋ํฉ๋๋ค.
์ํ๋ ๋ฒ์ ์ ์ฐพ์ต๋๋ค.
Unity Hub ๋ฒํผ์ ๋๋ฅด์๋ฉด ์ค์น๊ฐ ์งํ๋ฉ๋๋ค.
"Unity Hub๋ฅผ ์ฌ์๊ฒ ์ต๋๊น?" ๋ผ๋ ํ์ ์ด ์ด๋ฆฌ์๋ฉด Unity Hub ์ด๊ธฐ ๋ฒํผ์ ๋๋ฅด์๋ฉด ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Android Build Support์ Windows Build Support(IL2CPP)๊ฐ ์ ํ ๋์ด ์์ต๋๋ค.(Windows ๊ธฐ์ค), ์ถ๊ฐ๋ก iOS Build Support ๋ฑ์ ์ ํ ํ์ค ์ ์์ต๋๋ค. ๋ํ Visual Studio Community 2019 ์ค์น ๋ํ ๊ธฐ๋ณธ ์ ํ๋์ด ์์ต๋๋ค. ์์ผ์๋ค๋ฉด ํจ๊ป INSTALL ํ์๊ณ ์ค์น๋์ด ์์ผ์๋ค๋ฉด ์ฒดํฌ ํด์ ํ์๋ฉด ๋ฉ๋๋ค.
Visual Studio 2019๋ฅผ ์คํํ๊ณ AWS Toolkit for Visual Studio ๋ฅผ ์ค์นํฉ๋๋ค.
ํ๋ก์ ํธ : https://github.com/mzcgamejam/megajam_sample_2022/tree/main/ctc-game-server
ํ๋ก์ ํธ : https://github.com/mzcgamejam/megajam_sample_2022/tree/main/ctc-game-client
VPC ๋์๋ณด๋๋ก ์ด๋ํ์ฌ VPC ์์ฑ์ ์๋์ ๊ฐ์ด ์งํํฉ๋๋ค.
2๊ฐ์ ํผ๋ธ๋ฆญ ์๋ธ๋ท, 2๊ฐ์ ํ๋ผ์ด๋น ์๋ธ๋ท ์์ฑ์ ์๋์ ๊ฐ์ด ์งํํฉ๋๋ค.
Internet Gateway๋ฅผ ์์ฑํ๊ณ VPC์ ์ฐ๊ฒฐํ๋ ์์ ์ ์งํํฉ๋๋ค. VPC ๋์๋ณด๋์์ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ ํด๋ฆญ ํ, ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ์์ฑ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ VPC์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ค์์ผ๋ก ์์ฑํ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ VPC์ ์ฐ๊ฒฐํ๋ ์์ ์ ์งํํฉ๋๋ค.
mzc-game-ig๋ฅผ ์ ํ ํ, ์์ ํญ์ ํ์ฅํ์ฌ VPC์ ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
VPC ์ฐ๊ฒฐ ์ค์ ์ฐฝ์์ ์์ฑํ mzc-game-vpc๋ฅผ ์ ํ ํ, ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ์ฐ๊ฒฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๋ผ์ฐํ ํ ์ด๋ธ ์์ฑ ๋ฐ ์ค์ ์ ์งํํฉ๋๋ค.
๋ผ์ฐํ ํ ์ด๋ธ ์์ฑ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๋จผ์ ํผ๋ธ๋ฆญ ๋ผ์ฐํ ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
ํ๋ผ์ด๋น ๋ผ์ฐํ ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
์ด ํ ๋ง๋ค ์ญํ ์์ ์ฌ์ฉํ ์ ์ฑ ์ GameLift ์ ์ฑ ์ ์์ฑ ํ๊ฒ ์ต๋๋ค.
์๋น์ค์์ GameLift๋ฅผ ์ ํํฉ๋๋ค.
์์ ์์ ๋ชจ๋ GameLift ์์ ์ ์ฒดํฌํฉ๋๋ค.
๋ฆฌ์์ค์์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ ํํฉ๋๋ค.
ํ๋ก์ ํธ์์ ์ฌ์ฉํ Lambda๊ฐ 2๊ฐ์ง ํํ๊ฐ ์์ต๋๋ค. GameLift์ Networkํ๋ Lambda ํจ์์ RDS ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ Lambda ํจ์๊ฐ ์์ต๋๋ค. 2๊ฐ์ง Lambda ํจ์์์ ์ฌ์ฉํ ์ญํ ์ ๋๋ ์ ์์ผ๋ ์ด๋ฒ ํ๋ก์ ํธ์์๋ ํตํฉ ์ญํ ์ ๋ง๋ค๊ฒ ์ต๋๋ค.
์๋์ ์ ์ฑ ๋ค์ ์ฐพ์์ ์ฒดํฌ ํ ํ ๋ค์:ํ๊ทธ๋ฅผ ๋๋ฆ ๋๋ค.
AmazonRDSDataFullAccess
AWSLambdaSQSQueueExecutionRole
AWSLambdaBasicExecutionRole
AWSLambdaVPCAccessExecutionRole
GameLiftFullAccess
ํ๊ทธ๋ฅผ ์ค์ ํ๊ณ ๋ค์:๊ฒํ ๋ฅผ ๋๋ฆ ๋๋ค.
์ญํ ์ด๋ฆ์ ์ค์ ํ ์ญํ ๋ง๋ค๊ธฐ๋ฅผ ๋๋ฆ ๋๋ค.
์์ฑ๋ ์ญํ mzc-game-gamelift-fleet-role์ ์ญํ ARN ์ ๋ฉ๋ชจํฉ๋๋ค.
์๋ธ๋ท ๊ทธ๋ฃน์ ์์ฑํฉ๋๋ค.
์๋์ ๊ฐ์ด ์ค์ ํ ์์ฑ์ ๋๋ฆ ๋๋ค.
์๋์ ์๋ ์์ ๋ด์ฉ์ ์ ๋ถ default ๋ก ์งํํ์์ต๋๋ค.
DB ๋ง์คํฐ ์ํธ๋ Admin1!! ๋ก ์ค์ ํ์ต๋๋ค.
์คํ ๋ฆฌ์ง ์๋ ์กฐ์ ์ ๋นํ์ฑํ ํฉ๋๋ค.
์์ฑ์ด ์๋ฃ๋๋ฉด ์๋ํฌ์ธํธ๋ฅผ ํ์ธํฉ๋๋ค.
DB, Table ์์ฑ์ Cloud9 ์์์ ์งํํ๊ฒ ์ต๋๋ค.
Create environment ๋ฅผ ๋๋ฌ ์์ฑํฉ๋๋ค.
์์ฑ๋ Cloud9์์ DB ์๋ํฌ์ธํธ๋ก DB์ ์ ์ํฉ๋๋ค.
mysql -h mzc-game-rds.cqoanobel0pg.ap-northeast-2.rds.amazonaws.com -u admin -p
Database๋ฅผ ์์ฑํฉ๋๋ค.
create database accounts;
์๋ฒ ํ๋ก์ ํธ์ ์๋ ํ ์ด๋ธ ์์ฑ๋ฌธ์ ๋ณต์ฌํด์ ํ ์ด๋ธ์ ๊ฐ์ ธ์ต๋๋ค.
์๋ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ ๋ ๋ฉ๋๋ค.
๋ถ์ฌ ๋ฃ์ด ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
(ctc-game-server\DBSchema\accounts\V1__create_table_users.sql)
use accounts;
CREATE TABLE `users` (
`userid` INT(11) NOT NULL AUTO_INCREMENT,
`nickname` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
`win` INT(11) NULL DEFAULT NULL,
`loss` INT(11) NULL DEFAULT NULL,
`draw` INT(11) NULL DEFAULT NULL,
`point` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`userid`) USING BTREE,
UNIQUE INDEX `UX_users_nickname` (`nickname`) USING BTREE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
AccountJoin ์์ฑ
URL ํ์ธ
๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก Login๋ ์์ฑํฉ๋๋ค.
๋ฆฌ์์ค ์์ฑ ๋ฆฌ์์ค ์ด๋ฆ : Login ๋ฆฌ์์ค ๊ฒฝ๋ก : Login API Gateway CORS ํ์ฑํ ์ฒดํฌ ๋ฉ์๋ ์์ฑ ANY Lambda ํจ์ : Login
API ๋ฐฐํฌ
๋ฐฐํฌ ์คํ ์ด์ง : test
Function Name : BattleResult
Assembly : BattleResult
Type : BattleResult.Function
Method : FunctionHandler
Role Name, VPC Subnets, Security Groups : AccountLogin๊ณผ ๋๊ฐ์ด ์ค์
๋๋จธ์ง๋ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ๋๊ธฐ์ด ์์ฑ ํฉ๋๋ค.
SQS URL ์ ํ์ธํฉ๋๋ค.
GameLift์ ๋น๋๋ฅผ ๋ฐฐํฌํ๋ ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ ์ฌ์ฉ์ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
(Windows ๊ธฐ์ค)
๊ณ ๊ธ ์์คํ ์ค์ ๋ณด๊ธฐ > ํ๊ฒฝ ๋ณ์ > ์๋ก ๋ง๋ค๊ธฐ(์ฌ์ฉ์ ๋ณ์)
์๋ฒ ๋ฐฐํฌ ์ ํ๋ ์ฝ๋ฉ ๋ ๋ถ๋ถ์ ์์ ํด์ผ ํฉ๋๋ค.
\ctc-game-server\BattleServer\Game\Room\Room.cs
์ ๊ฒฝ๋ก์ ํ์ผ์์ BattleResultSendToSQS ํจ์์์ ์์ ํฉ๋๋ค.
public void BattleResultSendToSQS(PlayerType winPlayer)
{
var sqsConfig = new AmazonSQSConfig();
sqsConfig.ServiceURL = "https://sqs.ap-northeast-2.amazonaws.com/831150897155/mzc-game-sqs";
sqsConfig.RegionEndpoint = RegionEndpoint.APNortheast2;
var credential = new BasicAWSCredentials("AccessKey", "SecretKey");
var sqsClient = new AmazonSQSClient(credential, sqsConfig);
SQSClientSendMessage(sqsClient, PlayerType.Player1, winPlayer);
SQSClientSendMessage(sqsClient, PlayerType.Player2, winPlayer);
}
์๋ ๋ถ๋ถ์ SQS URL๊ณผ ์์ ์ AccessKey, SecretKey๋ก ์์ ํด์ผํฉ๋๋ค.
SQSClientSendMessage ํจ์์์ ์์ ํฉ๋๋ค.
private void SQSClientSendMessage(AmazonSQSClient sqsClient, PlayerType player, PlayerType winPlayer)
{
sqsClient.SendMessageAsync(new SendMessageRequest(
"https://sqs.ap-northeast-2.amazonaws.com/831150897155/mzc-game-sqs",
JsonConvert.SerializeObject(new CommonProtocol.SqsBattleResult
{
UserId = _players[player].Session.UserId,
WinType = GetWinType(player, winPlayer)
})));
}
์๋ ๋ถ๋ถ์์ SQS URL์ ์์ ํฉ๋๋ค.
URL๊ณผ Credentials ์ฐธ์กฐ ๋ถ๋ถ์ ๋ค๋ฅธ ๋ฐฉ์(Config, ํ๊ฒฝ ๋ณ์ ์ฐธ์กฐ ๋ฑ)์ผ๋ก ๊ฐ์ ํด์ผ ํฉ๋๋ค.
๋น๋๋ฅผ ์งํํฉ๋๋ค.
Step 8.4. GameLift์ ์ ๋ก๋ํ ๋์ ํ์ผ๋ค์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ์์กด์ฑ ํ์ผ ๋ณต์ฌ
์๋ ๊ฒฝ๋ก 2๊ฐ์ ํ์ผ์
\ctc-game-server\BattleServer\Dependency\install.sh
\ctc-game-server\BattleServer\Dependency\NDP472-KB4054530-x86-x64-AllOS-ENU.exe
์๋์ ๊ฒฝ๋ก์ ๋ณต์ฌํฉ๋๋ค.
\ctc-game-server\BattleServer\bin\Debug
GameLift์ ๋น๋๋ฅผ ์ ๋ก๋ ํฉ๋๋ค.
\ctc-game-server\scripts\GameLift\01-GameLift-UploadBuild.sh ๋ฅผ ์คํํฉ๋๋ค.
์คํ ํ ๋์จ Build ID ๋ฅผ ๋ฉ๋ชจํฉ๋๋ค.
ํ๋ฆฟ ์์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํฉ๋๋ค.
(\ctc-game-server\scripts\GameLift\02-GameLift-CreateFleet.sh)
Build ID๋ฅผ ์์ ํฉ๋๋ค.
์์์ ์์ฑํ ์ญํ mzc-game-gamelift-fleet-role์ ์ญํ ARN ์ ์์ ํฉ๋๋ค.
\ctc-game-server\scripts\GameLift\02-GameLift-CreateFleet.sh ๋ฅผ ์คํํฉ๋๋ค.
GameLift ๋์๋ณด๋๋ก ์ด๋ํ๋ฉด ์ ๋ก๋ํ ๋น๋์ ์์ฑํ ํ๋ฆฟ์ด ๋ณด์ ๋๋ค.
ํ๋ฆฟ ์์ฑ ์๋ฃ๊น์ง ์ฝ 20๋ถ์ด ์์๋ฉ๋๋ค.
ํ๋ฆฟ ์์ฑ๊ณผ์ ์์ GameLift ์ ํต์ ํ๋ ํ์ ํตํฉ ์ฝ๋๊ฐ ์์ต๋๋ค. GameLift๋ ํ๋ฆฟ ์ธ์คํด์ค์ ์๋ฒ ํ๋ก์ธ์ค์ ํ ์คํธ ํต์ ์ ํตํด์ ํตํฉ ์ฝ๋๋ฅผ ์ ๊ตฌํ ํ๋์ง ๊ฒ์ฆํฉ๋๋ค. ํด๋น ๋ด์ฉ์ ํต๊ณผํ์ง ๋ชปํ๋ฉด ํ์ฑ(Activate) ์ํ๋ก ๊ฐ์ง ๋ชปํฉ๋๋ค.
์ ์์ ์ผ๋ก ์๋ํ๋ ์ฝ๋์์๋ ํ์ฑ ์ํ๋ก ๊ฐ์ง ๋ชปํ ๋๊ฐ ์์ต๋๋ค.
๋ง์ฝ ํ์ฑํํ๋ ์ค(Activating) ์ํ๊ฐ ์ค๋ ์ง์๋๋ฉด ๋ค์ ํ๋ฆฟ ์์ฑ์ ํฉ๋๋ค.
ํ๋ฆฟ์ด ์ ์์ ์ผ๋ก ํ์ฑํ ๋๋ฉด ์๋์ ๊ฐ์ด ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ฒคํธ ํญ์์ ํ๋ฆฟ ์์ฑ ๊ณผ์ ์ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ฆฟ ID๋ฅผ ๋ฉ๋ชจํฉ๋๋ค.
์ด์ ํ๋ฆฟ๊ณผ ํต์ ํ ์ ์๋ ์ํ๊ฐ ๋์์ต๋๋ค.
ํด๋น ํจ์๋ค์ ํ๋ฆฟ ID๊ฐ ํ์ํ๋ฏ๋ก ํ๋ฆฟ ์์ฑ ์๋ ํ ID๊ฐ ๋์ค๋ฉด ์์ฑ์ ์งํ ํ ์ ์์ต๋๋ค.
CreateGame ๋๋ค ํจ์๋ฅผ ์ ๋ก๋ ํฉ๋๋ค.
CreatePlayer, SearchGame ๋๋ค ํจ์๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ก๋ ํฉ๋๋ค.
CreatePlayer
Function Name : CreateGame
Assembly : CreatePlayer
Type : CreatePlayer.Function
Method : FunctionHandler
Role Name, VPC Subnets, Security Groups : CreateGame๊ณผ ๋๊ฐ์ด ์ค์
Variable : GAMELIFT_FLEET_ID
Value : ํ๋ฆฟ ID (fleet-0f9b2bb2-53bc-424a-8682-0xxxxxxxxxxxx)
SearchGame
Function Name : SearchGame
Assembly : SearchGame
Type : SearchGame.Function
Method : FunctionHandler
Role Name, VPC Subnets, Security Groups : CreateGame๊ณผ ๋๊ฐ์ด ์ค์
Variable : GAMELIFT_FLEET_ID
Value : ํ๋ฆฟ ID (fleet-0f9b2bb2-53bc-424a-8682-0xxxxxxxxxxxx)
์์์ AccountJoin, Login ์์ฑํ๋๊ฒ ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก CreateGame, CreatePlayer, SearchGame ๋ฆฌ์์ค๋ฅผ ์์ฑํฉ๋๋ค.
๋ฆฌ์์ค ์์ฑ ๋ฆฌ์์ค ์ด๋ฆ : CreateGame ๋ฆฌ์์ค ๊ฒฝ๋ก : CreateGame API Gateway CORS ํ์ฑํ ์ฒดํฌ
๋ฉ์๋ ์์ฑ ANY Lambda ํจ์ : CreateGame
API ๋ฐฐํฌ
๋ฐฐํฌ ์คํ ์ด์ง : test
๋ฆฌ์์ค ์์ฑ ๋ฆฌ์์ค ์ด๋ฆ : CreatePlayer ๋ฆฌ์์ค ๊ฒฝ๋ก : CreatePlayer API Gateway CORS ํ์ฑํ ์ฒดํฌ
๋ฉ์๋ ์์ฑ ANY Lambda ํจ์ : CreatePlayer
API ๋ฐฐํฌ
๋ฐฐํฌ ์คํ ์ด์ง : test
๊ฒฝ๋ก : \ctc-game-client\Assets\Resources\Dev\Connect.json
Address ๋ถ๋ถ์ API Gateway URL ํ์ธํ ๊ฒฝ๋ก๋ก ์์ ํฉ๋๋ค.
{
"GameServer": {
"Address": "https://a9j3pkj9j9.execute-api.ap-northeast-2.amazonaws.com/test/"
}
}
Build ๋ฐ์ด๋๋ฆฌ์ ์ข ์ ํ์ผ์ ์์ฑ๋ ํด๋๋ฅผ ์์ฑ ํ ์์ ๊ฒฝ๋ก์์ ํด๋ ์ ํ์ ๋๋ฆ ๋๋ค.
2๊ฐ์ ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ๊ณ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ๊ฐ์ ํฉ๋๋ค. API ํธ์ถ ์ cold start delay๊ฐ ์์ต๋๋ค.
ํ์ชฝ ํด๋ผ์ด์ธํธ์์๋ ๋ฐฉ ๋ง๋ค๊ธฐ๋ฅผ ํ๊ณ
๋ค๋ฅธ ์ชฝ ํด๋ผ์ด์ธํธ์์๋ ๋ฐฉ ๊ฒ์์ ํฉ๋๋ค.
๊ฒ์๋ ์ด๋ฆ์ ํด๋ฆญํ๋ฉด ๊ฒ์์ ์์ํฉ๋๋ค.
์๋จ์ ์๋ ์ด๊ฐ 0์ด ๋์์ ๋ ์ต๊ทผ์ ๋๋ ๋ ๊ฐ์, ๋ฐ์, ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐฉ๊ณผ ๋น๊ตํ์ฌ ์นํจ ํ์ ์ ํ๊ฒ ๋ฉ๋๋ค.
5 ๋ผ์ด๋๊ฐ ์งํ๋๋ฉฐ 3์ ์น์ ํ๊ฒ ๋๋ฉด ๊ฒ์์ด ์ข ๋ฃ๋ฉ๋๋ค.
๊ฒ์์ด ๋๋๊ณ DB๋ฅผ ์กฐํ ํด ๋ณด๋ฉด ์น๋ฆฌ, ํจ๋ฐฐ, ๋ฌด์น๋ถ ์นด์ดํธ ๋ฐ ์ ์ ๊ฐ์ด ๋ฐ์๋์ด ์์ต๋๋ค.
ํ๋ ์ฝ๋ฉ๋ ๋ถ๋ถ ์์ ํ CI/CD์ ํตํฉ
Game Serverย ์ ๊ฐย Fleetย ์์ย Kinesis Data Firehoseย ๋ผ๋ ์๋น์ค๋ฅผ ์ด์ฉํด์ ๊ฐ์ฅ ์ฝ๊ณ ์์ ์ ์ผ๋กย S3ย ๋ก ๋ก๋ํ ์ ์์ต๋๋ค.
Kinesis Data Firehoseย ๋ฅผ ์ฌ์ฉํ์ ๋ค๋ฉด ์ค์๊ฐ์ผ๋ก ๊ฒ์ ์๋ฒ์์ ๋ฐ์ํ์๋ ๋ก๊ทธ๋ฅผ ๋ณ๋์ ์ธํ๋ผ ๊ด๋ฆฌ์ ํ์์์ดย S3ย ๋ก ์ค์ค์๊ฐ์ผ๋ก ์์งํ ์ ์๋ ํ์ดํ๋ผ์ธ์ ์ ๊ณตํฉ๋๋ค.
๋ง์๋๋ฆฐ ๊ฒ์ฒ๋ผย Kinesis Data Firehoseย ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฒํผ ์ญํ ์ ์ํํ๋ฉฐ, 1-128MBย ๋จ์๋ก ๊ฐ์ ์ง์ ํด์ ๋ฒํผ ํฌ๊ธฐ ๊ธฐ์ค ๋๋ย 60-900์ด ๊ฐ๊ฒฉ ์ฌ์ด์์ ๊ฐ์ ์ง์ ํ์ฌ ๋ฒํผ ์๊ฐ ๊ธฐ์ค์ผ๋กย S3ย ์ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํฉ๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ์ค์๊ฐ์ฑ์ผ๋ก๋ ๋ฐ์ดํฐ ์์ด๋ ์๊ฐ์ดย 1๋ถ,ย ๋ฐ์ดํฐ ์์ด๋ ์์ดย 1MBย ์ค ๋ ๋น ๋ฅธ ์๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ค ์ ์๋ค๊ณ ์๊ฐํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
(https://docs.aws.amazon.com/ko_kr/firehose/latest/dev/what-is-this-service.html)
(https://docs.aws.amazon.com/ko_kr/firehose/latest/dev/basic-deliver.html)
S3ย ์ ์ ์ฌํ์ ์ดํ์๋ย S3ย ๋ฅผ ์ค์ฌย Data Lakeย ๋ก ์ฌ์ฉํ์๊ฑฐ๋,ย ๋ชฉํํ์๋ ๋ฐ๋๋ก ๋น ์ฟผ๋ฆฌ๋ก ์ฎ๊ธฐ์ ์ ์ค์ ๊ด๋ฆฌํ์ค ์ ์๋ ๋ฐฉ์์ด ์์ผ์ค ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
Amazon GameLift Primer ๊ณผ์ ์ GameLift๋ฅผ ์ดํดํ๋๋ฐ ๋ง์ ๋์์ด ๋ฉ๋๋ค.
ํด๋น ๊ณผ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต์ ํฉ๋๋ค.
-
Amazon GameLift Primer(๊ฐ์)
Amazon GameLift Primer๋ฅผ ์์ํ๊ฒ ์ต๋๋ค. Amazon์์ ๊ธฐ์ ๊ต์ก ๊ณผ์ ๊ฐ๋ฐ์๋ก ์ผํ๊ณ ์์ผ๋ฉฐ ย ์ด ๊ณผ์ ์ ์งํ์ ๋งก์ Tom Stern์ ๋๋ค.
์ด ๊ณผ์ ์์๋ Amazon GameLift, ์ด ์๋น์ค ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ๊ฒ์์์ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
GameLift๋ ๊ฒ์ ํธ์คํ ์ ์ํ ๊ด๋ฆฌํ ์๋น์ค์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒ์ ์ํํธ์จ์ด๋ฅผ ์คํํ EC2 ์ธ์คํด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ์ง๋ง GameLift๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ ์ด์์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค. GameLift๋ ๋ชจ๋ ์ข ๋ฅ์ ์ธ์ ๊ธฐ๋ฐ ๊ฒ์์ ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋ ์ ์ฉ ๊ฒ์ ์๋ฒ ํธ์คํ ์ ์ ๊ณตํฉ๋๋ค. ์ ๊ตํ ์ ์ด ๊ธฐ๋ฅ์ผ๋ก ๊ฒ์ ํธ์คํธ ์ธ์คํด์ค์ ํ๋ฆฟ์ ๊ด๋ฆฌํ๋ฏ๋ก ๋น์ฉ์ ์ ์ดํ๋ฉด์ ์ธํ๋ผ ๋ฆฌ์์ค๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค. GameLift๋ ๊ฒ์ ์ธ์ ์ ๊ด๋ฆฌํฉ๋๋ค. ํ๋ ์ด์ด ์ง์ฐ์๋๋ฅผ ๊ณ ๋ คํด ๋ฆฌ์ ์ ๊ฒ์์ ๋ฐฐ์นํฉ๋๋ค..
GameLift๋ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์์ ํ๋ ์ด์ด ์์ฒญ์ ๊ด๋ฆฌํ๊ณ ์ ๊ตํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ์ต์ ์ ๋งค์น๋ฅผ ์ฐพ์ต๋๋ค. GameLift๋ ํ์ฅ์ฑ, ์ ์ฐ์ฑ ๋ฐ ๋น์ฉ ํจ์จ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
์ด ๊ณผ์ ์ ๊ธฐ๋ณธ์ ์ธ ๋ชฉํ๋ GameLift๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋๋ค.
-
๊ฒ์ ํธ์คํ ์๊ตฌ ์ฌํญ
GameLift์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๊ฒ์์ฉ์ผ๋ก ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋งค์ฐ ๊ธฐ์ ์ ์ผ ์ ์์ผ๋ฏ๋ก ๋จผ์ ์ปจํ ์คํธ ๋ฐ ๋ฐฐ๊ฒฝ ์ ๋ณด๋ฅผ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
์ ๊ฒ์์ ์์ ์ค์ธ ๊ฒ์ ์คํ๋์ค์ ์๋ฅผ ์๊ฐํด ๋ณด์ญ์์ค.
์ด ์คํ๋์ค์์๋ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์์ ๊ฐ๋ฐ ์ค์ด์์ต๋๋ค.
๊ฒ์์ด ์ค๋น๋์๋ค๊ณ ์๊ฐ๋์๊ณ
ํ ์คํธ๋ฅผ ์คํํ์ต๋๋ค.
ํ์๋ค์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉด์ ์ฌ๋๋ค์ด ๋ก์ปฌ ๋คํธ์ํฌ์์ ๊ฒ์์ ํ๋ ์ดํ๋ ๊ฒ์ ์ง์ผ๋ณด๊ณ ์์ต๋๋ค. ํต์ ์ง์ฐ์ ์์ฃผ ์งง์ต๋๋ค. ํ๋ ์ด์ด ์๊ฒฌ์โฆ
โฆ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์ข์ํฉ๋๋ค!
์ข์ ์์์ ๋๋ค. ์ด์ ๊ฒ์์ ํ ์์ค ์๋ก ๋์ด์ฌ๋ ค์ผ ํฉ๋๋ค.
๊ฒ์์ ์ฑ์ฅ์ํค๊ธฐ ์ํ ๊ธฐ๋ณธ์ ์ธ ์๊ตฌ ์ฌํญ์ ๋ฌด์์ผ๊น์?
ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋๋ค. ๋ง์ ์์ ํ๋ ์ด์ด๋ฅผ ์ง์ํ๊ณ ์ถ๋ค๋ฉด ๋ ๋ง์ ๊ฒ์ ์๋ฒ๋ฅผ ํธ์คํ ํด์ผ ํฉ๋๋ค. ๋ํ ์ฉ๋์ ์ด๊ณผํ์ฌ ์คํํ๋ ์ผ์ ์์ด์ผ ํฉ๋๋ค. ๋น์ฉ ํจ์จ์ฑ๋ ์ค์ํ๋ฏ๋ก ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐํธํ ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค. ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ํ ํจ์น๋ ๊ฒ์์ ์ถ๊ฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์๋ก์ด ํ๋ ์ด์ด๋ฅผ ์ต์ ๋ฒ์ ์ ๊ฒ์์ผ๋ก ์ฐ๊ฒฐํ๊ณ ๊ธฐ์กด ํ๋ ์ด์ด๋ ์คํ ์ค์ธ ๊ฒ์ ์ธ์ ์ ์๋ฃํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ฒ์ ์๋น์ค๊ฐ ๊ณ์ ์คํ๋๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ์ ์ง๋๋ ๋์ ๊ฒ์์ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ์ ์ธ ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค. ๊ฒ์ ์๋ฒ๊ฐ ์ถฉ๋ํ๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์๊ฒ ๋๋๋ผ๋ ์ ์ฒด ๊ฒ์ ์๋น์ค๊ฐ ๋ค์ด๋๋ ์ผ์ ์์ด์ผ ํฉ๋๋ค. ํ๋ ์ด์ด๋ ๋ค์ ๋ก๊ทธ์ธํ์ฌ ๊ณ์ ํ๋ ์ดํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๊ฒ์์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์๋ง ์ก์ธ์คํ ์ ์๋๋ก ์์คํ ์ ์์ ํ๊ฒ ๋ณดํธํด์ผ ํฉ๋๋ค. ๋ฉํฐ ํ๋ ์ด์ด ๊ฒ์์ ํ์ํ ์์๋ ๋ฌด์์ผ๊น์?
๋จผ์ , ๋งค์น๋ฉ์ดํน์ด ํ์ํฉ๋๋ค.
๋ฉํฐํ๋ ์ด์ด ๊ฒ์์ ํ๋ ์ดํ๋ ค๋ ํ๋ ์ด์ด์๊ฒ ์ ๊ณตํ ์ ์๋ ํธ์คํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์คํ ๊ฐ๋ฅํ ๊ฒ์์ ๋ง๋ญ๋๋ค.
๋งค์น๋ฉ์ดํน์ ๊ท์น ์ธํธ๋ฅผ ์ ์ฉํ์ฌ ์ ์ ํ ๋งค์น์ ํ์ฉ ๊ฐ๋ฅํ ๋งค์น, ํ์ฉ ๊ฐ๋ฅํ ๋งค์น๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ ์ ์ ์ ํ ๋งค์น๋ฅผ ์ฐพ๋ ๋ฐ ์์๋๋ ์๊ฐ์ ์ ์ํฉ๋๋ค.
ํ๋ ์ด์ด ์ง์ฐ๊ณผ ๊ฐ์ ํน์ฑ์ด๋ ํ, ์๋ ๋ฐ ์คํฌ๊ณผ ๊ฐ์ ํ๋ ์ด์ด ์์ฑ์ ์ค๋ช ํ๊ธฐ ์ํ ๊ท์น์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ํน์ ์์ ํ๋ ์ด์ด๊ฐ ํ์ํ๋๋ก ๊ฒ์์ ์ค์ ํ๊ฑฐ๋ ํน์ ํฌ์ง์ ์ ๊ฐ์ง ํ์ ์ ์ํ ์ ์์ต๋๋ค. ์์ฒด ๋งค์น๋ฉ์ดํน ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ GameLift FlexMatch์ ๊ฐ์ด ์๋น์ค๋ก ์ ๊ณต๋๋ ๋งค์น๋ฉ์ดํน์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒฝ์ฐ๋ ๋งค์น๋ฉ์ดํน์ ์ผ๋ฐ์ ์ธ ๊ฒ์ ํธ์คํ ์๊ตฌ ์ฌํญ์ ๋๋ค.
ํน์ ์์ ํ ๋๋ ํน์ ํ๋ ์ด์ด ์ฌ๋ฅ์ ๊ฐ์ง ํ์ ํ๋ ์ด์ด๋ฅผ ๋ฐฐ์ ํด์ผ ํ ์๋ ์์ต๋๋ค. ๋์ผํ ํ๋ ์ด์ด๋ก ํ์ ๊ตฌ์ฑํ ์ ์๋๋ก ์ค์ ํด์ผ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์คํฌ์ธ ํ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ ์ด์ด์ ๋ค๋ฅธ ๊ธฐ์ ์ ๊ฐ์ง ๊ณจํคํผ๊ฐ ํ์ํ ์ ์์ต๋๋ค. ์๋ก ๋ค๋ฅธ ํ ์ญํ ๋๋ ํฌ์ง์ ์ด ์๊ฒฉ์ ๊ฐ์ถ ํ๋ ์ด์ด๋ก ์ฑ์์ง๋๋ก ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ํ ๋ฐ ํ ์ญํ ์ ์ ์ํ๊ณ ํ๋ ์ด์ด๋ฅผ ํ์ ๋ฐฐ์ ํ๋ ๊ธฐ๋ฅ์ ๊ฒ์ ํธ์คํ ์ ์ผ๋ฐ์ ์ธ ์๊ตฌ ์ฌํญ ์ค ํ๋์ ๋๋ค.
๋ชจ๋ ํ๋ ์ด์ด๊ฐ ๋ก์ปฌ ์์ญ ๋คํธ์ํฌ์์ ํ๋ ์ดํ ๋๋ ์ง์ฐ์ด ๊ฑฐ์ ์์์ต๋๋ค.
๊ฒ์์ ํ์ฅํ๊ณ ๊ธ๋ก๋ฒํํ๋ฉด ํ๋ ์ด์ด ์ง์ฐ์ด ๊ฒ์ํ๋ ์ด์ ๋ฏธ์น๋ ์ํฅ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ ์ ์ง์ฐ์๊ฐ์ผ๋ก ์ธํด ํ๋ ์ด์ด ์ฐธ์ฌ๋์ ๋ฆฌํ ์ ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ง๋ฆฌ์ ์ผ๋ก ํ๋ ์ด์ด์ ๊ฐ๊น์ด ๊ฒ์ ์๋ฒ๋ฅผ ์ ๊ณตํ๋ ๊ฒ๋ ๊ฒ์ ํธ์คํ ์ ์ผ๋ฐ์ ์ธ ์๊ตฌ ์ฌํญ์ ๋๋ค.
๋งค์น๋ฅผ ์ฐพ์ ํ์๋ ๊ฒ์ ์ธ์ ์ ์ด๋๊ฐ์์ ์์ํด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ์ด์ด ์ฐธ์ฌ๋ฅผ ์ ์งํ๋ฉด์ ๊ฒ์์ ์ฑ์ฅ์ํค๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ๋ ์ด์ด๋ฅผ ์ ์นํ๊ณ ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ ํ๋ฅญํ ๊ฒ์ ๊ฒฝํ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๊ฒ์ ํธ์คํ ์๋ฃจ์ ์๋ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ๋ ์์ต๋๋ค. ๋น์ฆ๋์ค๋ฅผ ์ด์ํ๋ ค๋ฉด ์ฌ๋ฌ ์กฐ์ง์ ์ ์ ํ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. ์๊ตฌ ์ฌํญ ์ค ํ๋๋ ์๋ฃจ์ ์ด ์ ์ ํ ๋น์ฆ๋์ค ์์ฌ ๊ฒฐ์ , ์ ์ ํ ๊ฒ์ ์ค๊ณ ์์ฌ ๊ฒฐ์ ๋ฐ ์ ์ ํ ์ด์ ์์ฌ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ ๋ค๋ฅธ ์๊ตฌ ์ฌํญ์ ๊ฐ๊ฒฉ ํฌ๋ช ์ฑ์ ๋๋ค. ๋น์ฆ๋์ค์ ๋ํ ๊ฑด์ ํ ์ฌ๋ฌด ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด์๋ ๊ฐ๊ฒฉ ์ฑ ์ ์ ๋ํ ๋ช ํํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. ์ฆ, ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ ์ ์ค๋งํธํ๊ฒ ์์ธกํ๊ณ ์ฌ์ฉ๋ ๋ฆฌ์์ค์ ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๊ธฐ๋ฅ์ด ์์ด์ผ ํฉ๋๋ค.
๋คํํ Amazon GameLift๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ํจ์ฌ ๋ ์ฝ๊ฒ ์ถฉ์กฑํ ์ ์์ต๋๋ค.
-
Amazon GameLift์ ์ฃผ์ ์ด์
GameLift๋ ๊ฒ์ ์๋น์ค์ ์ ์ฉํ ์ ์๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ค์ ์ฌ๋ฌ ๋จ์์์๋ GameLift๊ฐ ์ ๊ณตํ๋ ์๋น์ค์ ์ ์ฐ์ฑ๊ณผ ๋ฒ์์ ๋ํด ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ๊ธ๋ก๋ฒ ํ์ฅ์ฑ๊ณผ ํ์์ ๋ฐ๋ผ ํ๋ ฅ์ ์ผ๋ก ์ธํ๋ผ๋ฅผ ํ์ฅํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฒ์ ์คํ๋์ค์์ ๊พธ์คํ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ๋๋ค.
GameLift์ ๊ฐ์ฅ ์ ๋ช ํ ๋ ๊ฐ์ง ์ด์ ์ด ๋ฐ๋ก โ์จ๋๋งจ๋ ๊ฒ์ ์ธ์ โ๊ณผ โ๊ธ๋ก๋ฒ ๋ฐฐํฌโ์ ๋๋ค. ์จ๋๋งจ๋ ๊ฒ์ ์ธ์ ์ ๋ณํํ๋ ํ๋ ์ด์ด ์์์ ๋ฐ๋ผ ํ์ฅํ๊ณ ์ถ์ํ ์ ์๋ ํ์ฅ ๊ฐ๋ฅํ ์ธํ๋ผ๋ฅผ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค. ์ฆ, ํญ์ ์ถฉ๋ถํ ๊ฒ์ ์ธ์ ์ ์ฌ์ฉํ ์ ์๊ณ ์ฅ๋น์ ๋ํ ์๋ณธ ํฌ์ ๋์ ํ์ํ ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ ์ ์์ต๋๋ค. ๊ธ๋ก๋ฒ ๋ฐฐํฌ๋ ์ฌ๋ฌ ๋ฆฌ์ ์ GameLift ์๋ฃจ์ ์ ๋ฐฐํฌํ์ฌ ๋ฌ์ฑ๋ฉ๋๋ค. GameLift์์๋ ํ ์ธ๋ ์๊ธ์ผ๋ก ์ ๊ณต๋๋ ์คํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ธ๋ก๋ฒ ๋ฐฐํฌ์ ๋น์ฉ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ๊ฐ๊ฒฉ์ ์์ฅ ์ ์ฐฐ์ ์ํด ์ค์ ๋ฉ๋๋ค. GameLift๋ ๊ฒ์ ์๋ฒ๋ฅผ ํ๋ ์ด์ด ๊ทผ์ฒ์ ๋ฐฐ์นํ๊ณ ํ๋ ์ด์ด๋ฅผ ๊ทผ์ฒ์ ๊ฒ์ ์๋ฒ๋ก ์ฐ๊ฒฐํจ์ผ๋ก์จ ์ต์์ ๊ฒ์์ ์ ๊ณตํฉ๋๋ค.
์ฉ๋์ ์ถ์ธกํ ํ์๊ฐ ์์ต๋๋ค. GameLift์ ๊ธฐ๋ฅ์ ํ๋ ์ด์ด ์์์ ๋ฐ๋ผ ์ฉ๋์ ๊ด๋ฆฌํฉ๋๋ค. ์ฉ๋์ ํจ์ฌ ๋น ๋ฅด๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. ๋ช ๋ถ ์์ ์ฉ๋์ ์ผ๊ณ ๋ ์ ์์ต๋๋ค. ๋ช ์ฃผ๊ฐ ์์๋๋ ์จํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ ๋๋ ์ฝ๋ก์ผ์ด์ ์๋ฃจ์ ๊ณผ ๋ค๋ฆ ๋๋ค. ๋ ๋ค๋ฅธ ์ด์ ์ ์ฌ์ ํ๋์จ์ด ํ๋ก๋น์ ๋ ๋ฐ ์์ ๋น์ฉ์ ํผํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
ํ๋ ์ด์ด ๋ฌธ์ ๋ ์ค์ด๋ญ๋๋ค. ์ฆ, ํ๋ก๋น์ ๋ ๋ถ์กฑ์ผ๋ก ์ธํ ํ๋ ์ด์ด ๋ถ๋ง์ด ๋ฐ์ํ์ง ์์ต๋๋ค.. ์ง์ฐ์ด ์งง๊ธฐ ๋๋ฌธ์ ํ๋ ์ด์ด ๊ฒฝํ์ด ํฅ์๋ฉ๋๋ค.
์์ตํ์ ๋น์ฉ์ด ๊ฐ์ ์์ค์ผ๋ก ์ฆ๊ฐํฉ๋๋ค.
-
GameLift ์ดํด
Amazon GameLift์์๋ ์ธ ๊ฐ์ง ์ฃผ์ ๊ฐ๋ ์ ์ดํดํด์ผ ํฉ๋๋ค. GameLift๋ 4๊ฐ์ ๊ฐ๋ณ์ ์ด์ง๋ง ์ํธ ์์กด์ ์ธ ์์คํ ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. GameLift๋ ์ฌ๋ฌ ์์ค์ ์ถ์ํ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ํ GameLift์ ์ํธ ์์ฉํ๋ ์ฝ๋๋ฅผ ์ธ ๊ฐ์ง ๊ฐ๋ณ ํ๋ ฅ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค.
Amazon GameLift๋ ์๋น์ค์ธ ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์ ๋๋ค.
์๋น์ค๋ ์ ํธ๋ฆฌํฐ์ ๊ฐ์ต๋๋ค. ์๋์์ค์ ์๊ฐํด๋ณด์ญ์์ค. ๋ฌผ์ ์๋์์ค์ ํตํด ์ฃผํ์ผ๋ก ๊ณต๊ธ๋๋ฉฐ ์๋๊ผญ์ง์์ ๋์ต๋๋ค. ์ ํํ ์ ์๋ ์ต์ ์ ์์ต๋๋ค. ์๊ธ๋ฌผ์ด๋ ๋ด์ ๋๋ ํ์ฐ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฅ ๋ฌผ ๋ฟ์ ๋๋ค. ๋ํ ์ฌ์ฉ์๋ ์ด ์๋น์ค์ ์์ ๋ฐฉ๋ฒ์ ์ง์ํ ์ ์์ต๋๋ค. ๋ชฉ์์ผ์๋ ์๋น์ค๋ฅผ ์ค์งํ๊ฑฐ๋ ํ ์์ผ์๋ ์์์ ๋์ด๋ผ๋ ๋ฑ์ ์์ฒญ์ ํ ์ ์์ต๋๋ค.
์๊ฒ ์์ ๋ฐฉ๋ฒ์ ์ง์ํ ์ ์์ต๋๋ค. โ๋ฐ๋๋ผ ์ธ ํํ ๋์ ํ ํํ๋ง ๋ฃ๊ณ ์ ์ง ๋ง๊ณ ํ๋ค์ด ์ฃผ์ธ์โ๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ๊ฐ์ด ์์ต๋๋ค. ๋จ์ํ โํ๋ ์ธ ๋ผ์ง ์ปคํผโ๋ฅผ ์ฃผ๋ฌธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋น์ค๊ฐ ์ํ๋๋ ํ๋ก์ธ์ค์ ํฐ ์ํฅ์ ๋ฏธ์นจ์ผ๋ก์จ ๊ฒฐ๊ณผ์ ๋ง๋ํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
Amazon GameLift๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ ํธ์คํ ์๋น์ค๋ก ์ค๋ช ๋์ง๋ง ์ผ๋ถ๋ ์ ํธ๋ฆฌํฐ์ฒ๋ผ ์๋ํ๊ณ ๋ค๋ฅธ ์ผ๋ถ๋ ํ๋ ์์ํฌ์ฒ๋ผ ์๋ํฉ๋๋ค. ์ผ๋ถ์๋ ๊ธฐ๋ณธ๊ฐ์ด ์์ผ๋ฉฐ ์ง์นจ๊ณผ ์๋น์ค๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์ง ์๋ ํ ์๋ํ์ง ์์ต๋๋ค.
GameLift์ ๊ธฐ๋ฅ, ์ฌ์ฉ ๋ฐฉ๋ฒ ๋ฐ ๊ฒ์ ๋ฐฑ์๋ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ์ด์ ์ ์ดํดํ๋ ค๋ฉด GameLift์ ์ฌ๋ฌ ๋ถ๋ถ์ ํ์ํ๊ณ ์ ํธ๋ฆฌํฐ์ ๊ฐ์ ๋ถ๋ถ, ์ฌ์ฉ์ ์ง์ ์ด ๊ฐ๋ฅํ ๋ถ๋ถ ๋ฐ ์ฌ์ฉ์์ ์ง์์ ๋ฐ๋ฅด๋ ๋ถ๋ถ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Amazon GameLift๋ ๋ฉํฐ ํ๋ ์ด์ด ๊ฒ์์ ํธ์คํ ํ๋ ์๋น์ค์ ๋๋ค. GameLift๋ ๊ฒ์ ์ธ์ ์ ์์ํ๊ณ ๊ฒ์ ๋ฐฑ์๋์์ ์ฌ๋ฌ ํ๋ ์ด์ด๋ฅผ ๊ฒ์ ์ธ์ ์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. GameLift์ ์๋ ๋ฐฉ์์ ์ดํดํ๋ ค๋ฉด ๋ช ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์์ ํด๋น ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๋ ์์คํ ์ ์ต์ํด์ ธ์ผ ํฉ๋๋ค. ์ด ๋จ์์์๋ GameLift ์์คํ ๊ณผ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๋ํด ๋ฐฐ์๋๋ค. GameLift๋ ์ฑ๊ธํ๋ ์ด์ด ๊ฒ์์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์๋น์ค๋ ๋ฉํฐํ๋ ์ด์ด์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
GameLift๋ 4๊ฐ์ ๊ฐ๋ณ์ ์ด์ง๋ง ์ํธ ์์กด์ ์ธ ์์คํ ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ ๊ณ์ธต์ ๊ทธ ์๋์ ๊ณ์ธต์ ์ฌ์ฉํ๋ฉฐ ํฌํจํฉ๋๋ค.
๋งค์น๋ฉ์ดํน์ ๊ฒ์์ ํ๋ ์ดํ๋ ค๋ ํ๋ ์ด์ด์ ๊ฒ์์ ํ๋ ์ดํ ์ ์๋ ๊ฒ์ ์ธ์ ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๊ฒ์ ์ธ์ ์ ํธ์คํ ํ ์์น๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์ธ์ ๊ด๋ฆฌ๋ ๊ฒ์์ ์์ํ๊ณ ํ๋ ์ด์ด์ ๊ฒ์ ์ฐธ์ฌ๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
์ธํ๋ผ ๊ด๋ฆฌ๋ ๊ฒ์ ์๋ฒ์ ๋ํ ํ๋ ฅ์ ์ธ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์์ ์คํ์ผ๋ก ๊ฐ์๋ก GameLift๋ ์์ ๋์ ์ฌ์ฉ์ ์ง์ ๊ฐ๋ฅ์ฑ์ด ์ฆ๊ฐํ๋ ํ๋ ์์ํฌ์ฒ๋ผ ์๋ํฉ๋๋ค. GameLift๋ ๊ธฐ์กด์ ๋ค๋ฅธ ์๋น์ค์ ๋ฌ๋ฆฌ ์ฌ์ฉ์ ์ง์ ํ ์ ์๋ ํญ๋ชฉ์ด ๋งค์ฐ ๋ง๊ณ ์์ฃผ ์ ์ฐํฉ๋๋ค. GameLift์์๋ ๋ง์ ์์ ์ด ๊ฐ๋ฅํ์ง๋ง ์ด๋ฌํ ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ๊ณผ ์๊ธฐ๋ ์ฝ๋์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. GameLift์ ์์ ๋ฐฉ๋ฒ์ ์ง์ํ๋ ์ฝ๋๋ฅผ ๊ฒ์ ์๋น์ค ๋ก์ง์ด๋ผ๊ณ ํฉ๋๋ค. GameLift๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ GameLift๊ฐ ๊ฒ์์ ํ์ํ ๋ฐฉ์์ผ๋ก ๋์ํ๋๋ก ๊ฒ์ ์๋น์ค ๋ก์ง์ ์ค๊ณํ๊ณ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋๋ค.
์ธํ๋ผ ๊ด๋ฆฌ ์์คํ ์ ์ปดํจํ , ์คํ ๋ฆฌ์ง ๋ฐ ๋คํธ์ํน ๋ฆฌ์์ค๋ฅผ ๋ด๋นํฉ๋๋ค. GameLift๋ EC2๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ฉ๋๋ค. ์ด ์์คํ ์ ์ฌ๋ฌ ๋ฆฌ์ ์์ EC2 ์ธ์คํด์ค ํ๋ฆฟ์ ๊ด๋ฆฌํฉ๋๋ค. ๋ํ ๊ฐ EC2 ์ธ์คํด์ค์ ์ค์น๋ ๊ฒ์ ์ํํธ์จ์ด์ ์ํํธ์จ์ด์์ ๊ตฌ์ถ๋ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๋ฅผ ๋ด๋นํฉ๋๋ค.
๊ฒ์ ์ธ์ ์ ์ธํ๋ผ ๊ด๋ฆฌ์ ๋ค๋ฅธ ์์คํ ๊ฐ์ ๊ฒฝ๊ณ์ ์์ต๋๋ค. ํ๋ก์ธ์ค ๋ก๋ ๋ฐ ์์ ๋๋ ํ๋ก์ธ์ค ์ข ๋ฃ ๋ฐ ๊ต์ฒด ๋ฑ ํ๋ก์ธ์ค์ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ์ธํ๋ผ ๊ด๋ฆฌ์ ์ํฉ๋๋ค. ๊ฒ์ ์ธ์ ์์ฒด์ ๊ด๋ จ์ด ์๋ ๋ชจ๋ ์์ (์: ํ๋ ์ดํ ๊ฒ์์ ์ค๋น ์ํ ์ ์ธ, ํ๋ ์ด์ด ์ฌ๋กฏ ์์ฝ ๋๋ ๊ฒ์ํ๋ ์ด)์ ์ธํ๋ผ ๊ด๋ฆฌ ์ธ๋ถ์์ ๋ฐ์ํฉ๋๋ค. ์ธํ๋ผ ๊ด๋ฆฌ๋ ๋ชจ๋ GameLift ์์คํ ์ ์ ํธ๋ฆฌํฐ์ฒ๋ผ ๋์ํฉ๋๋ค. ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ฉด ์ฌ์ ๊ตฌ์ฑ๋ ํ๋ ๋ด์์ ์๋์ผ๋ก ๋ฆฌ์์ค๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๋งค์น๋ฉ์ดํน์๋ GameLift์ ๋ก๋๋๋ ๊ท์น์ด ํฌํจ๋ฉ๋๋ค. ๊ท์น์ ์์คํ ์ ์์ฌ ๊ฒฐ์ ๋ฐฉ์์ ๊ฒฐ์ ํฉ๋๋ค. ๋ฐ๋ผ์ ์๋น์ค ์ด์์ ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์์๋ ๊ฒ์ ๋ฐฑ์๋์ ๊ฒ์ ์๋ฒ์ ์ฝ๋๊ฐ ๊ฒ์ ์๋น์ค ๋ก์ง์ ๊ตฌํํฉ๋๋ค. ์ด ๋ก์ง์ ๊ฒฐ์ ์ด ๋ด๋ ค์ง๋ ์๊ธฐ์ ๊ทธ ๊ฒฐ๊ณผ๋ก ์ํํ ์์ ์ ๊ฒฐ์ ํฉ๋๋ค. GameLift์ ๋งค์น๋ฉ์ดํน ์๋น์ค๋ฅผ FlexMatch๋ผ๊ณ ํฉ๋๋ค. GameLift์๋ ํ๋ ์ด์์ ๋งค์น๋ฉ์ด์ปค๊ฐ ์์ ์ ์์ต๋๋ค. ๋งค์น๋ฉ์ด์ปค๋ ๊ฒ์์ ์ฐธ์ฌํ ์ ์๋ ํ๋ ์ด์ด ์, ํ ์, ๊ฒ์์์ ์ฌ์ฉํ ๊ฒ์ ๋งต, ๊ฒ์์์ ์ฌ์ฉํ ๋ชจ๋ ๋ฑ ์์ฒญ๋๋ ๊ฒ์์ ์ข ๋ฅ์ ๊ด๋ จ๋ ํ๋ ์ด์ด ์ ๋ณด ๋ฐ ์ธ๋ถ ์ฌํญ์ ํฌํจํ๋ ์ ์ ํ์ ๋ด๋นํฉ๋๋ค. ๋งค์น๋ฉ์ด์ปค์๋ ์ ํจํ ๊ฒ์์ ๊ตฌ์ฑ ์์๋ฅผ ์ ์ํ๋ ๊ท์น ์ธํธ๊ฐ ์์ต๋๋ค. ์ผ์น๊ฐ ๋ฐ์ํ๋ ค๋ฉด ์์ฒญ์ ๋ชจ๋ ๊ธฐ์ค๊ณผ ๊ท์น์ ๋ชจ๋ ๊ธฐ์ค์ด ์ถฉ์กฑ๋์ด์ผ ํฉ๋๋ค. ๋งค์น๋ฉ์ด์ปค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒญ ํ๊ณผ ์ฌ์ฉ ๊ฐ๋ฅํ ์ธํ๋ผ๋ฅผ ๋ฐ๋ณตํ์ฌ ์ ํจํ ๊ฒ์ ๊ตฌ์ฑ์ ์ฐพ์ต๋๋ค. ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ผ๋ฉด ๋งค์น๋ฅผ ์ ์ธํฉ๋๋ค.
GameLift ์ํคํ ์ฒ๋ ๊ฐ ๊ณ์ธต์ด ํ์ ๊ณ์ธต์ ๋ํํ๊ณ ๊ตฌ๋ํฉ๋๋ค. ๋งค์น๋ฉ์ดํน์ ํ๋ ์ด์ด ์์ฒญ๊ณผ ๋ฆฌ์์ค ์๊ตฌ ์ฌํญ์ ์๊ณ ์์ง๋ง ๊ฒ์์ ํธ์คํ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์์ค๋ก EC2 ์ธ์คํด์ค๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํฉ๋๋ค. ์ด ์ง์์ ์ํด ์๋น์ค๋ ๋ค์ ๊ณ์ธต์ธ ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ก ์ด๋ํฉ๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ ์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ฆฌ์ , ๋ฆฌ์ ๋ด์ ํ๋ฆฟ, ๊ฒ์์ ํธ์คํ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์์ค๊ฐ ์๋ EC2 ์ธ์คํด์ค๋ฅผ ์๋ณํ๋ ๊ฒ์ ๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๋ฆฌ์ ์ ๋ํ ํ๊ท ํ๋ ์ด์ด ์ง์ฐ์ ๊ณ ๋ คํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ ๋ฆฌ์ ์๋ํฌ์ธํธ์ ๋ํ ping์ ์ํํ๊ณ ์์ฒญ์์ ์ง์ฐ์ ์ธก์ ๊ฐ์ ๋ณด๊ณ ํฉ๋๋ค. ์ด ์ธก์ ๊ฐ์ ๋งค์น๋ฉ์ดํน์ ํตํด ์ ๋ฌ๋๋ฉฐ ๊ฒฐ๊ตญ ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ก ์ ๋ฌ๋ฉ๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๋ํ ๋ค๋ฅธ ํ๋ฆฟ์ ๋น์ฉ์ ๋ํด ์๊ณ ์์ผ๋ฏ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ ๋ฎ์ ๋น์ฉ ์ต์ ์ ์ฌ์ฉํฉ๋๋ค. ์ง์ฐ ์ ๋ณด๋ฅผ ํฌํจํ์ง ์๋ ์์ฒญ์ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ๋น์ฉ์ด ์ ์ฌํ ์ธ์คํด์ค ํ๋ฆฟ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๊ฐ์ฉ์ฑ์ ๊ธฐ์ค์ผ๋ก ์์ฌ ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๋ค. ๋จผ์ ํ๋ฆฟ์ ์ฐ๊ฒฐํ ์ ์๊ณ ๋ฉํ๋ฐ์ดํฐ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๊ณ ๋ คํ ๋ค์ ํ์ํ ๊ฒ์ ์ธ์ ์ ํธ์คํ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ์๋ EC2 ์ธ์คํด์ค๊ฐ ํ๋ฆฟ์ ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๊ณ ๋ คํฉ๋๋ค. GameLift ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋์์ ๊ฒฐ์ ํ๋ ์ฃผ์ ๋ฉ์ปค๋์ฆ์ ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋๊ธฐ์ด์ด๋ผ๋ ๊ฐ์ฒด์ ๊ตฌ์ฑ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋๊ธฐ์ด์๋ ๊ธฐ๋ณธ ์ฌ์ฉ ์์์ ๋ฐ๋ผ ํ๋ฆฟ์ ๋ชฉ๋ก์ด ํฌํจ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ ์ํ๋ ๊ท์น ์ธํธ๋ ์์ต๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ ์ ์ง๋ฅํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์์ ํธ์คํ ํ ์ต์์ ๊ฒ์ ์๋ฒ๋ฅผ ์ฐพ์ต๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๋ชจ๋ ์ต์ ์ ๋ฐ๋ณตํ์ฌ ๊ฒ์์ ํธ์คํธํ ์ฅ์๋ฅผ ์ฐพ์ต๋๋ค. ๋ฐฐ์น๋ฅผ ์ฆ์ ์ฐพ์ ์ ์์ผ๋ฉด ์์ฒญ์ ๋๊ธฐ์ด๋ก ๋ฐํํฉ๋๋ค. ์์ฒญ์ ๋ฐฐ์น๊ฐ ๋ฐ๊ฒฌ๋๊ฑฐ๋ ์์ฒญ์ด ์ต๋ ๋๊ธฐ์ด ๋ณด๋ฅ ์๊ฐ์ ์ด๊ณผํ ๋๊น์ง ๋ณด๋ฅ๋๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ค์ ๋ฐฉ๋ฌธ๋ฉ๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๊ฒ์์ ๋ํ ๊ฒ์ ์๋ฒ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฒ์ ์๋ฒ์์ ๊ฒ์ ์ธ์ ์ ์์ํ๊ฑฐ๋ ๊ฒ์์์ ํ๋ ์ด์ด ์ฌ๋กฏ์ ์์ฝํ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ์์ ์๋ ์ธ์ ๊ด๋ฆฌ ์์คํ ์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ธ์ ๊ด๋ฆฌ๋ ๊ฒ์์ ์์ํ๊ณ ๊ฒ์ ๋ฐฑ์๋์์ ํ๋ ์ด์ด๋ฅผ ๊ฒ์์ ์ฐ๊ฒฐํ ์ ์๋๋ก ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์์คํ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋์์ ๋๋ถ๋ถ ์ฝ๋์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋์ ์์ฑ๋ ์ฝ๋์ ๋ฐ๋ผ ์์คํ ์ด ๊ฒ์์ ์์ํ๋ ๋ฐฉ๋ฒ์ด ๊ฒฐ์ ๋ฉ๋๋ค. ๋ํ ๊ฒ์ ์๋ฒ์ ์์ฑ๋ ์ฝ๋๊ฐ ๊ฒ์ ์ค์ ์์คํ ์ด ์๋ํ๋ ๋ฐฉ์์ ๊ฒฐ์ ํฉ๋๋ค. ย ์๋น์ค๋ฅผ ์ ์ดํ ๋๋ API ํธ์ถ์ ์ฌ์ฉํฉ๋๋ค. ๊ฒ์ ์ธ์ ์ด GameLift์ ์ํด ์๋ฐ์ ์ผ๋ก ์์๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ฐํ๋ฉด ์ ์ด ์์ค์ ์ดํดํ ์ ์์ต๋๋ค. ๊ฒ์ ์ธ์ ์ ์ฝ๋๊ฐ API๋ฅผ ํธ์ถํ ๋ ๊ทธ ๊ฒฐ๊ณผ๋ก๋ง ์์๋ฉ๋๋ค.
ํ๋ ์ด์ด ์ธ์ ์ ๊ฒ์ ๋ด ํ๋ ์ด์ด ์ฌ๋กฏ์ ๋ํ ์์ฒญ์ ๋ํ๋ด๋ GameLift ๊ฐ์ฒด์ ๋๋ค. ํ๋ ์ด์ด ์ธ์ ์์ฒญ์ ๋งค์น๋ฉ์ดํน ์์คํ ์ด๋ ๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ ์์ ์์๋์ง๋ง ์ธ์ ๊ด๋ฆฌ ์์คํ ์์ ์ฒ๋ฆฌ๋๊ณ ํด๊ฒฐ๋ฉ๋๋ค.
-
๊ฒ์ ์๋น์ค ๋ก์ง
๊ฒ์ ์๋น์ค ๋ก์ง
๊ทผ๋ณธ์ ์ผ๋ก GameLift์ ์๋ ๋ฐฉ์์ ์ฝ๋์ ์ํฅ์ ๋ฐ์ต๋๋ค.
์ผ๋ถ ๊ตฌ์ฑ ์์์์๋ ์ ํ ๋ฐ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ GameLift๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ๋ค๋ฅธ ๊ตฌ์ฑ ์์์์๋ API๋ฅผ ํตํด GameLift ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. ๋ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์์๋ GameLift์ ์์ฌ ๊ฒฐ์ ์ ์ฌ์ฉ๋๋ ๊ท์น์ ์์ฑํ๊ณ ์ ๋ก๋ํฉ๋๋ค.
๊ฒ์ ์๋น์ค ๋ก์ง์ ์ฝ๋์ GameLift์ ์ธํฐํ์ด์ค ๋ฐฉ์์ ๋ํ๋ ๋๋ค.
๊ฒ์ ์๋น์ค ๋ก์ง์ ๊ฒ์ ๋ฐฑ์๋, ๊ฒ์ ์๋ฒ ๋ฐ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ์์ฑ๋๋ ์ฝ๋์ด๋ฉฐ, GameLift์ ๋์์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์กฐ์ ํฉ๋๋ค. ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ์ฝ๋์ GameLift ์์คํ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ํธ ์์ฉ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋ํ GameLift ์์คํ ๊ฐ์ ์ํธ ์์ฉ๊ณผ API ํธ์ถ ์ฝ๋์ ํฌํจ๋ ํ๋ผ๋ฏธํฐ๊ฐ ์์คํ ์์ ์ ๋ฌ๋๊ณ ์ฒ๋ฆฌ๋๋ ๋ฐฉ์์ ์ดํดํด์ผ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก GameLift๊ฐ ์ฝ๋์ ์ ๋ณด๋ฅผ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํด์ผ ํฉ๋๋ค.
๊ฒ์ ์ค์ ์ ๊ฒ์ ๋ฐฑ์๋์์ ์คํ๋๋ ์ฝ๋์ ์ํด ์ ์ด๋ฉ๋๋ค. ์ค๋ช ์์์๋ ๊ฒ์ ๋ฐฑ์๋๋ฅผ ํด๋ผ์ด์ธํธ ๋๋ ํด๋ผ์ด์ธํธ ์๋ฒ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ์ง๋ง ์ด ๊ณผ์ ์์๋ ๋ช ํ์ฑ์ ์ํด ํญ์ ๊ฒ์ ๋ฐฑ์๋๋ผ๊ณ ํฉ๋๋ค. ์ด ์ฝ๋๋ AWS Lambda ํจ์, ์ปจํ ์ด๋(์: AWS Fargate) ๋๋ Elastic Beanstalk์์ ์คํ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ ๋ฐฑ์๋๋ EC2์ ์น ์๋ฒ์์ ์คํ๋ฉ๋๋ค. ์ฝ๋๋ GameLift Client SDK(AWS SDK์ ์ผ๋ถ)๋ฅผ ์ฌ์ฉํ์ฌ GameLift ์์คํ ๊ณผ ์ธํฐํ์ด์คํฉ๋๋ค. GameLift์์ ํ์ฉํ๋ ์๋ํ ๋ฐ ์ถ์ํ์ ์๊ณผ ์ฌ์ฉํ๋ ์ ์ด ๊ธฐ๋ฅ ๊ฐ์ ๊ท ํ์ ์ ํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒ์์ ์์ํ๋ ๊ฒ์ย **StartMatchmaking( )**๊ณผ ๊ฐ์ API ํธ์ถ์ ์ฌ์ฉํ์ฌ ๋งค์น๋ฉ์ดํน ์์คํ ๊ณผ ํต์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๊ฐ๋จํ ์์ ์ผ ์ ์์ต๋๋ค. ์ด ๋จ์ผ ํธ์ถ๋ก ๋งค์น๋ฉ์ดํน ์๋์ ๋ชจ๋ ๊ณ์ธต์์ ์์ ์ด ์คํ๋ฉ๋๋ค. ํ์ง๋ง ๊ฒ์ ๋ฐฑ์๋์ ๋งค์น๋ฉ์ดํน ์ํํธ์จ์ด๊ฐ ์ด๋ฏธ ๊ตฌํ๋๋ ์๋ ๋ ๋ค๋ฅธ ์๋ฅผ ์๊ฐํด๋ณด์ญ์์ค. ย ์ด ๊ฒฝ์ฐ์๋ย StartGameSessionPlacement์ ๊ฐ์ API ํธ์ถ์ ์ฌ์ฉํ์ฌ ๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ ๊ณผ ํต์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์ํ๋ ๊ฒ์ด ์ข์ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ์ด ํธ์ถ์ ์ํํ๋ฉด ๊ทธ ์๋์ ๋ชจ๋ ๊ณ์ธต์์ ์์ ์ด ์คํ๋ฉ๋๋ค.
GameLift ํ๋์ ์ํ๋ ๋ชจ๋ ๊ณ์ธต์์ย Describeย API ํธ์ถ์ ํตํด ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ฒ์ ๋ฐฑ์๋์ ์ค๊ณ๋ฅผ GameLift์ ์๋๊ณผ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ์ ๋ฐ์ดํธ ๋น๋๋ ํด๋ง์ ํตํด ์ ์ด๋ฉ๋๋ค.
GameLift์ ์ถ์ํ ์์ค์ ์ฌ์ฉํ์ฌ ์๋ํ์ ์ ์ด ๊ฐ์ ๊ท ํ์ ์ง์ ์กฐ์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋์คํฌ ๋๋ผ์ด๋ธ๊ฐ ์์ต๋๋ค. ๋์คํฌ ๋๋ผ์ด๋ธ์ ํ์ผ ์์คํ ์๋ GameLift์ ๋น์ทํ ํ์ ์์ค์ ํฌํจํ๋ ์ฌ๋ฌ ์์ค์ ์ถ์ํ๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ๋์ ์์ค์ ์ถ์ํ์๋ ์ ์ฒด ๋์คํฌ์ ๋์คํฌ์ ์๋ ๋ชจ๋ ํญ๋ชฉ(์: โ๋์คํฌ ๋ฐฑ์ โ๋ช ๋ น)์ ์ํฅ์ ๋ฏธ์น๋ ๋ช ๋ น์ด ์์ต๋๋ค. ๋ค์ ์์ค์๋ ํด๋ ๋ฐ ๋๋ ํฐ๋ฆฌ์ โ์ด๋ํ ํด๋โ์ ๊ฐ์ ๋ช ๋ น์ด ์์ผ๋ฉฐ ์ด๋ ๊ทธ ์์ ๋ชจ๋ ํ์ผ์ ์ํฅ์ ์ค๋๋ค. ๋ค์ ์์ค์๋ โ์ด๊ธฐโ, โ์ ์ฅโ ๋ฐ โ๋ซ๊ธฐโ์ ๊ฐ์ ๊ฐ๋ณ ํ์ผ ๋ช ๋ น์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ๋ฎ์ ์์ค์๋ ๋์คํฌ์ ์นํฐ์ ์ง์ ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ๋ช ๋ น์ด ์์ต๋๋ค. ๋์คํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก GameLift์๋ ๋ค ๊ฐ์ง ์ถ์ํ ์์ค์ API ํจ์๊ฐ ์์ต๋๋ค.
๋์คํฌ์ ์นํฐ์ ์ง์ ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ธ ์ผ์ ์์ต๋๋ค. ํ์ผ I/O๊ฐ ํจ์ฌ ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ํ์ํ ๊ฒฝ์ฐ ์ด์ง ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ํจ์๊ฐ ์์ผ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก, ๊ฐ๋ณ ํ๋ ์ด์ด ์์ฒญ์ ๊ด๋ฆฌํ ํ์๋ ์์ต๋๋ค. ๋งค์น๋ฉ์ดํน๊ณผ ๊ฒ์ ์ธ์ ๋ฐฐ์น๊ฐ ํจ์ฌ ํธ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ํ ๊ฒฝ์ฐ ํด๋นํ๋ API ํธ์ถ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ ๊ฐ์ง ์ ๋ณด๋ฅผ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ์จ๋ผ์ธ ์ฐธ๊ณ ์๋ฃ์์ GameLift API ํจ์๋ ์ํ๋ฒณ์์ผ๋ก ๋์ด๋ฉ๋๋ค. ย ์์คํ ๋ณ๋ก ๊ทธ๋ฃนํ๋๊ฑฐ๋ ์ถ์ํ ์์ค์ผ๋ก ํ๊ทธ๋์ด์์ง ์์ต๋๋ค.**StartGameSessionPlacement( )**์ย **CreateGameSession( )**์ ๊ด๋ จ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ย **CreateGameSession( )**์ ์ด๋ฏธย **StartGameSessionPlacemement( )**์์ ํธ์ถ๋ฉ๋๋ค.**CreateGameSession( )**์ ์ ์ด๋ฅผ ๊ฐํํ๊ณ ์๋ํ๋ฅผ ์ค์ด๋ ค๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํฉ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ ๊ฒ์์ด ์์๋๊ธฐ ์ ์ ์ค์ ์ ๋ด๋นํฉ๋๋ค.
ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ ๋งค์น ๋๋ ๊ฒ์ ํ๋ ์ด๋ฅผ ์ํ ์์ฒญ์ ๊ฒ์ ๋ฐฑ์๋๋ก ์ ๋ฌํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ํ๋ ์ด์ด๋ฅผ ์ธ์ฆํ๊ณ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ฉฐ GameLift Client SDK๋ฅผ ํตํด GameLift์ ํ๋ ์ด์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ธ๋ก์ปค ์ญํ ์ ํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ๊ฒ์ ์ค์ ํ๋ก์ธ์ค๋ฅผ ์ ์ ์ผ๋ก ๋ด๋นํ๋ฉฐ GameLift๋ ์ด ํ๋์ ์ง์ํ๋ ์๋น์ค๋ฅผ ๊ฒ์ ๋ฐฑ์๋์ ์ ๊ณตํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์๋น์ค๊ฐ ์๋๋ผ ํด๋ผ์ด์ธํธ๊ฐ ๋ด๋นํฉ๋๋ค.
๊ฒ์ ์๋ฒ๋ ๊ฒ์ํ๋ ์ด๋ฅผ ๋ด๋นํฉ๋๋ค. ๋ํ ๊ฒ์ ์ค์ ์ค์ ๊ฒ์ ๋ฐฑ์๋์ ํํธ๋ ๊ด๊ณ๋ฅผ ๋งบ์ต๋๋ค.
๊ฒ์ ์๋ฒ ์ฝ๋๋ ์ฌ์ฉ์๊ฐ ์์ฑํฉ๋๋ค. ์ด ์ฝ๋๋ Windows ์๋ฒ ๋๋ Linux๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. GamLift Server SDK๋ ํฌํจ๋์ด ์์ต๋๋ค.
๊ฒ์ ์๋ฒ์ ๋ชฉ์ ์ ๊ฒ์ํ๋ ์ด ์ค์ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ๊ฒ์ ์๋ฎฌ๋ ์ด์ ๋ฑ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ฒ์ ์๋ฒ๋ ๊ฒ์ ์ค์ ์ ์ง์ํ ์ฑ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒ์ ์ธ์ ์์ ํ๋ ์ด์ด๋ฅผ ๋ฐ์ ์ค๋น๊ฐ ๋์๋ค๊ณ ์ ์ธํ๋ ์์ ์ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๊ฐ ๋ด๋นํฉ๋๋ค. ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ API ํธ์ถ์ ํตํด ์ด ์ํ๋ฅผ GameLift์ ์๋ฆฝ๋๋ค. ํ๋ ์ด์ด๊ฐ ๊ฒ์ ์ธ์ ์ ๋๊ฐ ๋ ์ด ๋น ์ฌ๋กฏ์ ์ถ๊ฐ ํ๋ ์ด์ด๋ก ์ฑ์ฐ๋ ค๋ ๊ฒฝ์ฐ, ์ฆ ์ฑ์ฐ๊ธฐ ํ๋ก์ธ์ค๋ฅผ ์ํํ๋ ค๋ ๊ฒฝ์ฐ ๊ฒ์ ์๋ฒ ์ฝ๋์์ API ํธ์ถ์ ์ฌ์ฉํ์ฌ ๋งค์น๋ฉ์ดํน ์์คํ ์ ํตํด ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๊ฒ์ ์๋ฒ๋ GameLift ์ธํ๋ผ ๊ด๋ฆฌ์ ์ผ๋ถ์ธ EC2 ์ธ์คํด์ค์์ ์คํ๋ฉ๋๋ค. ์ธํ๋ผ ๊ด๋ฆฌ์ ํ ๊ฐ์ง ๊ธฐ๋ฅ์ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ณ ๊ทธ ์๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ๊ฒ์ ์๋ฒ ์ฝ๋๋ ์ค์ ๋ก ์ธํ๋ผ ๊ด๋ฆฌ ์์คํ ๋ด๋ถ์์ ์คํ๋ฉ๋๋ค.
๊ฒ์ ์๋น์ค๋ ์ฃผ๋ก 2๊ฐ์ ๋น๋๊ธฐ์ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌ๋๋ฉ๋๋ค. ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด์ ๊ฒ์ ๋ฐฑ์๋ ์ํํธ์จ์ด์ธ๋ฐ ์ด ๋ ์ํํธ์จ์ด๋ GameLift API ํธ์ถ์ ํตํด ํ์ ํฉ๋๋ค.
์ด์ GameLift๋ก ๊ตฌ์ถ๋ ๊ฒ์ ์๋น์ค์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๊ด์ ์ผ๋ก ์ดํดํ ์ ์์ต๋๋ค.
์ฝ๋๋ ๊ฒ์ ์๋ฒ, ๊ฒ์ ๋ฐฑ์๋ ํน์ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์์ ๋์๊ฐ๋๋ค.
GameLift์ ๋ํ ์ ์ด๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. JSON ํ์ผ๋ก ์ ๋ก๋๋ ๊ตฌ์ฑ ๋ฐ์ดํฐ, GameLift SDK ๋๋ GameLift ๋์๋ณด๋์ ์ค์ ์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค.
์ด์ GameLift ๊ฒ์ ์๋น์ค ๋ก์ง์ ์๋ ๋ฐฉ์์ ์ค๋ช ํ๊ธฐ์ ์ถฉ๋ถํ ๋ด์ฉ์ด ์ ์๋์์ผ๋
์ผ๋ฐ์ ์ธ ๊ฒ์ ์๋น์ค ๋ก์ง ํ๋ฆ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ฒ์ ์๋น์ค ๋ก์ง ํ๋ฆ
์ด ๋จ์์์๋ ์ผ๋ฐ์ ์ธ ๊ฒ์ ์๋น์ค ๋ก์ง์ ํ๋ฆ์ ์ดํด๋ด ๋๋ค.
๊ฒ์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ด ํ๋ฆ์ ์์ ํ ์ ์์ต๋๋ค. GameLift์ ๋ถ๋ถ๊ณผ ์ฝ๋ ๊ฐ์ ์ํธ ์์ฉ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์ผ๋ฐ์ ์ธ ํ๋ฆ๋ ์ด ๋จ์์์ ์ดํด๋ด ๋๋ค.
๊ฒ์ํ๋ ์ด์ด ์ํํธ์จ์ด๋ ๊ฒ์ ๋ฐฑ์๋์ ๊ฒ์ ํ๋ ์ด ๋๋ ๋ค๋ฅธ ํ๋ ์ด์ด์์ ๋งค์น ํ๋ ์ด๋ฅผ ์ํ ์์ฒญ์ ๋ณด๋ ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ GameLift์ ์กฐ์จํ์ฌ ๋งค์น๋ฅผ ์์ฑํฉ๋๋ค. ๋งค์น๋ฉ์ดํน ์์คํ ์ ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์์ ๊ฐ์ฅ ์ ํฉํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ต๋๋ค.
๊ฒ์์ ์์ํ ๋ฆฌ์ ๊ณผ ํน์ ํ๋ฆฟ์ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๊ฒ์ ์ธ์ ์ ์์ํ ์์น๋ฅผ ๊ฒฐ์ ํ์ง๋ง ์์ํ์ง๋ ์์ต๋๋ค. ๊ฒ์ ์์์ ๋ค์ ๊ณ์ธต์ ์ฑ ์์ ๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๊ฒ์ ์๋ฒ์์ ๊ฒ์ ์ธ์ ์ ์์์ ์์ฒญํฉ๋๋ค. ์ด ์์ ์ ์ธ์ ๊ด๋ฆฌ ์์คํ ์ ์ํด ์ํ๋ฉ๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ์ธ์ ๊ด๋ฆฌ ์์คํ ๊ณผ ํจ๊ป ์๋ํ์ฌ ์ค์ ๋ก ๊ฒ์์ ์์ํ๊ณ ๊ฒ์์์ ํ๋ ์ด์ด ์ฌ๋กฏ์ ์์ฝํฉ๋๋ค.
๊ฒ์ ์๋ฒ๋ ๊ฐ ์์คํ ์ ํตํด ๋ค์ํ ์์ ์ ์ํํ๊ณ ์ํธ ์์ฉํฉ๋๋ค.
GameLift๋ ํ๋ ์ด์ด ์์ฝ์ ํฌํจํ ๊ฒ์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๊ฒ์ ๋ฐฑ์๋๋ก ๋ฐํํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋ ์ฝ๋์ ์ฌ์ฉ๋๋ ์ถ์ํ ์์ค์ ๋ฐ๋ผ ์ธ์ ๊ด๋ฆฌ์ ์๋ต์ด ์คํ์ ์๋ก ๋ค์ ์ด๋ํ๊ณ ํด๋นํ๋ ์์ค์ ์ถ์ํ์ ์ํด ๊ฒ์ ์ฐ๊ฒฐ ์ ๋ณด๊ฐ ๋ฐํ๋ฉ๋๋ค. ์ด ์์์๋ ๋งค์น๋ฉ์ดํน ์์คํ ์ ์ํด ๋ฐํ๋ฉ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ๋ํ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ ๊ฒ์ ์ธ์ ์ ์ฐ๊ฒฐํ๊ณ ์์ฝ๋ ์ฌ๋กฏ์ ๊ฐ์ ธ์ต๋๋ค.
์ด์ ๊ฒ์ ์๋ฒ์ ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด ์ฌ์ด์์ ๊ฒ์ํ๋ ์ด๊ฐ ์ง์ ์์๋ฉ๋๋ค.
๊ฒ์ ์ธ์ ์ ํ๋ ์ด์ด ์์ฝ์ ๊ฐ์ ธ์๊ณ ๋งค์น๋ฉ์ดํน ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋์์์ GameLift์ ์๋ฆฝ๋๋ค. ๊ฒ์ ์๋ฒ๋ ์ธ์ ๊ด๋ฆฌ์ ํ๋ ์ด์ด๊ฐ ์ฐธ์ฌํ์์ ์๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฌ๋กฏ์ด RESERVED์์ ACTIVE๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด ์ ๋ณด๋ฅผ ์ธ์ ๊ด๋ฆฌ ์์คํ ์ ๋ค์ ์ ๊ณตํ๋ฉด GameLift๊ฐ ๋์๋ณด๋์ ํ์ฌ ์งํ ์ ๋ณด๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
๊ฒ์ํ๋ ์ด ์ค์ ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ๋๊ฐ ๊ฒฝ์ฐ ๊ฒ์ ์๋ฒ๋ ๋งค์น๋ฉ์ดํน ์์คํ ์ ์ฑ์ฐ๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฑ์ฐ๊ธฐ๋ ๋์ฒด ํ๋ ์ด์ด๋ฅผ ์๋ณํ๊ณ ํ๋ ์ด์ด๊ฐ ์งํ ์ค์ธ ๊ฒ์์ ์ฐธ๊ฐํ ์ ์๋๋ก ํฉ๋๋ค. ์ฑ์ฐ๊ธฐ๋ ์ฃผ๋ก ๊ฒ์ ์๋ฒ ์ฝ๋์์ ๊ตฌ๋๋์ง๋ง ์ด๊ธฐ ๋งค์น๋ ์ฃผ๋ก ๊ฒ์ ๋ฐฑ์๋ ์ฝ๋์์ ๊ตฌ๋๋ฉ๋๋ค. ์ฑ์ฐ๊ธฐ์๋ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ ์๋ฒ ์์ฒญ ์ฑ์ฐ๊ธฐ์ ๋๋ค.
๊ฒ์ ์๋ฒ๊ฐย **StartMatchBackfill( )**์ ํธ์ถํ๊ณ ๊ฒ์์ ๋ชจ๋ ํ๋ ์ด์ด์ ๋ํ ๋งค์น๋ฉ์ดํน ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋งค์น๋ฉ์ด์ปค์์ ๋งค์น๋ฉ์ดํน ํฐ์ผ์ด ์์ฑ๋ฉ๋๋ค. ํด๋น ํฐ์ผ์ด ๋งค์น์ ์ฐธ์ฌํ๋ ๊ฒฝ์ฐ ๋งค์น๋ฉ์ด์ปค๋ ์ถ๊ฐ ํ๋ ์ด์ด๋ฅผ ํฌํจํย onUpdateGameSession( )ย ์ฝ๋ฐฑ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ๋ค์ ํธ์ถํฉ๋๋ค. ์ฐ๊ฒฐ ์ ๋ณด๋ ๋งค์น๋ฉ์ด์ปค์ ์ํด ๊ฒ์ ๋ฐฑ์๋๋ก ๋ฐํ๋๋ฉฐ, ์ด ์ ๋ณด๋ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ IP ์ฃผ์ ๋ฐ ํฌํธ ๋ฐ ํ๋ ์ด์ด ์ธ์ ํ ํฐ์ผ๋ก ์ ํ๋ฉ๋๋ค.
๋ ๋ฒ์งธ ์ฑ์ฐ๊ธฐ๋ ์๋ ์ฑ์ฐ๊ธฐ์ ๋๋ค.
์๋ ์ฑ์ฐ๊ธฐ๋ ๊ฒ์์ด ์์๋์์ง๋ง ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์ฐธ๊ฐํ์ง ์์ ํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์๋ ์ฑ์ฐ๊ธฐ๋ ๋งค์น๋ฉ์ดํน ๊ตฌ์ฑ์ ์์ฑ์ค ํ๋์ ๋๋ค.
์๋ ์ฑ์ฐ๊ธฐ๊ฐ ํ์ฑํ๋๋ฉด GameLift๊ฐ ๊ฒ์ ์ธ์ ์ ์ด๋ฆฐ ์ฌ๋กฏ์ด ์์ ๋๊น์งย StartMatchBackfill()ย ์์ฒญ์ ๋ฐ๋ณต์ ์ผ๋ก ์์ฑํฉ๋๋ค.
๊ฒ์์ ์ด๋ฆฐ ์ฌ๋กฏ์ด ์์ผ๋ฉด ์๋ ์ฑ์ฐ๊ธฐ๊ฐ ์ค์ง๋ฉ๋๋ค. ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ๋๊ฐ๋ ๊ฒฝ์ฐ ์๋ฒ์์ ์์ฒญํ ์ฑ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Realtime ์๋ฒ
Realtime ์๋ฒ๋ GameLift์์ ์ ๊ณตํ๋ ํน์ํ ์ข ๋ฅ์ ๊ฒ์ ์๋ฒ์ ์ด๋ฆ์ ๋๋ค.
์ง๊ธ๊น์ง๋ ์ด๋ฅผ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ผ๋ ์ผ๋ฐ์ ์ธ ์ฉ์ด๋ก ์ง์นญํ์ต๋๋ค.
์ฌ์ค, ๊ฒ์ ์๋ฒ์๋ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค. ์ง๊ธ๊น์ง ์ค๋ช ํ ๊ฒ์ ์๋ฒ๋ฅผ ์ฌ์ฉ์ ์ง์ ๊ฒ์ ์๋ฒ๋ผ๊ณ ํฉ๋๋ค.ย ์ฌ์ฉ์ ์ง์ ๊ฒ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ ๋๋ GameLift์์ ์ํธ ์์ฉ์ ํฌํจํ ๋ชจ๋ ๊ฒ์ ์๋ฒ ์ฝ๋๋ฅผ ์ง์ ์์ฑํด์ผ ํฉ๋๋ค.
๊ฒ์ ์๋ฒ์ ๋ค๋ฅธ ์ ํ์ผ๋กย Realtime ๊ฒ์ ์๋ฒ๊ฐ ์์ต๋๋ค. Realtime ๊ฒ์ ์๋ฒ์๋ ์ด๋ฏธ GameLift์์ ํ์ ์ํธ ์์ฉ ๋๋ถ๋ถ์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค.
Realtime ์๋ฒ๋ ๊ณต๋ ์ฑ ์ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. GameLift๊ฐ ๊ฒ์ ์๋ฒ์ ์ผ๋ถ๋ฅผ ์ ๊ณตํ๊ณ ์ฌ์ฉ์๊ฐ ๊ฒ์ ์๋ฒ์ ๋ ๋ค๋ฅธ ์ผ๋ถ๋ฅผ ์คํฌ๋ฆฝํธ ํํ๋ก ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๋ ๊ฐ์ง ์ ํ์ ๊ฒ์ ์๋ฒ ๋ชจ๋ ์ค์ ๋ก ์ค์๊ฐ์ผ๋ก ์๋ํ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค.
Realtime ์๋ฒ๋ ์๋ฒ๊ฐ ์คํ๋๋ Node.js ์คํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
Realtime ๊ฒ์ ์๋ฒ์๋ GameLift์์ ์ธํฐํ์ด์ค๊ฐ ์ด๋ฏธ ์์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ด ๊ฐ๋จํฉ๋๋ค.
Realtime ๊ฒ์ ์๋ฒ์ ํ์ํ ๋จ์ผ Node.js javascript ์๋ฒ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
Realtime ๊ฒ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์ ์์ํ๋ ค๋ฉด ์ต์ ์๋ฒ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ์ฌ ํจํท ๋ฆด๋ ์ด(๋ฉ์์ง ์ ๋ฌ)๋ฅผ ์ํํด์ผ ํฉ๋๋ค. ์ด ์์ ๋ ์จ๋ผ์ธ ์ค๋ช ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ Realtime ๊ฒ์ ์๋ฒ๋ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด ๊ฐ์ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๋ฆด๋ ์ด ์๋น์ค์ฒ๋ผ ์๋ํฉ๋๋ค. ์๋ฒ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ฌ ์ถ๊ฐ ๊ฒ์ ์๋ฒ ๊ธฐ๋ฅ์ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒ์ ์๋ฒ์์ ์๋ฎฌ๋ ์ด์ ๋ฐ ์ํ ์กฐ์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด์ ํฌํจํ ์ ์๋ ๋ณ๋์ Realtime Servers Client API๊ฐ ์์ต๋๋ค. ์ด API๋ Realtime ๊ฒ์ ์๋ฒ์ ์ด๋ฏธ ๊ตฌ์ถ๋์ด ์๋ Realtime ๊ตฌ์ฑ ์์์ ํต์ ํฉ๋๋ค.
Realtime ๊ฒ์ ์๋ฒ์ ์ด์ ์ค ํ๋๋ ํ๋ฆฟ ์์ ์์ด ๊ฒ์ ์๋ฒ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ์ฌ ๊ฒ์ ์ธ์ ์ ๋ณ๊ฒฝ๋์ง ์์ง๋ง ์๋ก์ด ๊ฒ์ ์ธ์ ์ด ์์๋๋ฉด Realtime ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๊ฐ ์ ๋ฐ์ดํธ๋ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ธํ๊ณ ๋์ฒด ์คํฌ๋ฆฝํธ๋ก ์ ํํฉ๋๋ค.
Realtime ์๋ฒ์ ๋ ๋ค๋ฅธ ์ด์ ์ ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด์ ์ค์๊ฐ ๊ฒ์ ์๋ฒ ๊ฐ์ ์ ์ก ๊ณ์ธต ๋ณด์(TLS)์ ํ์ฑํํ์ฌ ์ํธํ๋ ํต์ ์ ์ฝ๊ฒ ์ค์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
Realtime ๊ฒ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ๋ Realtime Client SDK๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์์ Realtime ๊ฒ์ ์๋ฒ์ ์ง์ ํต์ ํ ์ ์์ต๋๋ค.
์ด๋ฏธ Javascript๋ก ์์ฑ๋ ๊ฒ์ ์๋ฒ ์คํฌ๋ฆฝํธ(์: ์ด๋ฏธ GameSparks๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋ ์๋ฃจ์ )๊ฐ ์๋ ๊ฒฝ์ฐ Realtime ๊ฒ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋ ์ฌ์ฉ์ด ๋น๊ต์ ์ฌ์์ง๊ณ ๋๊ท๋ชจ ํ๊ฒฝ์์๋ ์ ์๋ํฉ๋๋ค.
์ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ Node.js ์คํ ํ๊ฒฝ์ ์ฌ์ฉํ์ง ์๋ ํ ์ฌ์ฉ์ ์ง์ ๊ฒ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ณด์ ํต์
AWS์๋ ์ฌ์ฉ์๊ฐ ๋ณด์์ ์ผ๋ถ๋ฅผ ์ฑ ์์ง๊ณ Amazon์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํ ์ฑ ์์ ์ง๋ ๊ณต๋ ๋ณด์ ๋ชจ๋ธ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ GameLift์์ ์ด๋ฌํ ์ฑ ์์ด ์ด๋ป๊ฒ ๋ฐฐ์ ๋๋์ง ์์์ผ ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ก ๊ณ ๋ คํด์ผ ํ ์์ญ์ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ๊ฒ์ ์ธ์ ๊ฐ์ ๋ณด์ ํต์ ์ ๋๋ค.
GameLift๋ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ๊ฒ์ ์ธ์ ๊ฐ์ ์ ์ก ๊ณ์ธต ๋ณด์(TLS)์ ์ง์ํฉ๋๋ค. ํ๋ฆฟ์์ TLS๋ฅผ ํ์ฑํํ๋ฉด ํ๋ฆฟ์ ์์ฑํ ๋ TLS ์ธ์ฆ์๊ฐ ์์ฑ๋๊ณ ์ผ๋ฐ์ ์ผ๋ก AMI ๋๋โ์๋ฏธโ๋ผ๊ณ ํ๋ Amazon Machine Image์ ๋ฐฐ์น๋ฉ๋๋ค. ์ด AMI์์ ์ธ์คํด์ค๊ฐ ์์ฑ๋ฉ๋๋ค. ์ ์ฒด ํ๋ฆฟ์ ๋ํด ํ๋์ ์ธ์ฆ์๊ฐ ์์ฑ๋ฉ๋๋ค. ์ ์ฒด ํ๋ฆฟ์ ๋ํด ํ๋์ ์ธ์ฆ์๊ฐ ์์ฑ๋ฉ๋๋ค.
๊ฒ์ ์๋ฒ์๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ID๋ฅผ ๊ฒ์ฆํ๊ธฐ ์ํ DNS ์ด๋ฆ์ด ์์ด์ผ ํฉ๋๋ค. ํ๋ฆฟ ํ์ฅ์ ์ํด ์ธ์คํด์ค๊ฐ ์์ฑ๋๋ฉด GameLift๊ฐ ๊ฐ ์ธ์คํด์ค์ ๋ํ DNS ํญ๋ชฉ์ Route53์ ์์ฑํฉ๋๋ค. ์ธ์ฆ์์ DNS ์ด๋ฆ์ ์์ผ๋์นด๋ ์ผ์น๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ FQDN๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค. ์ธ์คํด์ค๊ฐ ์ข ๋ฃ๋๋ฉด GameLift๊ฐ ์ธ์คํด์ค์ ๋ํ DNS ํญ๋ชฉ์ ์ ๊ฑฐํฉ๋๋ค. DNS ํญ๋ชฉ๊ณผ ์ธ์ฆ์๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ ๋จผ์ ํ๋ฆฟ ์๋ฒ ์ธ์คํด์ค์ ๋ํด GameLift๊ฐ ์์ฑํ DNS ์ด๋ฆ์ ์ฌ์ฉํ์ฌ TLS๋ฅผ ํตํด ์๋ฒ์ ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํฉ๋๋ค.
๊ฒ์ ์๋ฒ ์ฝ๋๋ย **GetInstanceCertificate( )**๋ฅผ ํธ์ถํ์ฌ GameLift๊ฐ ๊ฒฝ๋ก๋ช ์ ์ธ์ฆ์์ ๋ฐํํ๋๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฝ๋๊ฐ ์ธ์คํด์ค์์ ์ธ์ฆ์๋ฅผ ๊ฐ์ ธ์ ๋ณด์ ์ฐ๊ฒฐ์ ์ํด ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ์์ฒญ์ ์๋ตํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ๊ฒ์ ์๋ฒ๋ก๋ถํฐ ์ธ์ฆ์๋ฅผ ๋ฐ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ธ์ฆ์๋ก ๊ฒ์ ์๋ฒ ID๋ฅผ ๊ฒ์ฆํ๊ธฐ ์์ํฉ๋๋ค. ์ธ์ฆ์๋ ์ธ์ฆ ๊ธฐ๊ด์ ๊ณต๊ฐ ํค๋ก ์๋ช ๋ฉ๋๋ค. ์ฌ๋ฌ ์ธ์ฆ ๊ธฐ๊ด์ด ์ฒด์ธ์ ์์ ์ ์์ต๋๋ค. ์ด๋ฌํ ์๋ช ์ด ์ ํจํ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ฃจํธ ์ธ์ฆ ๊ธฐ๊ด์ ๋๋ค. ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์๋ ๋ฃจํธ ์ธ์ฆ ๊ธฐ๊ด์ ํผ๋ธ๋ฆญ ํค ์ธํธ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค ํ๋๊ฐ ์ธ์ฆ์์ ๋ฃจํธ ์ธ์ฆ๊ณผ ์ผ์นํ๋ฉด ์ธ์ฆ์๊ฐ ์ ๋ขฐ๋๊ณ ๊ฒ์ ์๋ฒ์ ID๊ฐ ์ค์ ๋ฉ๋๋ค.
์ด ์์ ์์ ๊ฒ์ ์ธ์ ๊ณผ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ TLS ๊ตฌํ์ ์ ๊ณตํ์ฌ ํธ๋ํฝ์ ์ํธํํ๋๋ก ์ ํํ ์ ์์ต๋๋ค. Realtime ๊ฒ์ ์๋ฒ์ ๊ฒฝ์ฐ ์ด ๊ตฌํ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋์ง๋ง ์ฌ์ฉ์ ์ง์ ๊ฒ์ ์๋ฒ๋ ๊ฒ์ ์๋ฒ ์ฝ๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
Realtime ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ ๊ฒฝ์ฐ ํ ๋จ๊ณ๋ฅผ ๋ ์ ๊ณตํฉ๋๋ค.
GameLift์์ AWS ๋ฆฌ์์ค ์ฌ์ฉ
์ด ๋จ์์์๋ ๊ฒ์ ์๋ฒ์ AWS์ ๋ค๋ฅธ ๋ฆฌ์์ค ๊ฐ์ ๋ณด์ ํต์ ์ ๋ํ ๋์์ ์ดํด๋ณด๋ฉด์ ๊ณต๋ ๋ณด์ ๋ชจ๋ธ์ ๋ํ ์ค๋ช ์ ๊ณ์ํฉ๋๋ค.
GameLift ์๋น์ค ์ญํ ์ IAM ๊ถํ ์ ์ฑ ์ ๋ฐ๋ผ GameLift ํ๋ฆฟ ์ธ์คํด์ค์ ์์ ์๊ฒฉ ์ฆ๋ช ์ ๋ถ์ฌํ์ฌ ์ธ์คํด์ค๊ฐ AWS ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
ํ๋ฆฟ์ ์์ฑํ ๋ย CreateFleet( )ย ์์ฒญ์์ย InstanceRoleArn์ ์ง์ ํ ์ ์์ต๋๋ค. ์ธ์คํด์ค ์ญํ ARN์ ์ค์ ํ๋ฉด ์ด ํ๋ฆฟ์ ์ธ์คํด์ค์์ ์คํ๋๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์น ์คํฌ๋ฆฝํธ, ์๋ฒ ํ๋ก์ธ์ค ๋ฐ ๋ฐ๋ชฌ(๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค) ๊ฐ์ ์ญํ ์ ์์ํ ์ ์์ต๋๋ค.
AWS Management Console์ IAM ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ญํ ์ ์์ฑํ๊ฑฐ๋ ์ญํ ์ ARN์ ์กฐํํ ์ ์์ต๋๋ค.
AWS ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ก ๋ค์๋ฉด DynamoDB ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ๋ ์ด์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ ๋์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์์ค์ ์ก์ธ์คํ ๋๋ ์ผ๋ฐ์ ์ผ๋ก AWS SDK์ย **DynamoDB_GetItem( )**๊ณผ ๊ฐ์ ํธ์ถ์ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ AWS ๋ฆฌ์์ค์๋ AWS SDK API๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์คํ ์ ์์ต๋๋ค.
AWS ๊ณ์ ์ VPC์ ์๋ EC2 ์ธ์คํด์ค๋ฅผ GameLift ์ธ์คํด์ค์ ํจ๊ป ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ VPC ๊ฐ ํต์ ์ผ๋ก ์ธํด ํผ๋ธ๋ฆญ ์ธํฐ๋ท์ผ๋ก ํต์ ์ด ์ด๋ํฉ๋๋ค. VPC ํผ์ด๋ง์ ์ฌ์ฉํ๋ฉด ํธ๋ํฝ์ด AWS ๋คํธ์ํฌ ๋ด์์ ๋ผ์ฐํ ๋ฉ๋๋ค.
VPC ํผ์ด๋ง ๊ด๊ณ๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค. EC2 ์ธ์คํด์ค๊ฐ ์๋ VPC๋ GameLift๊ฐ ๋ด๋นํ๋ฏ๋ก ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ย **CreateVpcPeeringAuthorization( )**์ ํธ์ถํ์ฌ GameLift ํ๋ฆฟ์ ๋ํ VPC์ VPC ๊ฐ์ ํผ์ด ์ฐ๊ฒฐ์ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๊ธฐ ์ํ ๊ถํ์ ์์ฒญํ๋ ๊ฒ์ ๋๋ค. ย ๊ถํ ๋ถ์ฌ๋ย DeleteVpcPeeringAuthorization( )ย ํธ์ถ์ ํตํด ์ทจ์๋์ง ์๋ ํ 24์๊ฐ ๋์ ์ ํจํฉ๋๋ค.ย ๋ ๋ฒ์งธ ๋จ๊ณ๋ย **CreateVpcPeeringConnection( )**์ ํธ์ถํ์ฌ ํผ์ด๋ง ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
Amazon GameLift ํ๋ฆฟ ๊ด๋ฆฌ์ ์ฌ์ฉํ๋ ๊ณ์ ์ ํฌํจํ์ฌ ์ก์ธ์ค ๊ถํ์ด ์๋ ๋ชจ๋ AWS ๊ณ์ ์ด ์์ ํ VPC์ ํผ์ด๋งํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ฆฌ์ ์ ์๋ VPC์๋ ํผ์ด๋งํ ์ ์์ต๋๋ค.
-
์ธํ๋ผ ๊ด๋ฆฌ ์์คํ
์ธํ๋ผ ๊ด๋ฆฌ ์์คํ
GameLift์์ ์ธํ๋ผ๋ ๊ฒ์ ํธ์คํ ์ ํ์ํ ์ปดํจํ , ์คํ ๋ฆฌ์ง ๋ฐ ๋คํธ์ํน ๋ฆฌ์์ค๋ฅผ ์๋ฏธํฉ๋๋ค. ์ธํ๋ผ๋ Amazon EC2 ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋๋ ์๋น์ค ์ธํธ์ ๋๋ค. GameLift ์์ด ์์ฒด EC2 ์ธ์คํด์ค๋ฅผ ํ ๋นํ๊ณ , ์์ฒด ์ํํธ์จ์ด๋ฅผ ์ค์นํ๊ณ , EC2 Auto Scaling ๊ทธ๋ฃน์ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ GameLift๋ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ ๋ฐ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ๋ฆฟ ๊ด๋ฆฌ, ๊ฒ์์ ๋ง๊ฒ ์กฐ์ ๋ ์๋ ํฌ๊ธฐ ์กฐ์ , ๊ฒ์์์ ์คํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ํน๋ณ ์ค๋น๊ฐ ํฌํจ๋ฉ๋๋ค.
GameLift๋ ๊ฒ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ค์ํ ์ธ์คํด์ค ์ ํ์ ์ ๊ณตํฉ๋๋ค. ๋ฆฌ์ ๋ณ ํ์ฌ ์ด์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋ ์จ๋ผ์ธ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ธํ๋ผ๋ ํ๋ฆฟ์ด๋ผ๊ณ ํ๋ ์ปจํ ์ด๋์ ๋ชจ๋ ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ํ๋ฆฟ์ ๋จ์ผ ์ธ์คํด์ค ์ ํ์ผ๋ก ์ ์๋๋ฉฐ ํ๋ฆฟ ๋ด์ ํฌํจ๋ ๋ชจ๋ ์ธ์คํด์ค๋ ๋์ผํฉ๋๋ค. ํ๋ฆฟ์ ๋จ์ผ ๋ฆฌ์ ์์ ์ ์๋ฉ๋๋ค. ํ๋ฆฟ์ ์ํ ํ์ฅ์ ์ง์ํฉ๋๋ค. ์ฆ, ํ๋ฆฟ์ ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. GameLift ๋์๋ณด๋์์ ํ๋ฆฟ์ ์ธ์คํด์ค ์๋ฅผ ๋ณ๊ฒฝํ์ฌ ํ๋ฆฟ์ ์๋์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
ํ๋ ์ด์ด ์์๋ ๋ณ๊ฒฝ๋๊ธฐ ๋ง๋ จ์ด๋ฏ๋ก ๊ฒ์์ ์ฌ์ฉํ ์ธ์คํด์ค ์๋ฅผ ์ ํํ๊ธฐ๋ ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค.
์ธํ๋ผ ๋ฆฌ์์ค๊ฐ ๋๋ฌด ์ ์ผ๋ฉด ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ํ๋ ์ดํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ฏ๋ก ํ๋ ์ด์ด ๊ฒฝํ์ด ์ข์ง ์์ต๋๋ค.
๋ฆฌ์์ค๊ฐ ๋๋ฌด ๋ง์ผ๋ฉด ์ฌ์ฉ๋์ง ์๋ ์ผ๋ถ ๋ฆฌ์์ค์ ๋ํด ๋น์ฉ์ ์ง๋ถํ๊ฒ ๋๋ฏ๋ก ๋น์ฉ ํจ์จ์ ์ด์ง ์์ต๋๋ค.
๋ ๋์ ํด๊ฒฐ์ฑ ์ ํ๋ ์ด์ด ์์์ ๋ฐ๋ผ ์ธํ๋ผ๋ฅผ ํ์ฅ ๋ฐ ์ถ์ํ๋ ๊ฒ์ ๋๋ค. ๊ฒ์ ์ธ์ ์ฉ๋์ ํ๋ ์ดํ๋ ค๋ ๋ชจ๋ ํ๋ ์ด์ด๋ฅผ ์์ฉํ๊ธฐ์ ์ถฉ๋ถํด์ผ ํฉ๋๋ค. ์คํ์ดํฌ์ ๊ฐ์ด ์ฆ๊ฐํ๋ ์์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ผ๋ถ ์ ํด ์ฉ๋์ ๋ฐ๋ก ์ค์ ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์จ๋๋งจ๋๋ก ํ๋ ์ด์ด๋ฅผ ์์ฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์ธ์ ์ ๋ฒํผ๋ฅผ ์ค๋นํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ๊ฒ์ ์ธ์ ์๋ ํ์ฌ ์ฌ์ฉ ์ค์ธ ๊ฒ์ ์ธ์ ์๋ณด๋ค ์ฝ๊ฐ ๋์์ผ ํฉ๋๋ค. ํ๋ฆฟ์ ์ธ์คํด์ค ์๋ฅผ ๋๋ ค ์ ์ฒด ์ฉ๋์ด ์ฆ๊ฐํ๋๋ผ๋ ๋์ผํ ๋น์จ์ ๊ฒ์ ์ธ์ ๋ฒํผ๋ฅผ ์์ฝํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ๋ฆฟ์ ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๋ ์กฐ์ ์ด๋ฒคํธ์๋ ์ ์ธ์คํด์ค๊ฐ ์ค๋น๋๊ณ ๊ฒ์ ์๋ฒ๊ฐ ์ค๋น๋๋ฉฐ ๊ฒ์ ์ธ์ ์ด ์์๋ ๋๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ฐ๋ผ์ ๊ฒ์ ์ธ์ ์ ๋ฒํผ ๋น์จ์ ์กฐ์ ์ด๋ฒคํธ ์ค ํ๋ ์ด์ด ์์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์ ์ถฉ๋ถํด์ผ ํฉ๋๋ค.
๋์ ์ถ์ ์ ํตํ ํ๋ฆฟ ์๋ ์กฐ์ ์ผ๋ก ์ด ์๋ฃจ์ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
๋์ ์ถ์ ์ ํ์์ ๋ฐ๋ผ ์๋ฒ ์ฉ๋์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์ธ์ ์ ์ง์ ํ ๋ชฉํ ๋น์จ๋ก ์ ์งํฉ๋๋ค.
๋์ ์ถ์ ์ย โ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์ธ์ ๋น์จโย ์งํ๋ฅผย ์ฌ์ฉํฉ๋๋ค. GameLift๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด ๊ฒ์ ์ธ์ ๊ณผ ์ฌ์ฉ ์ค์ธ ๊ฒ์ ์ธ์ ์๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ํ๋ฆฟ์์ ์ธ์คํด์ค๋ฅผ ์ถ๊ฐ ๋๋ ์ ๊ฑฐํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์ธ์ ์ ์ผ์ ๋น์จ์ ์ ์งํฉ๋๋ค.
์๋ ์กฐ์ ์ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ ์ธ์คํด์ค๋ฅผ ์๋์ผ๋ก ํ ๋นํ์ฌ ์์ ์ฑ์ ์ ์งํฉ๋๋ค.
๋์ ์ถ์ ๊ท์น
์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์ธ์ ๋น์จ์ ๋ํ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ํ๋ฆฟ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ย ์์ ํฌ๊ธฐ์์ ์๋ต์ฑ์ ๋์ด๋ ค๋ฉด ๋ ํฐ ๋น์จ์ด ํ์ํฉ๋๋ค. ํ๋ฆฟ์ด ํฌ๋ฉด ์ ๋์ ์ธ ์ค์ ๊ฒ์ ์ธ์ ์ด ๋ ๋ง์ด ํ์ํ์ง๋ง ์ด ์ฉ๋์ ๋น์จ์ ์์์ง๋๋ค.
์๋ฅผ ๋ค์ด
์ธ์คํด์ค 2๊ฐ์ ์ธ์คํด์ค๋น ๊ฒ์ ์๋ฒ 2๊ฐ๊ฐ ์๋ ๊ฐ๋ฐ ํ๋ฆฟ์๋ 4๊ฐ์ ์ธ์ ์ด ์์ต๋๋ค.
ํ๋์ ๊ฒ์ ์ธ์ ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์ธ์ ์ ๋น์จ์ด 0%๋ณด๋ค ํฌ๊ณ 25%๋ณด๋ค ์์์ผ ํฉ๋๋ค.
2๊ฐ์ ๊ฒ์ ์ธ์ ์ ์ฌ์ฉํ๋ ค๋ฉด 26%๊ฐ ํ์ํฉ๋๋ค.
์ธ์คํด์ค๊ฐ 1,000๊ฐ์ด๊ณ ์ธ์คํด์ค๋น ๊ฒ์ ์๋ฒ๊ฐ 2๊ฐ์ธ ํ๋ก๋์ ํ๋ฆฟ์๋ 2,000๊ฐ์ ์ธ์ ์ด ์์ต๋๋ค.
์๊ท๋ชจ ํ๋ฆฟ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ธ์ ์ 25%๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด 500๊ฐ ์ธ์ ์ ์ฌ์ฉํด์ผ ํ๋๋ฐ ์ด๋ ๋๋ฌด ๋ง์ต๋๋ค.
5% ๋๋ ์ฝ 100๊ฐ ์ธ์ ์ด ๋ ์ ์ ํฉ๋๋ค.
์ค์ ๋ก ๊ฒ์ ๊ฐ๋ฐ์๋ ๋ ๋์ โ์์ ํโ ๋น์จ/์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์ธ์ ์์์ ์์ํ ๋ค์ ๊ฒฝํ์ ๋ฐ๋ผ ์ด ๊ฐ์ ์ค์ ๋๋ค.
GameLift๋ ํ์ฌ ์์ฝ ์ธ์คํด์ค๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ๋๊ธฐ ์์๋ ๋๋ถ๋ถ์ ๊ฒ์์์ ์ต๋ ์์์ 10%๊ฐ ๋ ์ ์์ต๋๋ค. ๋งค์ผ ์ธ์คํด์ค๋ฅผ ์ผ๊ณ ๋๋ ๊ฒฝ์ฐ ์์ฝ ์ธ์คํด์ค๋ฅผ ์คํํ๋ ๊ฒ์ด ์ ์ ํ์ง ์์ต๋๋ค. 1๋ ๋๋ 3๋ ๊ณ์ฝ ๊ธฐ๊ฐ์ ์์๋ ์์ธกํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
GameLift๋ ์คํ ์ธ์คํด์ค๋ฅผ ์ง์ํฉ๋๋ค.
์คํ ์ธ์คํด์ค๋ ์ ์ฌํ ์จ ๋๋งจ๋ ์ธ์คํด์ค์ ๋นํด ๋ฎ์ ์๊ธ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ํ์ฌ ๊ฐ๊ฒฉ์ ์์ฅ ์ ์ฐฐ ์์คํ ์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. ์จ๋๋งจ๋๋ก ๊ตฌ๋งคํ ๊ฒฝ์ฐ ๋์ผํ ์ธ์คํด์ค๋ณด๋ค 70% ์ ๋ ดํ ์ ์์ต๋๋ค. ์คํ ํ๋ฆฟ์ ์ฌ์ฉํ ๊ฒฝ์ฐ GameLift๋ ํ๋ ์ด์ด ์๊ฐ๋น ๋น์ฉ์ผ๋ก ์ธก์ ํ ๋ ํ์ฌ ์ ๊ณต๋๋ ์๋ฃจ์ ์ค ๊ฐ์ฅ ๋น์ฉ ํจ์จ์ ์ธ ์๋ฃจ์ ์ด ๋ฉ๋๋ค.
๊ฒ์ ์ธ์ ์๋ ์คํ ์ธ์คํด์ค๊ฐ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ๊ฒ์ ์ธ์ ์ ๋งค๋ฒ ์๋ฃ๋ ๋๊น์ง ์คํ๋์ด์ผ ํฉ๋๋ค. ์คํ ์ธ์คํด์ค๋ ๊ฒจ์ฐ 2๋ถ ์ ์๋ฆผ์ผ๋ก ํ์๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋ก GameLift์๋ ์คํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ FleetIQ๊ฐ ๋์ ๋์์ต๋๋ค. ย FleetIQ ๋ ์คํ ์ธ์คํด์ค ์ค๋จ ๊ฐ๋ฅ์ฑ์ ์ธก์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์คํ ์ธ์คํด์ค ํ๋ฆฟ์ด ์ค๋จ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ์๋ ๊ฒ์์ ๋ฐฐ์นํ ์ ์์ต๋๋ค. FleetIQ ๋ ์คํ ํ๋ฆฟ์ ํ๊ฐํ๊ณ ํฅํ ๋ช ์๊ฐ ๋ด์ ์ค๋จ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ํ๋จ๋๋ฉด ํ๋ฆฟ์ ์ ์ง ๋ถ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ํ์ํฉ๋๋ค. ํ๋ฆฟ์์ ์คํ ์ค์ธ ๋ชจ๋ ๊ฒ์์ ์๋ฃ๋ ๋๊น์ง ๊ณ์ ์คํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ํ๋ฆฟ์์๋ ์๋ก์ด ๊ฒ์์ด ์์๋์ง ์์ต๋๋ค. ์ด ์์๋ ์จ๋๋งจ๋ ๋์ฒด ํ๋ฆฟ์ ์์ฉ๋ฉ๋๋ค. ๋์ค์ FleetIQ ๊ฐ ์คํ ํ๋ฆฟ์ด ๋ค์ ์คํ ๊ฐ๋ฅํ๋ค๊ณ ํ๋จํ๋ฉด ๊ฐ์ฅ ์ ๋ ดํ ํ๋ฆฟ์์ ์๋ก์ด ๊ฒ์์ด ์์๋ฉ๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋๊ธฐ์ด์ ํ๋ ์ด์ด์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฆฌ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ฆฟ ์ค ๊ฐ์ฅ ์ ๋ ดํ ํ๋ฆฟ์ ๊ฒฐ์ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์คํ ํ๋ฆฟ์ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ์ง ์๊ณ ํญ์ ๋์ผํ ์ธ์คํด์ค ์ ํ์ ์จ๋๋งจ๋ ํ๋ฆฟ๊ณผ ํ์ด๋งํฉ๋๋ค.
์ ํํ ์ธ์คํด์ค ์ ํ์ ์๋ ํฌ๊ธฐ ์กฐ์ ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
ํ๋ฆฟ A์๋ ๊ฐ๊ฐ 5๊ฐ์ ๊ฒ์ ์๋ฒ๋ฅผ ํธ์คํ ํ ์ ์๋ ์ํ ์ธ์คํด์ค ์ ํ์ด 6๊ฐ ์์ผ๋ฉฐ, ์ด 30๋์ ๊ฒ์ ์๋ฒ๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค.
ํ๋ฆฟ B์๋ ๊ฐ๊ฐ 10๊ฐ์ ๊ฒ์ ์๋ฒ๋ฅผ ํธ์คํ ํ ์ ์๋ ๋ํ ์ธ์คํด์ค ์ ํ์ด 3๊ฐ ์์ผ๋ฏ๋ก 30๋์ ๊ฒ์ ์๋ฒ๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค.
ํ๋ฆฟ A์ ํ๋ฆฟ B์ ํ ๊ฐ์ง ์ฐจ์ด์ ์ ์ธ๋ถํ ์์ค์ ๋๋ค. ์ธ์คํด์ค๊ฐ ํ๋ฆฟ B์ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋๋ฉด 10๊ฐ์ ๊ฒ์ ์ธ์ ์ด ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
๋น์ฉ ํจ์จ์ ์ธ ํ๋ฆฟ ์ค๊ณ๋ ์๋ํ ๋ฆฌ์ ์์ ์ธ์คํด์ค ์ ํ์ ํ์ฌ ๊ฐ๊ฒฉ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
๋ค์์ ์ธ์คํด์ค ์ ํ์ ์ ํํ๋ ์ธ ๊ฐ์ง ์ฃผ์ ์์น์ ๋๋ค.
์์น 1
์ผ๋ฐ์ ์ผ๋ก ์ธ์คํด์ค ์ ํ์ ๋๋ฆฌ๋ฉด ๊ท๋ชจ์ ๊ฒฝ์ ๊ฐ ์คํ๋ฉ๋๋ค. ์ธ์คํด์ค ๊ฐ๊ฒฉ์ด ๋ ๋ฐฐ์ธ ๊ฒฝ์ฐ ๊ฒ์ ์๋ฒ ์๋ ๋ ๋ฐฐ๋ฅผ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ ์ธ์คํด์ค ์ ํ์ด ๊ฒ์ ์๋ฒ 5๊ฐ๋ฅผ ์ ๊ณตํ ๋ ๋น์ฉ์ด ๋ ๋ฐฐ์ธ ๋ค๋ฅธ ์ธ์คํด์ค ์ ํ์ 11๊ฐ์ ๊ฒ์ ์๋ฒ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์์น 2
์คํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ๋์ ์ค๋จ๋ฅ ์ ๋ฎ์ถ๋ ์ธ์คํด์ค ์ ํ์ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ์ธ์คํด์ค ์ ํ์ ๊ฑฐ์ ํญ์ c4.large์ ๋๋ค. 90% ์ด์์ ๊ณ ๊ฐ์ด ์คํ ํ๋ฆฟ์ ์ด ์ธ์คํด์ค ์ ํ์ ์ฌ์ฉํฉ๋๋ค.
๋จ์ผ ๋ฆฌ์ ์์ ์ฌ๋ฌ ์คํ ํ๋ฆฟ์ ์ฌ์ฉํ ๊ณํ์ด๋ผ๋ฉด ์๋ก ๋ค๋ฅธ ์ธ์คํด์ค ์ ํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ ์ธ์คํด์ค ์ ํ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ธ์คํด์ค ์ ํ์ ์ฌ์ฉํ ์ ์์ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์น 3
์คํ ์ธ์คํด์ค ์ ํ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์จ๋๋งจ๋ ์ธ์คํด์ค์ ํฌ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ์ง์ ํ ์ ์์ต๋๋ค.
ํนํ, ์ดํ ๋น์ฉ ์ต์ ํ ๋จ๊ณ์์ ์ฌ์ฉ ์ค์ธ ์ธ์คํด์ค ์ ํ์ ์ ํฉํ๊ฒ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ฅผ ์ต์ ํํฉ๋๋ค.
-
์ธ์ ๊ด๋ฆฌ ์์คํ
์ธ์ ๊ด๋ฆฌ ์์คํ
GameLift์์ ์ธ์ ์ ์๋ก ๋ค๋ฅด์ง๋ง ๊ด๋ จ์ด ์๋ ๋ ๊ฐ์ง ๊ฐ๋ ์ ๋ํ๋ ๋๋ค. ๊ฒ์ ์ธ์ ์ ๊ฒ์ ์๋ฒ์์ ์คํ๋๋ ๊ฒ์ ์๋ฎฌ๋ ์ด์ ์ฝ๋์ ๋๋ค. ๊ฒ์ ์ธ์ ๊ด๋ฆฌ๋ ๊ฒ์์ ์ค๋น, ์์, ์ด์ ๋ฐ ์ข ๋ฃํ๋ ๊ณผ์ ์ ๋๋ค. ๋ ๋ค๋ฅธ ์ข ๋ฅ์ ์ธ์ ์ ํ๋ ์ด์ด ์ธ์ ์ ๋๋ค. ํ๋ ์ด์ด ์ธ์ ์ ๊ฒ์์ ํ๋ ์ดํ๊ธฐ ์ํ ์์ฒญ์ ๋๋ค. ํ๋ ์ด์ด ์ธ์ ์ ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ์์ฒญํ ๋ ์์๋๊ณ , ํ๋ ์ด์ด๊ฐ ๊ฒ์ ์ธ์ ์ ์ฐ๊ฒฐ๋ ๋ ์๋ฃ๋ฉ๋๋ค.
๊ฒ์ ์ธ์ ๊ด๋ฆฌ
์ธ์ ๊ด๋ฆฌ์์ ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋๊ธฐ์ด์ดย **CreateGameSession( )**์ ํธ์ถํฉ๋๋ค. ์ด ํธ์ถ์ ์ ์ด๋ฅผ ๋๊ธฐ๋ ๊ฒ์ ๋๋ค.
์ธ์ ๊ด๋ฆฌ๋ ํ๋ฆฟ์ ์ธํ๋ผ์ ๊ฒ์ ์ธ์ ์ ๋ฐฐ์นํฉ๋๋ค. ์ธ์ ๊ด๋ฆฌ๋ ๊ฐ์ฅ ์ต์ ์ ํ๋ฆฟ ์ธ์คํด์ค์ ๊ฒ์ ์ธ์ ์ ๋ฐฐ์นํ๋๋ก ์ ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๋ฆฟ์ ์ถ์ํ ๋ย NewGameSessionProtectionPolicy๊ฐย FullProtection์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ ํ์ฌ ์คํ ์ค์ธ ๊ฒ์์ด ์๋ ์ธ์คํด์ค์์๋ง ์ถ์๊ฐ ์ํ๋ฉ๋๋ค.
๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ์์๋๋ฉด ๊ฒ์ ์ธ์ ์ ํธ์คํ ์ ์ค๋นํ๋ ์ค์ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ํด ์ํ๋ก ์ ํ๋์ด ๊ฒ์ ์ธ์ ์ ์์์ ์๋ฆฌ๋ GameLift์ ์๋ฆผ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
๊ฒ์ ์ธ์ ์ด GameLift์ ์์ฑ๋ ํ์๋ ์ด๋ป๊ฒ ๋ ๊น์?
GameLift๋ ์ฝ๋ฐฑ ํจ์ย **onStartGameSession( )**์ ๊ตฌ๋ํ๊ณ ๊ฒ์ ์๋ฒ ์ฝ๋์ย GameSessionย ๊ฐ์ฒด๋ฅผ ์ ๋ฌํฉ๋๋ค.ย GameSessionย ๊ฐ์ฒด์๋ย GameSessionID, ํ๋ ์ด์ด์ ์ต๋ ์ ๋ฐ ํค-๊ฐ ํ์ด๋ก ์ ์ฅ๋ ๊ฒ์ ์์ฑ ๋ชฉ๋ก์ด ํฌํจ๋ฉ๋๋ค. ์์ฑ์ ์๋ก๋ ๊ฒ์ ๋ชจ๋, ๋ ๋ฒจ ๋ฐ ๋งต์ด ์์ต๋๋ค. ๊ฒ์ ์๋ฒ ์ฝ๋๋ ์์ฒญ๋ ๊ฒ์ ์ ํ์ ํธ์คํ ํ ์ค๋น๋ฅผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋งต ๋๋ ๋ ๋ฒจ์ ๋ก๋ํฉ๋๋ค. ๋ํ ๊ฒ์์์ ํ๋ ์ด์ด์ ์ต๋ ์์ ๋ํ ํ๋ ์ด์ด ์ฌ๋กฏ์ ์ค๋นํด์ผ ํฉ๋๋ค. ์ค๋น๊ฐ ์๋ฃ๋๋ฉด ๊ฒ์ ์๋ฒ๋ย **ActivateGameSession( )**์ ํธ์ถํ์ฌ ๊ฒ์ ์ธ์ ์ํ๋ฅผย ACTIVE๋ก ๋ณ๊ฒฝํฉ๋๋ค.
GameLift์์ ๊ฒ์์ ์ผ์ ๊ธฐ๊ฐ ์คํ๋ ๋ค์ ์ข ๋ฃ๋ฉ๋๋ค. ์ด ์๋ช ์ ๊ฒ์ ์ธ์ ์ด๋ผ๊ณ ํฉ๋๋ค. ๊ฒ์ ์ธ์ ์ ์๋ ๋ฐฉ์์ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ฅผ ์ฝ๋ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๊ฒ์ ์ธ์ ์ ์ ์์ ์ผ๋ก ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง์ ๋๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๊ฒ์ ์๋ฒ ์ฝ๋์์ GameLift API ํธ์ถ๋ก ๊ตฌํ๋ฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์์๋ ๊ฒ์ ์๋ฒ๋ฅผ ๊ณ์ ์คํํ๊ณ ๊ฒ์ ์ธ์ ์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฆ, ๊ฒ์์ด ์๋ฃ๋๋ฉด ์ฝ๋๊ฐ ์ ๋ฆฌ๋ฅผ ์ํํ๊ณ ์ด์ ๊ฒ์ ์ธ์ ์ ์ ๋ฆฌํ ํ ์ ๊ฒ์์ ์์ํ ์ค๋น๊ฐ ๋์์์ GameLift์ ์๋ฆฝ๋๋ค.
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๊ฒ์ ์ธ์ ์์ API๋ฅผ ํตํด GameLift์ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋๋ก ์ง์ํ๋ ๊ฒ์ ๋๋ค. ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. GameLift๋ ๋ ์ด์ ํ์ํ ์์ ๊ฒ์ ์๋ฒ๊ฐ ์์์ ๊ฐ์งํฉ๋๋ค. ๋ฐ๋ผ์ ๋น๋์ ๋์ฒด ๊ฒ์ ์๋ฒ๋ฅผ ์ ๊ฒ์ ์๋ฒ๋ก ๋ง๋ญ๋๋ค. ์ด๋ ๊ฒ ํด๋ ์๋ก์ด ๊ฒ์ ์ธ์ ์ด ์ฆ์ ์์ฑ๋์ง๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฝ๋์ ์์ฒญ์ด ์์ ๋๋ฉด ๊ฒ์ ์ธ์ ์ ์์ํ ์ค๋น๊ฐ ๋ ๊ฒ์ ์๋ฒ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ด ๋ ๋ฐฉ๋ฒ์ ๊ฒ์ ์๋ฃจ์ ์ ์๋ก ๋ค๋ฅธ ํน์ง์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ๋ ๋๊ท๋ชจ ๊ฒ์ ์์ฐ ๋ฐ ์ฝ๋๋ฅผ ์ ๋ก๋ํ๋ ๊ฒ๋ณด๋ค ์ด์ ๊ฒ์์ ์ ๋ฆฌํ๋ ๊ฒ์ด ๋ ๋น ๋ฅธ ๊ฒฝ์ฐ ๊ฒ์ ์ธ์ ์ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฒ์์ ๋ ๋น ๋ฅด๊ฒ ์ ๊ณตํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฒ์ ์๋ฒ๋ฅผ ์ฌํ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์์ ๊ฐ์ ์ฅ๊ธฐ์ ์ธ ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ค๋ ์ด์ ์ด ์์ต๋๋ค. ๋งค ๊ฒ์์์ ์๋ก์ด ๊ฒ์ ์๋ฒ๋ฅผ ์์ํ ๋ ๋์๊ฐ ์ฌ๊ฐํด์ ธ ๊ฒ์ํ๋ ์ด๋ฅผ ๋ฐฉํดํ ๋งํผ ๊ธธ๊ฒ ๋ฐ์ํ์ง ์์ ์๋ ์์ต๋๋ค.
๋ฐ๋ผ์ ํน์ ๋ฐฉ๋ฒ์ด ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ณด๋ค ์ฑ๋ฅ ์ด์ ์ด ์๋์ง ํ์ธํ๋ ์คํ์ ์ํํด์ผ ํ ์ ์์ต๋๋ค.
๊ฒ์ ์ธ์ ๋ฐ ๊ฒ์ ์๋ฒ๋ ์ฝ๋ ๋๋ GameLift๋ฅผ ํตํด ์ข ๋ฃ๋ ์ ์์ต๋๋ค.
์ฝ๋๋ก ๊ฒ์ ์ธ์ ์ ์ข ๋ฃํ๋ ๊ฒฝ์ฐ ๋ง์ง๋ง ์์ ์ย **TerminateGameSession( )**์ ํธ์ถํ๋ ๊ฒ์ ๋๋ค ย ์ด ํจ์๋ ๊ฒ์ ์ธ์ ์ด ์ข ๋ฃ๋์์์ GameLift์ ์๋ฆฌ๊ณ ์ํ๋ฅผย TERMINATED๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋ํ ๊ฒ์ ์๋ฒ๊ฐ ์๋ก์ด ๊ฒ์ ์ธ์ ์ ์์ํ ์ค๋น๊ฐ ๋์์์ GameLift์ ์๋ฆฝ๋๋ค.
**ProcessEnding( )**์ ํธ์ถํ๋ฉด ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค์ ๊ฒ์ ์ธ์ ์ด ์ข ๋ฃ๋ฉ๋๋ค. GameLift๊ฐ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ ์๋ ์์ต๋๋ค. GameLift๋ ๋น์ ์ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ๋ฐ๊ฒฌ๋์๊ฑฐ๋, ์คํ ์ธ์คํด์ค๊ฐ ์ค๋จ๋์๊ฑฐ๋, ์ธ์คํด์ค ์ฉ๋์ด ์ถ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ํํฉ๋๋ค. ์ด๋ฌํ ์์ ์ย onProcessTerminate( )ย ์ฝ๋ฐฑ ํจ์๋ฅผ ๊ตฌ๋ํฉ๋๋ค.
์ ์ ์ข ๋ฃ ์ฝ๋๋ย **GetTerminationTime( )**์ ํธ์ถํ ์ ์์ต๋๋ค. ์คํ ์ธ์คํด์ค๊ฐ ์ค๋จ๋ ๊ฒฝ์ฐย **GetTerminationTime( )**์ ์๊ฐ๋ง ๋ฐํํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐย **onGameSessionTerminate( )**๊ฐ ํธ์ถ๋ ๋ ์ต๋ 30์ด๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ธ ์ ์์ต๋๋ค.
ํ๋ ์ด์ด ์ธ์ ๊ด๋ฆฌ
ํ๋ ์ด์ด ์ธ์ ์ ๊ฒ์์ ํ๋ ์ดํ๋ ค๋ ํ๋ ์ด์ด์ ์์ฒญ์ ๋๋ค.
์ด ์์ฒญ์ ํ๋ ์ด์ด๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ํ๋ ์ด์ด ID์ ํจ๊ป ๊ฒ์ ๋ฐฑ์๋๋ก ์ ์ก๋ฉ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ย **CreatePlayerSession( )**์ ํธ์ถํ์ฌ ํ๋ ์ด์ดย ์ธ์ ย ID(ํ๋ ์ด์ด ์ธ์ ํ ํฐ์ด๋ผ๊ณ ๋ ํจ)๋ฅผ ์์ฑํฉ๋๋ค. ํ๋ ์ด์ด ์ธ์ ํ ํฐ์ ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ์ฐ๊ฒฐํ ์ ์๋๋ก IP ์ฃผ์ ๋ฐ ํฌํธ ๋ฒํธ์ ํจ๊ป ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ก ์ ๋ฌ๋ฉ๋๋ค.
ํธ๋์ ฐ์ดํฌ ๋ฐ ์ธ์ฆ์ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ๊ฒ์ ์ธ์ ์ฌ์ด์์ ๋ฐ์ํฉ๋๋ค.
์ฌ๋กฏ์ ํ๋ ์ด์ด๊ฐ ์ ์ ํ ์ ์๋ ๊ฒ์์ ์๋ฆฌ์ ๋๋ค. ์ฌ๋กฏ์ ํธ๋์ ฐ์ดํฌ ์ค ์ํ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ์ธ์ ๊ฐ์ฒด์ ๋๋ค. ํ๋ ์ด์ด 4๋ช ์ด ํ์ํ ๊ฒ์์๋ 4๊ฐ์ ์ฌ๋กฏ์ด ํฌํจ๋ฉ๋๋ค. ์ต๋ ํ๋ ์ด์ด ์๊ฐ 8๋ช ์ธ ๊ฒ์์๋ 8๊ฐ์ ํ๋ ์ด์ด ์ฌ๋กฏ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐฐํ๋ก์ ๊ฒ์์๋ 100๊ฐ์ ์ฌ๋กฏ์ด ์์ ์ ์์ต๋๋ค.
GameLift๊ฐ ํ๋ ์ด์ด๋ฅผ ๊ฒ์ ์ธ์ ์ ์ฐ๊ฒฐํ ์ค๋น๊ฐ ๋๋ฉด ๊ฒ์ ์ธ์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ ์ด์ด ์ฌ๋กฏ์ด ์๋์ง ๋ฌป์ต๋๋ค. ๊ฒ์ ์ธ์ ์ ์๋ต์ด ๊ธ์ ์ ์ธ ๊ฒฝ์ฐ GameLift๋ ์์ฝ์ ์์ฒญํฉ๋๋ค. ๊ฒ์ ์ธ์ ์ ํ๋ ์ด์ด์ ๊ฒ์ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ณ ์ ํ ํฐ์ ๋ฐํํฉ๋๋ค. ๊ฒ์ ์ธ์ ์ ํ์ด๋จธ๋ ์ค์ ํฉ๋๋ค. ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋ ๋๊น์ง ํ๋ ์ด์ด๊ฐ ์ฐ๊ฒฐํ์ฌ ์์ฝ์ ๊ฐ์ ธ๊ฐ์ง ์์ผ๋ฉด ํ๋ ์ด์ด ์ฌ๋กฏ ์์ฝ์ด ๋ง๋ฃ๋๊ณ ์ฌ๋กฏ์ ๋ค์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
ํ๋ ์ด์ด ์ธ์ ํ ํฐ์ ๊ฒ์์ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ IP ์ฃผ์ ๋ฐ ํฌํธ ๋ฒํธ์ ํจ๊ป ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ก ์ ๋ฌ๋ฉ๋๋ค.
ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๋ ๊ฒ์ ์ธ์ ์ ์ง์ ์ฐ๊ฒฐํ์ฌ ํ๋ ์ด์ด ์ธ์ ํ ํฐ์ ์ ๋ฌํฉ๋๋ค.
๊ฒ์ ์๋ฒ๋ ํ๋ ์ด์ด ์ธ์ ํ ํฐ์ผ๋กย **AcceptPlayerSession( )**์ ํธ์ถํ์ฌ ํ๋ ์ด์ด์๊ฒ ํ๋ ์ด ๊ถํ์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๊ฒ์ ์ธ์ ์์ ํ๋ ์ด์ด ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ์ด ๊ฐ์ง๋๋ฉด ์ฝ๋๊ฐ ํ๋ ์ด์ด ID๋กย **RemovePlayerSession( )**์ ํธ์ถํ์ฌ GameLift์ ์๋ฆฌ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ๋กฏ ์๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
-
๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ
๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ
๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๊ฒ์์ ํธ์คํ ํ ๋ฆฌ์ ์ ์ ํํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ณผ์ ์์๋ ํ๋ ์ด์ด๊ฐ ๋ฆฌ์ ์ ์ฐ๊ฒฐํ๋ ๋ฐ ์์๋๋ ํ๊ท ์ง์ฐ, ๊ฒ์ ์๋ฒ๋ฅผ ํตํด ์ ๊ณต๋๋ ํ๋ฆฟ์ ๊ฐ์ฉ์ฑ ๋ฐ ๊ฐ์ฅ ์ ๋ ดํ ๋น์ฉ์ ํ๋ฆฟ ์ ํ ๋ฑ ๋ค์์ ์์ธ์ด ๊ณ ๋ ค๋ ์ ์์ต๋๋ค.
ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด๋ ํ๋ ์ด์ด์ ์์น์ GameLift ์๋ํฌ์ธํธ ๊ฐ์ ์ง์ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํด์ผ ํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก๋ ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด๊ฐ GameLift ์๋ํฌ์ธํธ์ ๊ฒ์ ๋ฐฑ์๋์์ ๋ชฉ๋ก์ ์์ฒญํ๋ ๊ฒ์ ๋๋ค.
ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด๋ ์ด ์์ ์ ์ํํ๊ธฐ ์ํด ICMP 8(ping)์ ๊ฐ ์๋ํฌ์ธํธ๋ก ์ ์กํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ง์ฐ(๋ฐ๋ฆฌ์ด)์ด ๋ฐํ๋ฉ๋๋ค. ์ด ๊ฐ์ ๊ฐ GameLift ํ๋ฆฟ์ ๋ํ ํ๋ ์ด์ด ์ง์ฐ์ ๋ํ๋ ๋๋ค.
ping์ ์์ฃผ ์คํํ๋ ๊ฒ์ ํนํ ๊ฐ๋จํ ๊ฒ์์ ๊ฒฝ์ฐ ๋นํจ์จ์ ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๊ณ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ํ๊ท ์ ์ ๊ณตํ์ฌ ํ์ฌ ๋ฐ ์ผ๋ฐ ์กฐ๊ฑด์ ๋ชจ๋ ๋ํ๋ด๋ ์ง์ฐ์ ๋ณด๊ณ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํ๋ ์ด ์ค์ ํ ์๊ฐ์ ํ ๋ฒ pingํ๋ ๊ฒ์ด ๋ ์ ์์ต๋๋ค. ย ๊ทธ๋ฐ ๋ค์ ์ต๊ทผ 5๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ(์ฐ์์ ์ด์ง ์์ ์ ์๋ ๊ฒ์ํ๋ ์ด ์ค ์ต๊ทผ 5์๊ฐ)๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ท ์ ๊ณ์ฐํฉ๋๋ค. 7์ผ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์บ์ ๋ฐ ์ ์งํ๊ณ 7์ผ ํ์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ํ๊ธฐํฉ๋๋ค.
GameLift ๋ฆฌ์ ์๋ํฌ์ธํธ๋
https://docs.aws.amazon.com/general/latest/gr/rande.html#gamelift_region
์ ๊ฒ์๋ฉ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ ๊ฐ๋ณ ํ๋ ์ด์ด ์ง์ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ ๋ฌํฉ๋๋ค.
๋งค์น๋ฉ์ด์ปค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ง์ฐ ๋ฐ์ดํฐ๋ย StartMatchmaking( )ย ์์ฒญ์ผ๋ก ์ ์ถ๋ฉ๋๋ค. ๋งค์น๋ฉ์ด์ปค๋ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ณ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋๊ธฐ์ด์ ์ ๋ฌํฉ๋๋ค.
๋งค์น๋ฉ์ด์ปค๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐย StartGameSessionPlacement( ) ์์ฒญ์ผ๋ก ๊ฒ์ ์ธ์ ๋ฐฐ์นย ๋๊ธฐ์ด์ ์ง์ ์์ฒญ๋ฉ๋๋ค.
ํ๋ฆฟ ์ ํ์์ ๋ชฉํ๋ ๋งค์น ํ๊ท ์ง์ฐ์ด ๊ฐ์ฅ ์งง์ ๋ฆฌ์ ์ ์ ํํ๋ ๊ฒ์ ๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ ์ ๊ฐ ํ๋ ์ด์ด์๊ฒ ์ ๊ณต๋ ๋ฐ์ดํฐ์ ํ๊ท ์ ๊ณ์ฐํ์ฌ ๊ฒ์ ์ธ์ ์ ํ๊ท ์ง์ฐ์ ๊ณ์ฐํฉ๋๋ค.
ํ๊ท ์ด ๊ฐ์ฅ ๋ฎ์ ์์ญ์ด ์ ํ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด ๋ฆฌ์ ์๋ ์ฌ๋ฌ ๊ฐ์ ํ๋ฆฟ์ด ํฌํจ๋ฉ๋๋ค. ํ๋ ์ด์์ ์คํ ํ๋ฆฟ๊ณผ ์ด๋ฅผ ๋ฐฑ์ ํ๋ ์จ๋๋งจ๋ ํ๋ฆฟ์ด ํฌํจ๋ฉ๋๋ค.
ํด๋น ๋ฆฌ์ ์์ ๋น์ฉ์ด ๊ฐ์ฅ ๋ฎ์ ํ๋ฆฟ์ด ์ ํ๋ฉ๋๋ค. ๊ฐ์ฉ์ฑ์ด ์๋ ํ๋ฆฟ์ ๋ฌด์๋ฉ๋๋ค. ์ฉ๋์ ๋๋ฌํ๊ฑฐ๋, ์คํ ๋ถ๊ฐ๋ฅํ ์คํ ํ๋ฆฟ์ด๊ฑฐ๋, ์ฅ์ ๋ก ์ธํด ํ๋ฆฟ์ ์ฐ๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ ํ๋ฆฟ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ฆฟ์ ์ํ๋ GameLift๊ฐ ์ ํํ ์์ ๊ณผ ๊ฒ์ ์ธ์ ์ ์์ํ๊ธฐ ์ ์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ํ๋ฆฟ์ด ์ ํ๋๋ฉด GameLift๊ฐ ๊ฒ์์ ์ธ์ ์ ์์ฑํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์คํจํ๋ฉด ๋ค์ ์ต์์ ์ต์ ์ผ๋ก ์ด๋ํ์ฌ ๋ค์ ์๋ํฉ๋๋ค.
ํ์๋ ์์์ ๊ฒ์ ์ธ์ 1์ ๋ฆฌ์ A์ ๊ทผ์ฒ์ ํ๋ฆฟ A์ ์ฐ๊ฒฐ๋๊ณ ๊ฒ์ ์ธ์ 2๋ ์ธ๊ทผ ๋ฆฌ์ B์ ํ๋ฆฟ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฆฌ์ B์๋ ํ๋ฆฟ์ด ์ฌ๋ฌ ๊ฐ ์์ผ๋ฏ๋ก ๊ฐ์ฅ ๋น์ฉ์ด ์ ๋ ดํ ํ๋ฆฟ์ด ์ ํ๋ฉ๋๋ค. ์ด ์์์ B2๋ ์คํ ํ๋ฆฟ์ ๋๋ค. ๋ฆฌ์ ์๋ B2์ B3์ด๋ผ๋ 2๊ฐ์ ์คํ ํ๋ฆฟ์ด ์์ต๋๋ค. ๊ฐ์ฅ ๋น์ฉ์ด ์ ๋ ดํ ํ๋ฆฟ์ธ B2๊ฐ ์ ํ๋ฉ๋๋ค.
ํ๋ฆฟ์ ๋๋๋ก ๊ธฐ์ฝ์์ด ๊ฐ์ฉ์ฑ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
๊ฐ๋ฐ์๋ ํ๋ ์ด์ด ์ง์ฐ ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ฒฝ์ฐ ํ๋ฆฟ์ ํ์ฅํ ์๊ฐ์ ์ฃผ๋ ๋๊ธฐ ๊ธฐ๊ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋๊ธฐ ๊ธฐ๊ฐ์ ์ ์ฉํ๋ฉด ํ๋ ์ด์ด ์ง์ฐ์ด ์ผ์ ๊ธฐ๊ฐ์ ์ด๊ณผํ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ฉ ๋ฆฌ์ ์ ๊ฒ์ ์ธ์ ์ ๋ฐฐ์นํ์ง ์๊ณ ๋ ๊ฐ๊น์ด ํ๋ฆฟ์ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ๋๊ธฐํฉ๋๋ค. ํ๋ ์ด์ด ์ง์ฐ ์ ์ฑ ์ ์ง์ฐ์ ๊ฐ์ฅ ๋ฏผ๊ฐํ ๊ฒ์ ์ธ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง์ฐ์ ๋ฏผ๊ฐํ ๊ฒ์์ ๊ฒฝ์ฐ ์ง์ฐ ๋ฐ ๊ฒ์ํ๋ ์ด ๊ฒฝํ์ ๊ฐ์ ํ๊ธฐ ์ํด ํ๋ ์ด์ด๋ฅผ ์ต๋ 1๋ถ ์ ๋ ๋๊ธฐํ๊ฒ ํ๋ ๊ฒ์ ์ ํธํ ์ ์์ต๋๋ค.
๊ฐ ์ ์ฑ ์ ์ต๋ ๊ฐ๋ณ ํ๋ ์ด์ด ์ง์ฐ(๋ฐ๋ฆฌ์ด)๊ณผ ์ ์ฑ ๊ธฐ๊ฐ(์ด)์ ์ ์ธํฉ๋๋ค. ์์ง์ ์ง์ฐ์ด ๊ฐ์ฅ ์งง์ ์์๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ฐ ์ ์ฑ ์ ์ง์ ๋ ๊ธฐ๊ฐ ๋์ ์ ํจํฉ๋๋ค.
ํ๋ ์ด์ด ์ง์ฐ ๋ฐ์ดํฐ ์์ด ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์ ์ ์ ์ธ๋ ๊ฒ์ ์ธ์ ๋ฐฐ์น ํ๋ก์ธ์ค์ ๋๋ถ๋ถ์ ๊ฑด๋๋ฐ๋ ค๋ ๊ฒฝ์ฐ ์ง์ฐ ๋ฐ์ดํฐ ์์ด ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ง์ฐ์ด ๊ณ ๋ ค๋์ง ์๋ ๊ฒ์์์ ๋ฆฌ์ ์ด ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋์ด ์๊ณ ์ ๋ ฌ ๋๋ ๊ฐ๊ฒฉ ๋น๊ต๋ฅผ ์ํ์ง ์๋ ๊ฒฝ์ฐ ์ด ๊ฒฝ์ฐ ๋๊ธฐ์ด์ ๋ค๋ฅธ ํ๋ฆฟ ์ค์์ ๊ฐ์ฉ์ฑ์ ๊ธฐ์ค์ผ๋ก ๋์ฒด ํ๋ฆฟ์ ์ ํํ ์ ์์ต๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ ๋์ ๋ชฉ๋ก์ ํตํด ์์๋๋ก ์งํ๋ฉ๋๋ค.
์ด ์์์๋ 2๊ฐ์ ๋๊ธฐ์ด์ด ์์ต๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ๊ฒ์ ์ธ์ 1 ์์ฒญ์ ๋๊ธฐ์ด 1๋ก, ๊ฒ์ ์ธ์ 2๋ฅผ ๋๊ธฐ์ด 2๋ก ๋ณด๋ ๋๋ค. ๊ฒ์ ์ธ์ 1์ ๊ฐ์ฉ์ฑ์ ๋ฐ๋ผ ํ๋ฆฟ A1, A2 ๋ฐ ๋ง์ง๋ง์ผ๋ก ํ๋ฆฟ B์ ์์๋๋ก ๋ฐฐ์น๋ฉ๋๋ค. ๊ฒ์ ์ธ์ 2๋ ๊ฐ์ฉ์ฑ์ ๋ฐ๋ผ ์์๋๋ก B, A1 ๋ฐ ๋ง์ง๋ง์ผ๋ก A2์ ์์๋๋ก ๋ฐฐ์น๋ฉ๋๋ค.
์ด ์์์ A1์ A2๋ณด๋ค ์ ๋ ดํ๋ฏ๋ก ๋ ๊ฒฝ์ฐ์์ ๋ชจ๋ ๊ธฐ๋ณธ ๋ฐ ๋์ฒด๋ก ์ ์ฉ๋ฉ๋๋ค.
๊ฒ์ ์๋น์ค ์ค๊ณ์์ ์ฌ๋ฌ ๋๊ธฐ์ด์ ์ฌ์ฉํ๋ ์ฃผ๋ ์ด์ ๋ ๋ฆฌ์ ์ ๋ฏธ๋ฆฌ ์ ํํ๊ธฐ ์ํด์์ ๋๋ค.
์ฌ๋ฌ ๋๊ธฐ์ด์ ์ฌ์ฉํ๋ฉด ๊ธ๋ก๋ฒ๋ก ํ์ฅํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋๊ธฐ์ด 1์ ์ ๋ฝ ๊ฒ์ ํธ์คํ ์ฉ์ผ๋ก EU(์์ผ๋๋) ๋ฆฌ์ ์ ์์ ์ ์์ผ๋ฉฐ, ๋๊ธฐ์ด 2๋ ๋ฏธ๊ตญ ๊ฒ์์ฉ์ผ๋ก ๋ฏธ๊ตญ ๋๋ถ(๋ฒ์ง๋์ ๋ถ๋ถ)์ ์์นํ ์ ์์ผ๋ฉฐ, ๋๊ธฐ์ด 3์ ์ผ๋ณธ ๊ฒ์์ฉ์ผ๋ก ์์์ ํํ์(๋์ฟ) ๋ฆฌ์ ์ ์์นํ ์ ์์ต๋๋ค.
๋งค์น๋ฉ์ด์ปค ๋ฐ ๋๊ธฐ์ด์ ๋จ์ผ ๊ฐ์ฉ ์์ญ์ ์กด์ฌํฉ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์ผ๋ฐ์ ์ธ ๊ณ ๊ฐ์ฉ์ฑ ์ค๊ณ์์๋ ๋์ผํ ํ๋ฆฟ ๋ชฉ๋ก์ ํฌํจํ๋ ๋๊ธฐ์ด ํ์ด 1๊ฐ์ ๋์ผํ ๋งค์น๋ฉ์ดํน ๊ท์น์ ํฌํจํ๋ ๋งค์น๋ฉ์ด์ปค ํ์ด 1๊ฐ๋ฅผ ์์ฑํฉ๋๋ค. ๋งค์น๋ฉ์ด์ปค๊ฐ ์๋ตํ์ง ์์ผ๋ฉด ๋์ฒด ๋งค์น๋ฉ์ด์ปค๋ก ์ฅ์ ์กฐ์นํ ์ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ๋๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ฒ์ ๋ฐฑ์๋์์ ๋ ๋งค์น๋ฉ์ด์ปค์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋ฌธ์ ๋ฅผ ๊ฐ์งํ๊ณ ๋ ์ฌ์ด๋ฅผ ์ ํํ๋ ๊ฒ์ ๋๋ค. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ Amazon Route 53๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ๋งค์น๋ฉ์ด์ปค๋ก ํธ๋ํฝ์ ๋ณด๋ด๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Route 53์ ๋ ์ฝ๋๋ง ์ ๋ฐ์ดํธํ๋ฉด ๋ฉ๋๋ค.
์ฐธ๊ณ ๋ก ์ด ์ค๊ณ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ค๊ณ๊ฐ ์๋๋ผ ์ฅ์ ์กฐ์น ์ค๊ณ์ ๋๋ค. ๋ ๋งค์น๋ฉ์ด์ปค-๋๊ธฐ์ด ํ์ด ๊ฐ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ํ์ํ์ง ์์ ์ด์ ๋ ๋งค์น๋ฉ์ดํน ๊ด์ ์์ ์ฌ์ฉ์๊ฐ ๋ถํ ๋ ๊ฒฝ์ฐ ์ต์ ์ ๋งค์น๋ฅผ ์ฐพ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
-
๋งค์น๋ฉ์ดํน ์์คํ
๋งค์น๋ฉ์ดํน ์์คํ
GameLift ๋งค์น๋ฉ์ดํน ์ํํธ์จ์ด๋ฅผ FlexMatch๋ผ๊ณ ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ๋ค์์ ๋งค์น๋ฉ์ด์ปค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ์ค ๊ฒ์ ๋งค์น๋ฅผ ์์ฑํ๋ ๋งค์น๋ฉ์ด์ปค์ ๊ณ ๊ธ ๋งค์น๋ฅผ ์์ฑํ๋ ๋งค์น๋ฉ์ด์ปค๋ฅผ ๋ ์ ์์ต๋๋ค. ๋งค์น๋ฉ์ด์ปค๋ ๊ฐ๊ฐ MatchmakingRuleset๋ฅผ ์ฐธ์กฐํ๋ MatchmakingConfiguration์ ์ ์๋ฉ๋๋ค. ๊ท์น ์ธํธ๋ ๊ท์น์ ์๊ฐ๋๋ณ ์์ ์ธ ๊ท์น ์ธํธ ํ์ฅ์ ์ํด ์์ ๋ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋งค์น๋ฉ์ด์ปค๋ ๋งค์น๋ฉ์ดํน ์์ฒญ์ ์ ๊ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ฒญ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ํ๋ ์ด์ด๋ฅผ ๋์ ํ์ฌ ๊ฒ์ ๋ฐฑ์๋๋ฅผ ํตํด ์ ์ถ๋๋ฉฐ, ๋งค์น๋ฉ์ดํน ๊ท์น์ ์ฌ์ฉ๋๋ ํ๋ ์ด์ด ์์ฑ ๋ฐ์ดํฐ์ ํ๋ ์ด์ด ์ง์ฐ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
๋งค์น๋ฉ์ด์ปค๋ย **CreateMatchmakingConfiguration( )**์ ์ฌ์ฉํ์ฌ ํน์ ๋ฆฌ์ ์ ์์ฑ๋ฉ๋๋ค. ํ๋ ์ด์ด ๋งค์นญ ๊ธฐ์ค์ ์ ์ํ ๋ ๋งค์น๋ฉ์ดํน ๊ท์น ์ธํธ๋ฅผ ์ฐธ์กฐ๋ฉ๋๋ค.
๋งค์น๋ ๊ฐ ๋งค์น๋ฉ์ดํน ์์ฒญ์์ ํ๋๋ก ๊ทธ๋ฃนํ๋ ๋งค์น๋ฉ์ดํน ํฐ์ผ ์ธํธ์ด๋ฉฐ ํ๋ ์ด์ด ๋งค์นญ์ ๋ํ ๊ท์น ์ธํธ ๊ธฐ์ค์ ์ถฉ์กฑํฉ๋๋ค.
์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.ย **StartMatchmakingRequest( )**๋ฅผ ์ ์ถํฉ๋๋ค. FlexMatch๋ ํด๋น ์์ฒญ์ ๋ํ ๋งค์น๋ฉ์ดํน ํฐ์ผ์ ์์ฑํ์ฌ ํ๋ ์ด์ด ํ์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ฉดย MatchmakingSearchingย ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
๋งค์น๋ฉ์ดํน ์์ฒญ์๋ 2๋ช ์ด์์ ํ๋ ์ด์ด๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ ์์ฒญ์ ๋ชจ๋ ํ๋ ์ด์ด๋ฅผ ํจ๊ป ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ฆ, ํ๋ ์ด์ด๊ฐ ํญ์ ๋์ผํ ๋งค์น์ ํฌํจ๋์ด์ผ ํ๊ณ ์์ฒญ์ ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ๊ท์น์ ์ถฉ์กฑํด์ผ ํฐ์บฃ์ด ๋งค์นญ๋ฉ๋๋ค.
ํ๋ ์ด์ด ํ์ ํ ํฐ์ผ์ ์ต์ปค๋ก ์ ํ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ์ค๋๋ ํฐ์ผ์ด ์ต์ปค๋ก ์ ํ๋ฉ๋๋ค. ์ต์ปค๋ฅผ ์ฌ์ฉํ์ฌ ๋งค์น๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋๋จธ์ง ํฐ์ผ์ ๋ํ ์ฒ ์ ํ ๊ฒ์์ด ์ํ๋ฉ๋๋ค. ๊ฐ์ฅ ์ข์ ๋งค์น๊ฐ ํ์ฑ๋๋ฉด ํ์ ๋ชจ๋ ๋งค์นญ ํฐ์ผ์ด ์ ๊ฑฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉดย PotentialMatchCreatedย ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
๋งค์น๋ฉ์ด์ปค ๊ตฌ์ฑ์ย AcceptanceRequiredย ํ๋ผ๋ฏธํฐ๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ๊ฒ์ ๋ฐฑ์๋์์ย PotentialMatchCreatedย ์ด๋ฒคํธ๋ฅผ ์์ ํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ย AcceptMatch()๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค. ํ๋ ์ด์ด ์ค ๋๊ตฐ๊ฐ๊ฐ ๋งค์น๋ฅผ ๊ฑฐ๋ถํ๊ฑฐ๋ ์ง์ ๋ ์ ํ ์๊ฐ ์ ์ ์๋ฝ์ด ์์ ๋์ง ์์ผ๋ฉด ์ ์๋ ๋งค์น๊ฐ ์ญ์ ๋ฉ๋๋ค. ๋งค์น๋ฉ์ดํน ํฐ์ผ์ ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. 1๋ช ์ด์์ ํ๋ ์ด์ด๊ฐ ๊ฒฝ๊ธฐ๋ฅผ ๊ฑฐ๋ถํ ํฐ์ผ์ ๊ฒฝ์ฐ ํฐ์ผ ์ํ๊ฐย SEARCHINGย ์ํ๋ก ๋์๊ฐ๊ณ ์ ๋งค์น๋ฅผ ์ฐพ์ต๋๋ค. 1๋ช ์ด์์ ํ๋ ์ด์ด๊ฐ ์๋ตํ์ง ์๋ ํฐ์ผ์ ๊ฒฝ์ฐ ํฐ์ผ ์ํ๊ฐย CANCELLED์ผ๋ก ์ค์ ๋๊ณ ์ฒ๋ฆฌ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์ด๋ฌํ ํ๋ ์ด์ด์ ๋ํ ์ ๋งค์น๋ฉ์ดํน ์์ฒญ์ ์ ์ถํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ๊ฒฝ๊ธฐ๋ฅผ ์๋ฝํ๋ฉดย AcceptMatchCompletedย ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ต์ปค๋ก ๋งค์น๋ฅผ ์์ฑํ ์ ์๋ ๊ฒฝ์ฐ ์ ์๋ ๋งค์น๊ฐ ์ญ์ ๋๊ณ ๋ค๋ฅธ ์ต์ปค๊ฐ ์ ํ๋ฉ๋๋ค. ๋งค์น๋ฉ์ด์ปค๋ ๊ฐ๋ฅํ ํ ๋ง์ ๋งค์น๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ์ ๋ฐ๋ณต์ ์ผ๋ก ํต๊ณผํฉ๋๋ค. ํฐ์ผ์ด ํ์ ๋ค์ด์ค๊ณ ๋๊ฐ๋ ์๋๊ฐ ๋น์ทํ๋ฉด ๋์ ๊ท ํ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ํ์ ๋จ์ ์๋ ํฐ์ผ์ด ์ค๋๋๋ฉด ๊ท์น ํ์ฅ์ ์ฌ์ฉํ์ฌ ๋งค์นญ ๊ท์น์ ํด์ ํ ์ ์์ต๋๋ค.
๊ท์น ํ์ฅ์ ์ง์ ๋ ๊ธฐ๊ฐ(์ด) ํ์ ๊ท์น์ ์์ ํ๋ ๋จ๊ณ์ ๋๋ค. ๊ท์น ํ์ฅ์ ์ ์๋ ๋งค์น์ ๋ชจ๋ ํฐ์ผ์ด ์ง์ ๋ ๊ธฐ๊ฐ๋ณด๋ค ์ค๋๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ด์ ํฐ์ผ์ ์ฌ์ฉํ์ฌ ์๋ก ๋์ฐฉํ๋ ํ๋ ์ด์ด์๊ฒ ์ ์ ํ ๋งค์น๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๋งค์น๊ฐ ์์ฑ๋๋ฉดย MatchmakingSucceededย ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋งค์น๋ฉ์ด์ปค์ ์ง์ ๋ ๊ธฐ๊ฐ ๋ด์ ๋งค์น๋ฉ์ดํน ํฐ์ผ์ด ๋งค์นญ๋์ง ์์ผ๋ฉดย MatchmakingTimedOutย ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ์์์๋ ๋งค์น๋ฉ์ดํน ์ ์ฑ ์ ๋ฐ๋ผ ์ ํํ 4๋ช ์ ํ๋ ์ด์ด๊ฐ ์์ด์ผ ํฉ๋๋ค.
1๋ฒ์ ๊ฒฝ์ฐ FlexMatch๋ ํ๋ ์ด์ด 2๋ช ์ด ํฌํจ๋ ์์ฒญ์ ์์ ํ๊ณ ์ด 2๋ช ์ ํ๋ ์ด์ด์ ๋ํ ๋งค์น ํฐ์ผ์ ์์ฑํฉ๋๋ค. ๋ค๋ฅธ 2๋ช ์ ํ๋ ์ด์ด์ ๋ํ ๋ ๋ฒ์งธ ์์ฒญ์ ์์ ํ๊ณ ์ด 2๋ช ์ ํ๋ ์ด์ด์ ๋ํ ๋งค์น ํฐ์ผ์ ์์ฑํฉ๋๋ค. ํฐ์ผ์ ํ ์์ ์์ต๋๋ค. ๊ท์น์ ๋ฐ๋ณต์ ์ผ๋ก ์ ์ฉ๋ฉ๋๋ค. ๊ฐ์ฅ ์ค๋๋ ํฐ์ผ์ ์ต์ปค๋ก ์ฌ์ฉ๋๋ฉฐ ๋ค๋ฅธ ํฐ์ผ์ ์ต์ปค์ ๋น๊ต๋ฉ๋๋ค. ๊ธฐ์ค์ ์ถฉ์กฑํ๋ฉด ๋งค์น๊ฐ ํ์ฑ๋ฉ๋๋ค.
2๋ฒ์ ๊ฒฝ์ฐ FlexMatch๋ 3๋ช ์ ํ๋ ์ด์ด๊ฐ ํฌํจ๋ ์์ฒญ๊ณผ 1๋ช ์ ํ๋ ์ด์ด๊ฐ ํฌํจ๋ ๋ค๋ฅธ ์์ฒญ์ ์์ ํฉ๋๋ค. ๊ฐ์ฅ ์ค๋๋ ํฐ์ผ์ ์ต์ปค๋ก ์ฌ์ฉ๋๋ฉฐ ๋ค๋ฅธ ํฐ์ผ์ ์ต์ปค์ ๋น๊ต๋ฉ๋๋ค. ๊ธฐ์ค์ ์ถฉ์กฑํ๋ฏ๋ก ์ผ์น๊ฐ ํ์ฑ๋ฉ๋๋ค.
3๋ฒ์ ๊ฒฝ์ฐ FlexMatch๋ ํ๋ ์ด์ด 3๋ช ์ด ํฌํจ๋ ์์ฒญ๊ณผ ํ๋ ์ด์ด 2๋ช ์ด ํฌํจ๋ ๋ค๋ฅธ ์์ฒญ์ ์์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ซ์๊ฐ 4์ธ ๊ท์น์ ์ถฉ์กฑํ์ง ์์ผ๋ฏ๋ก ๋งค์น๋ฅผ ํ์ฑํ ์ ์์ต๋๋ค.
๋งค์น๋ฉ์ดํน ๊ท์น ์ธํธ๋ ๋งค์น๋ฉ์ด์ปค๊ฐ ์์ฒด ๊ตฌ์ฑ ์ด์์ผ๋ก ์๋ํ๋ ๋ฐฉ์์ ์ ์ํ๋ JSON ๋ฌธ์์ ๋๋ค. ๊ท์น ์ธํธ์๋ ํ๋ ์ด์ด ์์ฑ, ๊ฒ์์์ ํ์ฉ๋๋ ํ ๊ตฌ์ฑ, ํ๋ ์ด์ด ๋งค์นญ ๊ท์น, ์ผ์ ๊ธฐ๊ฐ ํ์ ๊ท์น์ ํด์ ํ๊ธฐ ์ํ ํ์ฅ์ด ํฌํจ๋ฉ๋๋ค. ๊ท์น ์ธํธ์๋ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ํ๋๋ ํ๋ ์ด์ด ์๊ฐ ์ต๋ 40๋ช ์ธ โ์๊ท๋ชจ ๋งค์นโ๋ผ๊ณ ํ๋ ์ ํ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ๋ฐฐํ๋ก์ ์คํ์ผ์ ๊ฒ์์ ์ํ โ๋๊ท๋ชจ ๋งค์นโ๋ผ๋ ์ ํ์ผ๋ก ์ด ์ ํ์ ํ๋ ์ด์ด๋ ์ต๋ 200๋ช ์ ๋๋ค. ๋๊ท๋ชจ ๋งค์น์๋ ํ๋ ์ด์ด๋ฅผ ๋ฐฐ์นํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด ์ถ๊ฐ์ ์ผ๋ก ํฌํจ๋์ด ์์ผ๋ฉฐ ๊ท์น ์๋ฅผ ๋จ 1๊ฐ๋ก ์ ํํฉ๋๋ค.
๋๊ท๋ชจ ๋งค์น์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๋๋ ์ ์ฌํ ํ๋ ์ด์ด๋ก ๋ ํฐ ๋งค์น๋ฅผ ๋ง๋๋ ๋ฐ ๋์ ์ฐ์ ์์๋ฅผ ๋๊ฑฐ๋ ๋ชจ๋ ํ๋ ์ด์ด์๊ฒ ๊ฐ๋ฅํ ์ต์์ ํ๋ ์ด์ด ์ง์ฐ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋งค์น๋ฅผ ์์ฑํ๋ ๊ฒ ์ค์์ ์ ํํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๋ ํ๋ ์ด์ด ์์ฑ์ ์ ์ํ๋ ๋ฌธ์๋ฅผ ์์ฑํ์ฌ ๊ฐ ํ๋ ์ด์ด์ ๋ํด ์ ๋ฌ๋๋ ์ ๋ณด๋ฅผ ์ค๋ช ํ๋ฉฐ, ๋งค์น ๊ฒฐ์ ์ ์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋ด๋ ค์ง๋๋ค.
๊ฐ ํ๋ ์ด์ด ์์ฑ์ "string", "number", "string_list" ๋๋ "string_number_map" ์ค ํ๋์ด๋ฉฐ ํ๋ ์ด์ด๊ฐ ํ๋ ์ดํ๊ณ ์ ํ๋ ๋งต, ์ ํํ ๊ฒ์ํ๋ ์ด ๋ชจ๋, ์ ํธํ๋ ํ ๋๋ ์ญํ ๋๋ ํ๋ ์ด์ด๊ฐ ์ ํํ ์บ๋ฆญํฐ ํด๋์ค ๋ฑ์ ๋ํ๋ ๋๋ค.
ํฐ์ผ์ ํ๋ ์ด์ด๊ฐ ๋งค์น์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ๋ ์ด์ด ์์ฑ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํฐ์ผ์ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค.
์์ฑ ํํ์์ ์์ฑ ๋ฐ์ดํฐ๋ฅผ ๊ท์น์ผ๋ก ํ๊ฐ๋ ์ ์๋ ํ์์ผ๋ก ์ฒ๋ฆฌํ๋ ํํ์์ ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ ๊ฒฐํฉ๋ ์์ฒญ์ ๋งค์น๋ฉ์ดํน ์์คํ ์ ์ ์ถํ๊ธฐ ์ ์ ํ๋ ์ด์ด ์์ฒญ์ ์์งํ๊ณ ์ฒ๋ฆฌํฉ๋๋ค. GameLift Client SDK๋ฅผ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ํฌํจํ์ง ์๊ณ ๊ฒ์ ๋ฐฑ์๋๋ฅผ ์์ฑํ๋ ๋ฐ๋
์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ ๋ณด์์ ๋๋ค. GameLift API๋ ํจ์๋ณ ์ธ์ฆ์ ๊ตฌํํ์ง ์์ต๋๋ค. ๋ฐฑ์๋์ ์ธ์ฆ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ๋ฐฑ์๋์ ๋งค์น๋ฉ์ดํน ๊ฐ์ ํต์ ์ ๋ณดํธํ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ด์ ๋ ๋งค์น๋ฉ์ดํน ์์ฒญ์ ์ผ๊ด ์ฒ๋ฆฌ์ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ฐ์ ์ผ๋ก 4๋ช ์ ํ๋ ์ด์ด๊ฐ ์์ง๋ง 4๋ช ์ด ์์ ๋ 2๋ช ์ ํ๋ ์ด์ด๋ฅผ ํ์ฉํ ์ ์๋ ๊ฒ์์์ ๊ฐ ํ๋ ์ด์ด๊ฐ ๋งค์น๋ฉ์ดํน์ ์ง์ ์์ฒญ์ ์ ์ถํ ์ ์๋ค๋ฉด ํ๋ ์ด์ด๊ฐ 2๋ช ์ธ ๊ฒ์์ด ๋ง์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋งค์น๋ฉ์ด์ปค๋ ๋จ์ํ ๊ฐ๋ณ ํ๋ ์ด์ด๊ฐ ์์ฒญํ ๋๋ณด๋ค ๋น ๋ฅด๊ฒ ๋งค์น๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๊ฒ์ ๋ฐฑ์๋๊ฐ ์์ฒญ์ ์์งํ๊ณ 4๋ช ์ ํ๋ ์ด์ด๊ฐ ์๋ ๋จ์ผ ํฐ์ผ์ ์ ์ถํ๋ฉด ๋งค์น๋ฉ์ด์ปค๋ 4์ธ ํ๋ ์ด์ด ๊ฒ์์ ๋ง๋ญ๋๋ค.
๋ ๋ค๋ฅธ ์ด์ ๋ ์์ฑ ๊ฐ์ ์ฌ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ํด์ํ๊ธฐ ์ํด์์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ ๋ ์์ฑ ๊ฐ์ ๋ฐฑ๋ถ์จ๋ก ๋ณํํ๊ฑฐ๋ ๋ก๊ทธ ์ฒ๋๋ก ํด์ํ ์ ์๊ณ , ๋๋ ์์ฑ ๊ฐ์ ํ์คํ ๊ทธ๋จ์ ๋งคํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์์ ๊ธ๊ฒฉํ ๋ณํ์ ํน์ด์ ์ ๊ฐ์ง ์์ฑ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
ํ
ํ ํฌ๊ธฐ๊ฐ ๊ฐ์ ํ์๋ ์์ต๋๋ค. ํ์ ์ฌ๋ฌ ์ ํ์ ์บ๋ฆญํฐ๋ ์ญํ ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ ํ์๋ ๋ง๋ฒ์ฌ ์ ์ฌ, ์ฑ์ง์, ๋๋์ด ํ์ํ ์ ์์ต๋๋ค.
๊ท์น์๋ 6๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
๊ฑฐ๋ฆฌ ๊ท์น์ ํ๋ ์ด์ด ์์ฑ ๊ฐ์ ์ง์ ๋ ๋ฒ์ ๋ด์ ์ ์งํฉ๋๋ค.
๋น๊ต ๊ท์น์ ํ๋ ์ด์ด ์์ฑ ๊ฐ ๊ฐ์ ๋ ผ๋ฆฌ์ ๋น๊ต๋ฅผ ํ์ฉํฉ๋๋ค.
์ปฌ๋ ์ ๊ท์น์ ํ๋ ์ด์ด ์์ฑ ๊ฐ ์ธํธ ๊ฐ์ ๊ต์ฐจ์ ์ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ง์ฐ ๊ท์น์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฆฌ์ ์ด ๋์ผํ ํ๋ ์ด์ด์ ๋งค์นญ์ ํ์ฉํ์ฌ ๋ชจ๋์๊ฒ ์งง์ ์ง์ฐ์ ์ ๊ณตํฉ๋๋ค.
๊ฑฐ๋ฆฌ ์ ๋ ฌ ๊ท์น์ ์ต์ปค ์์ฒญ์ผ๋ก๋ถํฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ต์ปค ์์ฒญ์ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ผ ํ๋ ์ด์ด ์์ฑ์ ๊ธฐ์ค์ผ๋ก ๋งค์น๋ฉ์ดํน ์์ฒญ์ ๋ฏธ๋ฆฌ ์ ๋ ฌํฉ๋๋ค.
์ ๋ ์ ๋ ฌ ๊ท์น์ ํ๋ ์ด์ด ์์ฑ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋งค์น๋ฉ์ดํน ์์ฒญ์ ์ค๋ฆ์ฐจ์ ๋๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฏธ๋ฆฌ ์ ๋ ฌํฉ๋๋ค.
์ด ๊ท์น์ ๊ณ์ฐ๋ ํ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
**count(teams[cowboys].players)**๋ "์นด์ฐ๋ณด์ด ํ๊ณผ ํ๋ ์ด์ด ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๊ณ ํ๋ ์ด์ด ์๋ฅผ ๊ณ์ฐ"ํ ๊ฒ์ ์ง์ํ๋ ์์ฑ ํํ์์ ๋๋ค. ์ด ์์ ํ๋์ ํผ์ฐ์ฐ์๊ฐ ๋ฉ๋๋ค.
๋๋ค๋ฅธ ์์ฑ ํํ์์ธย **count(teams[aliens].players)**๋ ๋ค๋ฅธ ํผ์ฐ์ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ๊ท์น์ ๊ฐ๋ณ ํ๋ ์ด์ด ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด ์์์ ์์ฑ์ ํ๋ ์ด์ด ์คํฌ์ ๋๋ค.
**avg(teams[*].players.attributes[skill])**์ "๊ฐ ํ, ๊ฐ ํ์ ๋ชจ๋ ํ๋ ์ด์ด ๋ฐ ์คํฌ ์์ฑ์ ๊ฐ์ ธ์จ ๋ค์ ์ด ๋ชจ๋ ์์ฑ์ ํ๊ท ์ ๊ณ์ฐ"ํ ๊ฒ์ ์ง์ํ๋ ์์ฑ ํํ์์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ํ์ ํ๊ท ์คํฌ ๋ ๋ฒจ์ด ์์ฑ๋ฉ๋๋ค. ์ด๊ฒ์ด ํ๋์ ํผ์ฐ์ฐ์๊ฐ ๋ฉ๋๋ค.
๋ ๋ค๋ฅธ ์ ๋ฆฌ ์์ฑ ํํ์์ธ**avg(flatten(teams[*].players.attributes[skill]))**์ ๋ค๋ฅธ ํผ์ฐ์ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ๊ท์น์ ๊ฐ ํ ์คํฌ ๊ฐ์ด ๋ชจ๋ ํ์ ๊ฒฐํฉ๋ ์ ์ฒด ์คํฌ ๊ฐ์์ 10์ ๊ฑฐ๋ฆฌ ๋ด์ ์๋์ง ํ ์คํธํฉ๋๋ค. ์ด๋ก์จ ๊ณต์ ํ ๋งค์น๊ฐ ์์ฑ๋ฉ๋๋ค.
๋งค์น๋ฉ์ดํน ์ ์ด
๋งค์น๋ฉ์ดํน ์ง์ฐ ๊ท์น์ ํ์ฉ ๊ฐ๋ฅํ ๋งค์น์ ๋ํ ์ง์ฐ์ ํน๋ณํ ์ ํํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋งค์น๋ ๋ชจ๋ ํ๋ ์ด์ด๋ค์ ๋ฆฌ์ ์ง์ฐ์ด ๋ฐ๋์ ์ต๋ ํ๋ ์ด๋ด์ฌ์ผ ํ๋ค๊ณ ๊ท์น์ผ๋ก ์ ํ ์ ์์ต๋๋ค. ํ์ฌ ์ด ๊ท์น ์ ํ์ ๋๊ท๋ชจ ๋งค์น์ ๋ํ ๊ท์น ์ธํธ์ ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ๊ท์น ์ ํ์ด๋ฉฐ maxLatency ์ค์ ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ ๋ฆฌ์ ์ฃผ๋ณ์ ์๋ ํ๋ ์ด์ด๋ค์ด ํจ๊ป ๋งค์นญ๋ ๊ฐ๋ฅ์ฑ์ด ์ฆ๊ฐํ๋ฏ๋ก ๋ชจ๋๊ฐ ์งง์ ์ง์ฐ์ผ๋ก ๊ฒ์์ ํ๋ ์ดํ ์ ์์ต๋๋ค.
๊ท์น ํ์ฅ์ ์ง์ ๋ ๊ธฐ๊ฐ(์ด) ํ์ ๊ท์น์ ์์ ํ๋ ๋จ๊ณ๋ก ์ ์๋ฉ๋๋ค. ๊ท์น ํ์ฅ์ ์ ์๋ ๋งค์น์ ๋ชจ๋ ํฐ์ผ์ด ์ง์ ๋ ๊ธฐ๊ฐ๋ณด๋ค ์ค๋๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ด์ ํฐ์ผ์ ์ฌ์ฉํ์ฌ ์๋ก ๋์ฐฉํ๋ ํ๋ ์ด์ด์๊ฒ ์ ์ ํ ๋งค์น๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
์์ ์์์ ๊ณ ๋ ค๋ FairTeamSkill ๊ท์น์ ์ผ์ ๊ธฐ๊ฐ ํ์ ํ์ฅ๋ฉ๋๋ค.
ํฐ์ผ์ด ์์ฑ๋๋ฉด ์๋ ๊ท์น์ ๋ฐ๋ผ ํ ๊ธฐ์ ์ด ํ๊ท ํ ์คํฌ์์ ์ต๋ 10๊น์ง์ ๊ฑฐ๋ฆฌ์ ์๋ ๋ค๋ฅธ ํฐ์ผ๊ณผ ๋งค์นญ๋ ์ ์์ต๋๋ค.
ํฐ์ผ์ด 5์ด๊ฐ ๋๋ฉด ํ ์คํฌ์ด ํ๊ท ํ ์คํฌ์์ ์ต๋ 50๊น์ง์ ๊ฑฐ๋ฆฌ์ ์๋ ๋ค๋ฅธ ํฐ์ผ๊ณผ ๋งค์นญ๋ ์ ์์ต๋๋ค.
ํฐ์ผ์ด 20์ด๊ฐ ๋๋ฉด ํ ์คํฌ์ด ํ๊ท ํ ์คํฌ์์ ์ต๋ 100๊น์ง์ ๊ฑฐ๋ฆฌ์ ์๋ ๋ค๋ฅธ ํฐ์ผ๊ณผ ๋งค์นญ๋ ์ ์์ต๋๋ค.
๊ฒ์์๋ ์ต๋ ํ๋ ์ด์ด ์ฌ๋กฏ ์๊ฐ ์์ต๋๋ค. ๋งค์น๋ฉ์ดํน ์ค์ ๋ชจ๋ ์ฑ์์ง ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค. ๋ค์ ๋งํด, ์ผ๋ถ ๊ฒ์์ ํ๋ ์ด์ด์ ์ ์ฒด ๋ณด์ถฉ ์์ด ์์๋ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ ์๋๋ฆฌ์ค์์๋ ํ๋ ์ด์ด๊ฐ ์ ์ฒด ๊ฒ์์์ ๋๊ฐ ๊ฒฝ์ฐ ๋น ์ฌ๋กฏ์ ๋ค์ ์ฑ์ธ ์ ์์ต๋๋ค.
์ฑ์ฐ๊ธฐ๋ ์คํ ์ค์ธ ๊ฒ์์ ํ๋ ์ด์ด์ ๋งค์น๋ฉ์ดํน ํ์ ํ๋ ์ด์ด๋ฅผ ๋งค์นญํ์ฌ ๊ฒ์์ ์ถ๊ฐ ํ๋ ์ด์ด๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ๋๋ค. ์ฑ์ฐ๊ธฐ์ ๋จ์ผ ํจ์ค๋ก ๊ฒ์ ํ๋ ์ด์ด ์ฌ๋กฏ์ด ์์ ํ ์ฑ์์ง ์๋ ์๊ณ ์ฑ์์ง์ง ์์ ์๋ ์์ต๋๋ค.
์ฑ์ฐ๊ธฐ๋ย MatchmakingConfiguration์ ์ ์๋ ๋๋ก ์๋ฒ์์ ์์๋๊ฑฐ๋ ์๋์ผ๋ก ์์๋ ์ ์์ผ๋ฉฐ ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๋ ์๋ก ๋ค๋ฆ ๋๋ค. ์๋ ์ฑ์ฐ๊ธฐ๋ ์ฒซ ๋ฒ์งธ ์ฑ์ฐ๊ธฐ ์๋๋ฆฌ์ค์๋ง ์ ์ฉ๋๋ฉฐ ํ๋ ์ด์ด๋ฅผ ์์ ํ ๋ณด์ถฉํ์ง ์๊ณ ์์๋๋ ๊ฒ์์ ์ฑ์๋๋ค. ํ์ฑํํ๋ฉด ๋งค์น๊ฐ ์์ฑ๋ ํ ํ๋ ์ด์ด๊ฐ ์์ ํ ๋ณด์ถฉ๋ ๋๊น์ง ์ฑ์ฐ๊ธฐ ํจ์ค๊ฐ ์ํ๋ฉ๋๋ค. ๊ฒ์์ ํ๋ ์ด์ด๊ฐ ์ถ๊ฐ๋ ๋๋ง๋ค ์๋ฒ๋ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด ๋ด์์ ์ ๊ท ๋ฐ ๊ธฐ์กด ํ๋ ์ด์ด๋ฅผ ํฌํจํ ์ ์ฒด ํ๋ ์ด์ด ๋ชฉ๋ก๊ณผ ํจ๊ปย updateGameSession( )ย ์ฝ๋ฐฑ์ ์์ ํฉ๋๋ค.
์๋ ์ฑ์ฐ๊ธฐ๋ ์๋ฒ์์ ์์๋๋ ์ฑ์ฐ๊ธฐ์ ๋ฌ๋ฆฌ ๋ ์ฑ์ฐ๊ธฐ ์๋๋ฆฌ์ค์ ๋ชจ๋ ์ ์ฉ๋ฉ๋๋ค. ์๋ฒ๋ย **StartMatchBackfill( )**์ ํตํด ์ฑ์ฐ๊ธฐ๋ฅผ ์์ฒญํ ๋๋ง๋ค ํ์ฌ ๋ชจ๋ ํ๋ ์ด์ด์ ๋งค์น๋ฉ์ด์ปค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ํด๋น ๋ฐ์ดํฐ๋ฅผ GameLift๋ก ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋งค์น๋ฉ์ดํน ํฐ์ผ์ด ์์ฑ๋๊ณ ํ์ ๋ฐฐ์น๋ฉ๋๋ค. ๋งค์น๋ฉ์ดํน ํ๋ก์ธ์ค๋ ํ์์ ๊ฐ์ด ์งํ๋๋ฉฐ, ์ฑ์ฐ๊ธฐ ํฐ์ผ์ ๋ค๋ฅธ ํฐ์ผ๊ณผ ๊ฒฐํฉํ์ฌ ์๋ก์ด ๋งค์น๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋งค์น๊ฐ ์์ฑ๋ ๋๋ง๋ค ๊ฒ์ ์๋ฒ๋ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด ๋ด์์ ์ ๊ท ๋ฐ ๊ธฐ์กด ํ๋ ์ด์ด๋ฅผ ํฌํจํ ์ ์ฒด ํ๋ ์ด์ด ๋ชฉ๋ก๊ณผ ํจ๊ปย updateGameSession( )ย ์ฝ๋ฐฑ์ ์์ ํฉ๋๋ค.
๊ฐ๊ฐ์ ๊ฒฝ์ฐ์ ๊ฒ์ ๋ฐฑ์๋๋ ์ฐ๊ฒฐ ์ ๋ณด๊ฐ ํฌํจ๋ ๋งค์น๋ฉ์ดํน ํฐ์ผ์ ๋ํ SNS ์๋ฆผ์ ์์ ํ๋ฉฐ, ์ด ์ ๋ณด๋ ๊ฒ์ ๋ฐฑ์๋์ ์ํด ํ๋ ์ด์ด์๊ฒ ์ ๋ฌ๋์ด ๊ฒ์ ์ธ์ ์ ์ฐธ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
GameLift FlexMatch ์ด๋ฒคํธ๋ SNS ์๋ฆผ์ ํตํด ์ ๋ฌ๋ ์ ์์ต๋๋ค. ๊ฒ์ ๋ฐฑ์๋ ์ํํธ์จ์ด์ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ ์ด๋ฌํ ์๋ฆผ์ ๊ตฌ๋ ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ์ ์๋ตํ ์ ์์ต๋๋ค.
FlexMatch ๋งค์น๋ฉ์ดํน ์ด๋ฒคํธ
MatchmakingSearching์ ๋งค์น๋ฉ์ดํน ํ์ ํฐ์ผ์ ์ ๋ ฅํ ๋ ์์ฑ๋๋ ์ด๋ฒคํธ์ ๋๋ค.
PotentialMatchCreated๋ ํฐ์ผ์ด ๊ท์น ์ธํธ๋ฅผ ๋ง์กฑํ๊ณ ๋งค์น๊ฐ ํ์ฑ๋ ๋ ์์ฑ๋๋ ์ด๋ฒคํธ์ ๋๋ค. ๋งค์น๋ฉ์ด์ปค๊ฐ ํ๋ ์ด์ด ๊ฒ์ ์๋ฝ์ ์๊ตฌํ๋ ๊ฒฝ์ฐ ๋ฐฑ์๋๋ ์ด ์์ ์์ ์ด ์ด๋ฒคํธ๋ฅผ ์์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ด๋ฒคํธ๋ ๋งค์น๋ฉ์ด์ปค๊ฐ ๊ฒ์ ์๋ฝ์ ์๊ตฌํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์ฑ๋ฉ๋๋ค.
AcceptMatch๋ ํ๋ ์ด์ด๊ฐ ์ ์ฌ์ ๋งค์น๋ฅผ ์๋ฝํ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ ๋๋ค. ๋งค์น์ ์๋ ํ๋ ์ด์ด์ ํ์ฌ ์๋ฝ ์ํ๊ฐ ํฌํจ๋ฉ๋๋ค.
AcceptMatchCompleted๋ ํ๋ ์ด์ด ์๋ฝ์ด ์๋ฃ๋๊ฑฐ๋, ํ๋ ์ด์ด๊ฐ ๊ฑฐ๋ถํ๊ฑฐ๋, ์๋ฝ ์๊ฐ์ด ์ด๊ณผ๋ ๋ ๋ฐ์ํฉ๋๋ค. ๋งค์น์ ์ต์ข ์๋ฝ ์ํ๊ฐ ํฌํจ๋ฉ๋๋ค.
MatchmakingSucceeded๋ ๋งค์น๋ฉ์ดํน์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๊ณ ๊ฒ์ ์ธ์ ์ด ์์ฑ๋์์ ๋ ๋ฐ์ํฉ๋๋ค.
MatchmakingTimedOut์ MatchmakingConfiguration์ย RequestTimeoutSecondsย ์์ฑ๋ณด๋ค ์ค๋๋ ํฐ์ผ์ด ๋ง๋ฃ๋ ๋๋ง๋ค ๋ฐ์ํฉ๋๋ค.
MatchmakingCancelled๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ ๋ฐฑ์๋์์ย **StopMatchmaking( )**์ ํธ์ถํ์ฌ ๋งค์น๋ฉ์ดํน ํฐ์ผ์ด ์ทจ์๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
MatchmakingFailed๋ FlexMatch ๋ด๋ถ ๋ฌธ์ ๋ก ์ธํด ํฐ์ผ์ด ํ๊ธฐ๋๋ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.ย GameSessionPlacementQueue์ ์ฐ๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ํ ์์ ๋๋ค.
์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ๋ฐ์๊ฐ SNS ์ฃผ์ ๋ฅผ ์์ฑํ ๋ค์ Lambda์ ๊ฐ์ ํธํ๋๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ๋ ํด์ผ ํฉ๋๋ค.
FlexMatch ์ด๋ฒคํธ๋ ๋งค์น๋ฉ์ดํน ์์ฒญ์ ๋ํ ์ ๋ณด๋ฅผ ์์ ํ ๋ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฎ์ TPS(์ด๋น ํธ๋์ญ์ ์)๋ฅผ ์ํด ์ค๊ณ๋ย **DescribeMatchmaking( )**๊ณผ ๊ฐ์ ํจ์๋ณด๋ค ํ์ฅ์ฑ์ด ํจ์ฌ ๋ฐ์ด๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค์ ๋ก ์ฑ์ฐ๊ธฐ๋ฅผ ์ํํ ๋๋ ๊ฑฐ์ SNS ์ฃผ์ ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ๋ฐฑ์๋์์ ๋งค์น๋ฉ์ด์ปค๋ฅผ ์ง์์ ์ผ๋ก ํด๋งํ๋ ์ผ์ด ์๋๋ก ํด์ผ ํฉ๋๋ค.
-
GameLift ๊ฐ๋ฐ ๊ฐ์
GameLift ๊ฐ๋ฐ ๊ฐ์
์ด ๋จ์์์๋ GameLift๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. GameLift์ ์ผ๋ถ๋ฅผ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด์ ํตํฉํ๊ณ GameLift์ ๋ค๋ฅธ ์ผ๋ถ๋ฅผ ๊ฒ์ ๋ฐฑ์๋ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด์ ํตํฉํด์ผ ํฉ๋๋ค. ๋จผ์ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด๊ฐ ๊ฒ์ ๋ฐฑ์๋์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๋ฉด์ ์ ์ฒด์ ์ธ ๊ทธ๋ฆผ์ผ๋ก ์ ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ๋ ์ด์ด ๊ตฌ์ฑ ์์
ํ๋ ์ด์ด๋ ํ๋ ์ด์ด์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ฒ์์ ํ๋ ์ดํฉ๋๋ค. ๊ฒ์ ๊ฐ๋ฐ์๋ ๋ณดํต Unity(C# ์ฌ์ฉ) ๋๋ Unreal Engine์ด๋ Lumberyard(C++ ์ฌ์ฉ)์ ๊ฐ์ ๊ฒ์ ์์ง์ ์ฌ์ฉํ์ฌ ์ด ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํฉ๋๋ค. ํ๋ ์ด์ด ์ํํธ์จ์ด๋ ์ปดํจํฐ, ๊ฒ์ ์ฝ์, ํ๋ธ๋ฆฟ, ์ ํ ๋๋ ๊ฐ์ ํ์ค ๊ธฐ์ด์ ๊ฐ์ ํ๋ ์ด์ด ๊ฒ์ ๋๋ฐ์ด์ค์์ ์คํ๋ฉ๋๋ค.
ํ๋ ์ด์ด์ ๋๋ฐ์ด์ค์ ํ๋ ์ด์ด ์ํํธ์จ์ด๋ ์ผ๋ฐ์ ์ผ๋ก GameLift์ ์ง์ ํต์ ํ์ง ์์ต๋๋ค. ๋์ ๊ฒ์ ๋๋ฐ์ด์ค๋ ๊ฒ์ ๋ฐฑ์๋๋ผ๊ณ ํ๋ ๋ณ๋์ ์ํํธ์จ์ด์ ํต์ ํฉ๋๋ค. ์ผ๋ถ ์ค๋ช ์์์๋ ํด๋ผ์ด์ธํธ ๋๋ ํด๋ผ์ด์ธํธ ์๋น์ค๋ผ๊ณ ๋ ํ์ง๋ง ์ด ๊ณผ์ ์์๋ ๊ฒ์ ๋ฐฑ์๋๋ผ๊ณ ํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ์ผ๋ฐ์ ์ผ๋ก ์น ์๋ฒ์ ๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ๋ค์์ ์น ์งํฅ ์ธ์ด๋ก ์์ฑ๋ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ธ์ด๋ก๋ C#, Javascript, Java, Node.js, PHP, Python ๋ฐ Ruby๊ฐ ์์ต๋๋ค. ๋ ์ผ๋ฐ์ ์ด์ง๋ง ๊ฐ๋ฅํ ์ธ์ด๋ก๋ C++๊ณผ Go๊ฐ ์์ต๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ํ๋ ์ด์ด ์ธ์ฆ์ ํตํด ํ๋ ์ด์ด์๊ฒ ๊ฒ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋๋ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์์ ํ๋ ์ดํ๋ ค๋ ๊ฐ๋ณ ํ๋ ์ด์ด์ ์์ฒญ์ ์์ ํฉ๋๋ค. ๋ํ GameLift API๋ฅผ ํตํด GameLift์ ํต์ ํ์ฌ ํ๋ ์ด์ด๋ฅผ ์ํ ๊ฒ์์ ์ฃผ์ ํฉ๋๋ค. ๊ฒ์ ๋ฐฑ์๋์๋ ๊ฒ์ ์์ง์ ์์๊ฐ ํฌํจ๋์ง ์์ต๋๋ค. ย ๊ฒ์ ๋ฐฑ์๋์ ์ญํ ์ ํ๋ ์ด์ด๋ฅผ ๊ฒ์์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค.
๊ฒ์ ๋ฐฑ์๋๋ ๊ฒ์์ ์ํ๋ ํ๋ ์ด์ด์ ํ๋ ์ด์ด๋ฅผ ์ํด ์ค๋น๋ ๊ฒ์์ ์ฐ๊ฒฐํ๋ ๋ธ๋ก์ปค์ฒ๋ผ ์๋ํฉ๋๋ค.
ํ๋ ์ด์ด๊ฐ ๊ฒ์ ์ธ์ ์ ์ฐ๊ฒฐ๋ ํ์๋ ๊ด์ฌํ์ง ์์ต๋๋ค. ์ดํ์ ํ๋ ์ด์ด์ ๊ฒ์ ์ํํธ์จ์ด์ ๊ฒ์ ๋๋ฐ์ด์ค๋ ์คํ ์ค์ธ ๊ฒ์ ์ธ์ ๊ณผ ์ง์ ํต์ ํฉ๋๋ค. ๊ฒ์ ์ธ์ ์ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด์ ์คํ ์ค์ธ ์ธ์คํด์ค์ ๋๋ค. ๊ฒ์ ์ธ์ ์ด ์ด๋์ ์์๋๋์ง ๋ด ์๋ค.
์๋ฒ ์ํํธ์จ์ด ํตํฉ
๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํฉ๋๋ค. ์ด ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ ์ผ๋ฐ์ ์ผ๋ก C# ๋๋ C++๋ก ์์ฑ๋ฉ๋๋ค. Unity ๊ฐ๋ฐ์๋ C#์ ์ฌ์ฉํ๋ฉฐ Unreal Engine ๋ฐ Lumberyard ๊ฐ๋ฐ์๋ C++๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. GameLift๋ C++ ๋๋ C#์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๊ฒ์ ์์ง๊ณผ๋ ํธํ๋ฉ๋๋ค. ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด์๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ ์์ง์ ์์๊ฐ ํฌํจ๋์ง๋ง ๋ฐ๋์ ํ์ํ ๊ฒ์ ์๋๋๋ค. ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐฑ์๋ ๊ฒ์ ๊ฐ๋ฐ์๊ฐ ์์ฑํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Windows Server ์ด์ ์ฒด์ ์์ ์คํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ง๋ง, ๋ฐฑ์๋ ๊ฒ์ ๊ฐ๋ฐ์๋ค์ ๊ฒฝ์ฐ ์ ๋ ดํ ๋ผ์ด์ ์ค ๋น์ฉ ๋์ ๋๊ท๋ชจ๋ก ์คํํ ๊ฒฝ์ฐ ์๋นํ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค๋ ์ด์ ๋๋ฌธ์ Linux๋ฅผ ์ฑํํ๋ ์ถ์ธ๊ฐ ์์ต๋๋ค. ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด์๋ ๊ฒ์์ด ์คํ ์ค์ผ ๋ GameLift์ ํต์ ํ ์ ์๋ Amazon GameLift SDK๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ ํ์ผ์ ๋๋ ํฐ๋ฆฌ์ ๋๋ค. ์ด ๋๋ ํฐ๋ฆฌ์๋ ์คํ ํ์ผ, ์ด๊ธฐํ ์คํฌ๋ฆฝํธ ๋ฐ ์คํ ํ์ผ์ ํ์ํ ๋ชจ๋ ์ข ์ ์ํํธ์จ์ด ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ฅผ GameLift์ ์ ๋ก๋ํ ํ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ GameLift ๋น๋๋ผ๋ ๋จ์ผ ๊ฐ์ฒด๊ฐ ๋ฉ๋๋ค. ๋น๋ ๊ฐ์ฒด๋ ๋ถํฌ๋ช ํฉ๋๋ค. GameLift ๋์๋ณด๋์์ ๋น๋์ ์ฝํ ์ธ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. GameLift๋ ์ ํจ์ฑ ๊ฒ์ฌ ํ๋ก์ธ์ค๋ฅผ ์ํํ ํ ๋น๋๊ฐ ์ต์ ๊ธฐ์ค(์: ์คํ ํ์ผ ํฌํจ)์ ์ถฉ์กฑํ๋ ๊ฒ์ผ๋ก ํ์ธ๋๋ฉด [Ready]๋ก ํ์ํฉ๋๋ค.
๋น๋๋ ์ธ์คํด์ค ํ๋ฆฟ์ ์ ์ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
GameLift์ ํ๋ฆฟ์ ์์ฑํ๋๋ก ์์ฒญํ๋ฉด ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก EC2 ์๋ ์ธ์คํด์ค๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด ์ธ์คํด์ค๋ ๋น๋์ ๋ณต์ฌ๋ณธ๊ณผ ํจ๊ป ๋ก๋๋ฉ๋๋ค.
ํ๋กํ ํ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ค๋ ์ท์ธ Amazon Machine Image(AMI)๊ฐ ์์ฑ๋ฉ๋๋ค. ์ ์ธ์คํด์ค๋ ๊ธฐ๋ณธ ์ด์ ์ฒด์ ์์ ์ค์น ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์์๋๋ ๊ฒ์ด ์๋๋ผ AMI์์ ์์ฑ๋ฉ๋๋ค.
AMI๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ ์ํํธ์จ์ด๊ฐ ์ด๋ฏธ ์ค์น๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค๊ฐ ๋ ๋นจ๋ฆฌ ์์๋๋ค๋ ์ด์ ์ด ์์ต๋๋ค. ๋ค๋ฅธ ์ด์ ์ผ๋ก๋ ์ฌ์ ์ค์น๋ ์ํํธ์จ์ด๋ฅผ ๋ค์ด๋ก๋ ํ ํ์๊ฐ ์๊ณ ์ํํธ์จ์ด ๋ฒ์ ์ด ์ด๋ฏธ ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์ ์ ์ด๋ผ๋ ๊ฒ์ด ์์ต๋๋ค.
AMI๊ฐ ์์ฑ๋๋ฉด GameLift๊ฐ ํ๋ฆฟ์ ๊ตฌ์ฑํฉ๋๋ค. ํ๋ฆฟ ์์ฑ์ ๋ง์ง๋ง ์์ ์ ํ๋ฆฟ ๋ด์์ ์ฒซ ๋ฒ์งธ EC2 ์ธ์คํด์ค๋ฅผ ์์ํ๋ ์ฒซ ๋ฒ์งธ ์กฐ์ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. AMI์์ ์ธ์คํด์ค๊ฐ ๊ตฌ์ถ๋๋ฏ๋ก ์ด๋ฏธ ๋ก์ปฌ ํ์ผ ์์คํ ์ ๋น๋๊ฐ ์์ต๋๋ค.
ํ๋ฆฟ์์ TLS๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ AMI๋ฅผ ์์ฑํ๋ ๋์ ํ๋ฆฟ์ ๋ํ TLS ์ธ์ฆ์๊ฐ ์์ฑ๋์ด AMI์ ํฌํจ๋ฉ๋๋ค.
์ธ์คํด์ค๋ฅผ ์ด๊ธฐํํ๋ ๋์ ํ๋ ์ด์์ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ์์๋ฉ๋๋ค. ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค ๋๋ ๊ฒ์ ์๋ฒ๋ ๋น๋์ ํฌํจ๋ ๊ฒ์ ์๋ฒ ์ํํธ์จ์ด๋ฅผ ์คํํฉ๋๋ค. ๊ฒ์ ์๋ฒ๋ GameLift API ํธ์ถ์ ํตํด GameLift์ ํตํฉํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ํํด์ผ ํฉ๋๋ค. ์ด ์ ๋ฆฌ ์์ ์ ์๋ฃํ ํ์๋ ์ ํด ์ํ๋ก ์ ํ๋ฉ๋๋ค. ์ด ์์ ์์ ์ํํธ์จ์ด๊ฐ ๋ก๋๋๊ณ ํ๋ก์ธ์ค์์ ์คํ๋์ง๋ง ์์ง ๊ฒ์ ์ธ์ ์ ์กด์ฌํ์ง ์์ต๋๋ค.
GameLift์ ์ผ๋ถ(์ธ์คํด์ค์ GameLift ์์ด์ ํธ)๋ ๊ฒ์ ์๋ฒ ํ๋ก์ธ์ค์ ์๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ๊ทธ ์ค ํ๋๋ ํํธ๋นํธ ์ํ ํ์ธ์ ๋๋ค. ํ๋ก์ธ์ค ์ํ ํ์ธ์ด ์ธ ๋ฒ ๋๋ฝ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด ์ข ๋ฃ ๋ฐ ๊ต์ฒด๋ฉ๋๋ค. ํ๋ฆฟ์ ์ ์ํ ๋๋ ์ธ์คํด์ค์ ์์ด์ผ ํ๋ ๊ฒ์ ์๋ฒ์ ์๋ฅผ ์ง์ ํฉ๋๋ค. ์คํ ์ค์ธ ๊ฒ์ ์๋ฒ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ GameLift๋ ์ฌ์ฉ์๊ฐ ์ง์ ํ ์๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋ ๋ง์ ๊ฒ์ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค.
์ธ์คํด์ค์์ ๊ณ ์ ๋ ์์ ๊ฒ์ ์๋ฒ๋ฅผ ์ ์งํ๋ ๊ฒ์ ์ธํ๋ผ ๊ด๋ฆฌ ์์คํ ์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ ๋๋ค.
GameLift API ์์ฒญ์ด ์์ผ๋ฉด GameLift๊ฐ ๊ฒ์ ์๋ฒ์ ๊ฒ์ ์ธ์ ์ ์์ํ ๊ฒ์ ์์ฒญํฉ๋๋ค. ์ธ์ ์ ๊ฒ์์ ์์ํ๊ธฐ ์ ์ ์ด๊ธฐํ ๋ฐ ์ค์ ์ ์ํํฉ๋๋ค. ๋ง์ง๋ง ์์ ์์ ์ API๋ฅผ ํตํด ํ๋ ์ด์ด๋ฅผ ๋ฐ์ ์ค๋น๊ฐ ๋์์์ GameLift์ ์๋ฆฌ๋ ๊ฒ์ ๋๋ค.
์ผ์ชฝ์ ์๋น์ค ์ํํธ์จ์ด๋ฅผ ๊ฒ์ ์๋ฒ์ ํตํฉํ๋ ๋ฐ ํ์ํ ๋จ๊ณ๊ฐ ๋์ ์์ต๋๋ค. GameLift Server SDK๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ๊ตฌ์ถํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ฒ ์ํํธ์จ์ด์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์๋ ๊ฒ๊ณผ ๊ฐ์ ํ์ ํจ์ ํธ์ถ์ ๊ตฌํํด์ผ ํฉ๋๋ค.
ํ์ ํจ์๋ย InitSdk( ),ย ProcessReady( ),ย ActivateGameSession( )ย ๋ฐย **ProcessEnding( )**์ ํฌํจํ์ฌ 4๊ฐ์ ๋๋ค. ํ์ ์ฝ๋ฐฑ์ย onStartGameSession( ),ย onProcessTerminate( )ย ๋ฐย onHealthCheck( )์ 3๊ฐ์ ๋๋ค.ย ์ด ํจ์ ๊ทธ๋ฃน์ ์ ์ฒด ๊ฒ์ ์๋ฒ ๋ฐ ๊ฒ์ ์ธ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ค๋ช ์์์ ์ด๋ฌํ ํจ์์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด ํตํฉ
GameLift๋ฅผ ์ฌ์ฉํ ๋์ ํต์ฌ ์ค ํ๋๋ GameLift SDK๊ฐ ๋ค์ํ ์ถ์ํ ์์ค์์ API ๊ธฐ๋ฅ์ ์ง์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ฒ์์ ๋งค์น๋ฉ์ดํน ๋ฐ ๊ฒ์ ์ธ์ ๋ฐฐ์น๊ฐ ํ์ํ์ง ์ฌ๋ถ์ GameLift๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ง ์๋๋ฉด ์ฝ๋์์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ณตํ ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๋งค์น๋ฉ์ดํน์ ์ ํํ๋ฉด ๋งค์น๋ฉ์ดํน ์๋น์ค๊ฐ ํ์ ์์ค ์๋น์ค๋ฅผ ํฌํจํ๊ณ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋งค์น๋ฉ์ดํน ์๋์ ์์ค๊ณผ ์ง์ ํต์ ํ ํ์๊ฐ ์์ต๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น์ ์ธ์ ๊ด๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ฒ์ ์ธ์ ๋ฐฐ์น๋ก ์์ ํ๋ ๊ฒฝ์ฐ ์ธ์ ๊ด๋ฆฌ์ ์ง์ ํต์ ํ ํ์๊ฐ ์์ต๋๋ค. ์ฌ์ฉํ ์ถ์ํ ์์ค์ ๋ํ ๊ฒฐ์ ์ ๋ฐ๋ผ API ์ฌ์ฉ์ ์ ๋ ฌ, ์ง์ค ๋ฐ ๊ฐ์ํ ์ ์์ต๋๋ค.
๋งค์น๋ฉ์ดํน์ย StartMatchmaking( ),ย DescribeMatchmaking( )ย ๋ฐย **StopMatchmaking( )**์ด๋ผ๋ 3๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์ฒญ์์๊ฒ ๋งค์น ์ํ๋ฅผ ์๋ฆด ๋๋ ์ด๋ป๊ฒ ํ ๊น์? ํธ์ถ์ ๋น์ฐจ๋จ(๋ ผ-๋ธ๋กํน)์ ๋๋ค.**DescribeMatchmaking( )**์ ํธ์ถํด์ผ ํ ์ ์์ต๋๋ค. ๋ณด๋ค ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ Amazon SNS ๋จ์ ์๋ฆผ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๊ฒ์ ๋ฐฑ์๋์์ SNS ์ฃผ์ ๋ฅผ ๊ตฌ๋ ํฉ๋๋ค. FlexMatch ๋งค์น๋ฉ์ด์ปค๊ฐ ์ฃผ์ ์ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ํฉ๋๋ค. ๊ด์ฌ ์๋ ์ด๋ฒคํธ๊ฐ ํ์๋๋ฉดย **DescribeMatchmaking( )**์ ํธ์ถํ์ฌ ํ์ฌ ์ํ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๊ฒ์ ์ธ์ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ ์ด์์ ๊ฒ์ ์ธ์ ๋ฐฐ์น ๋๊ธฐ์ด์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
GameLift์ ๋งค์น๋ฉ์ดํน ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๊ฒ์ ์ธ์ ๋ฐฐ์น ํจ์๊ฐ ์์คํ ๋ด๋ถ์์ ๊ตฌ๋๋๋ฏ๋ก ์ง์ ํธ์ถํ ํ์๊ฐ ์์ต๋๋ค. ์์ฒด ๋งค์น๋ฉ์ดํน ์ํํธ์จ์ด๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ ํด๋น ์ํํธ์จ์ด์์ย StartGameSessionPlacement( )ย ๋ฐย **DescribeGameSessionPlacement( )**๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ์ฝ๋๋ก SNS ์๋ฆผ์ ๊ตฌ๋ ํ์ฌ GameLift ์ด๋ฒคํธ๋ฅผ ์ธ์ํ ์ ์์ต๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก GameLift์ ๋งค์น๋ฉ์ดํน ์์คํ ๋๋ ๊ฒ์ ์ธ์ ๋ฐฐ์น ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ์ ๊ด๋ฆฌ ํจ์๊ฐ ๋ด๋ถ์์ ๊ตฌ๋๋ฉ๋๋ค.
๋ฐฐ์น ์ํํธ์จ์ด๋ฅผ ์ง์ ์์ฑํ ๊ฒฝ์ฐย **SearchGameSessions( )**๋ฅผ ํธ์ถํ์ฌ ๊ธฐ์กด ๊ฒ์์ ์ฐพ๊ณ ย **CreateGameSession( )**์ ํธ์ถํ์ฌ ์ ๊ฒ์์ ์์ํ ์ ์์ต๋๋ค.ย **CreatePlayerSessions( )**๋ฅผ ํธ์ถํ์ฌ ํ๋ ์ด์ด ์์ฒญ์ ๋ํ ์ฌ๋กฏ์ ์์ฝํ ์ ์์ต๋๋ค.
Realtime Server Client API ํตํฉ
Realtime Server Client API๋ ํ๋ ์ด์ด ๊ฒ์ ์ํํธ์จ์ด์ ๋ด์ฅ๋ฉ๋๋ค.
์ด API๋ Realtime ๊ฒ์ ์๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋ ๊ตฌ์ฑ ์์์ ํต์ ํฉ๋๋ค.
Realtime ํด๋ผ์ด์ธํธ๋ Realtime ๊ฒ์ ์ธ์ ์ ๋ํ 2๊ฐ์ ํต์ ์ฑ๋์ ์ฝ๋๋ค.
ํ๋๋ ์๋๋ฅผ ์ํ UDP์ ๋๋ค. ๋ค๋ฅธ ํ๋๋ ์์ ์ฑ์ ์ํ TCP์ ๋๋ค. ๋๋ถ๋ถ์ ํต์ ์์ ํด๋ผ์ด์ธํธ๋ UDP๋ฅผ ๋จผ์ ์๋ํ๊ณ ์๋ํ์ง ์์ผ๋ฉด TCP๋ฅผ ๋์ ์ฌ์ฉํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ opCode๋ฅผ ํฌํจํ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค. opCode๋ ์๋ฒ ์ธก์์ ์ํํ ์์ ์ ์ ์ํฉ๋๋ค.
์๋ฒ์์ opCode ๋งต์ ์ฝ๋๋ฅผ ์คํฌ๋ฆฝํธ์ ์ฐ๊ฒฐํ๊ณ ์คํ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
๋ฐ๋ผ์ ํต์ ์ ์์ธก, ์ฆ opCode๋ฅผ ๋ณด๋ด๋ ํด๋ผ์ด์ธํธ์ ๊ทธ ๊ฒฐ๊ณผ ์คํ๋๋ ์๋ฒ ์ธก ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
๋๊ธฐ์ ๋ฉ์์ง๋ ๊ฒ์ ์ธ์ ์ฐ๊ฒฐ ๋ฐ ์ฐ๊ฒฐ ํด์ ์ ๊ฒ์ํ๋ ์ด ์ค์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋น๋๊ธฐ์ ๋ฉ์์ง๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ ์ธก ์ด๋ฒคํธ์ ์๋ตํ๋ ์ฝ๋ฐฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
-
๊ฒ์ ๋ฐ์ดํฐ
๋น์ฆ๋์ค ์ด์ ๋ฐ ์์ฌ ๊ฒฐ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ฏธ์น๋ ์ํฅ์ ๋งค์ฐ ํฝ๋๋ค. GameLift๋ ๋ผ์ด๋ธ ๊ฒ์ ์ด์, ๊ฒ์ ์ค๊ณ ๋ฐ ๋น์ฆ๋์ค ์์ฌ ๊ฒฐ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
GameLift๋ GameLift ๋์๋ณด๋์ ๋ฐ์ดํฐ๋ฅผ ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ชจ๋ ๊ฒ์ ๋น๋์ ์นดํ๋ก๊ทธ๊ฐ ํฌํจ๋ฉ๋๋ค. ํ๋ฆฟ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ ํ์๋ฉ๋๋ค. ๊ฒ์ ์ธ์ ๊ณผ ํ๋ ์ด์ด ์ธ์ ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋๋ฉฐ
๊ฐ๋ ฅํ๊ณ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์งํ ๊ทธ๋ํ ์์คํ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด ๋ชจ๋ ์ ๋ณด๋ ๊ฒ์ ์๋น์ค๋ฅผ ์ดํด๋ณด๊ณ ์ํ๋ฅผ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ํ ๊ฒ์ ์๋น์ค ์ด์ ์ ์ฐจ๋ฅผ ์์ฑํ๊ณ ๋ผ์ด๋ธ ์ด์์ ์ํ ํ๋ ์ด๋ถ์ ์ ์ํ๋ ๋ฐ๋ ์ ์ฉํฉ๋๋ค.
GameLift๋ ํน์ ์งํ๋ฅผ Amazon CloudWatch๋ก ์ ๋ฌํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ๋ฆฟ, ๋๊ธฐ์ด ์งํ ๋ฐ ๋งค์น๋ฉ์ดํน ๊ด๋ จ ์งํ๊ฐ ํฌํจ๋ฉ๋๋ค. CloudWatch์์ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ ๋ณด๊ธฐ๋ฅผ ํตํด ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ํฐ๋ง ๋ฐ ์์งํ๊ณ ์ด๋ฅผ ๋ค๋ฅธ AWS ์๋น์ค ๋๋ ์จํ๋ ๋ฏธ์ค ์๋ฒ์์ ์ ๊ณตํ๋ ์ ๋ณด์ ํตํฉํ ์ ์์ต๋๋ค. ย CloudWatch๋ GameLift์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋ ๊ทธ๋ํ ๊ธฐ๋ฅ์ ๋ฐ์ด๋์ต๋๋ค. ์๋ฅผ ๋ค์ด GameLift์์๋ ๋ผ์ด๋ธ ์ด์์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. CloudWatch์์๋ ์งํ๋ฅผ ์ฌ์ฉํ์ฌ ๋น์จ, ์งํ ๋ฐ ํต๊ณ๋ฅผ ๊ณ์ฐํ๊ณ ์ด๋ฌํ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ํ๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
GameLift๋ API ์์ ์ ๊ธฐ๋กํ๋ AWS CloudTrail๊ณผ๋ ํตํฉ๋ฉ๋๋ค.
CloudTrail์ ๊ฑฐ๋ฒ๋์ค, ๊ท์ ์ค์ ๋ฐ ๊ฐ์ฌ๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค.
CloudTrail์ด ์บก์ฒํ๋ GameLift ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด๊ณ ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ด ๋ณด๊ณ ์๋ฅผ ๋ณด๊ดํ๊ณ S3๋ฅผ ํตํด ๊ณต์ ํ๊ฑฐ๋ ๋ณด๊ณ ์๋ฅผ ์ฌ์ฉํ์ฌ Amazon SNS ๋จ์ ์๋ฆผ ์๋น์ค๋ก ์ง์์๊ฒ ์๋ฆผ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
์ด์ GameLift ๋ฐ์ดํฐ ์ง์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋์๋ณด๋๋ ๊ฒ์ ์๋น์ค ๋ชจ๋ํฐ๋ง์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. Amazon CloudWatch์ ํตํฉํ๋ฉด ํต๊ณ ๋ถ์์ ์ํํ ์ ์์ต๋๋ค.
Amazon CloudTrail๊ณผ ํตํฉํ๋ฉด ๊ฑฐ๋ฒ๋์ค ๋ฐ ๊ฐ์ฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, GameLift์์ ์์ฑ๋๋ ๋ฐ์ดํฐ๋ API๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ฆ, ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ๊ธฐ์ ๋ถ์ ํ์ดํ๋ผ์ธ์ ํตํฉํ๊ณ ์คํธ๋ฆฌ๋ฐ ๋๋ ๋ฐฐ์น ๋ฐ์ดํฐ ๋ถ์์ ์ฌ์ฉํ๊ฑฐ๋ ๊ธฐ๊ณ ํ์ต๊ณผ ๊ฒฐํฉํ์ฌ ๊ณ ๊ธ ๋ถ์ ๋ฐ ์์ฌ ๊ฒฐ์ ์ ํ์ฉํ๊ณ ์ธ๊ณต ์ง๋ฅ ๊ธฐ๋ฅ์ ๊ฒ์ ์๋น์ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
-
๊ฒ์ ์ฌ๋ฌด
๊ฒ์ ๊ธ์ต์ ๋น์ฉ์ ์ํฅ์ ์ค ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒฝ๊ณ ํ๊ณ ๋์ํ๊ธฐ ์ํด ๋น์ฉ ๋ฐ ๊ธฐ๋ฅ์ ์์ธก, ์ถ์ ๋ฐ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ๋งํฉ๋๋ค.
์ฌ๋ฌด ์ ๋ณด๋ ๊ฒ์ ์๋น์ค ๋น์ฆ๋์ค์์ ์์ต์ฑ์ ์ต์ ํํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
GameLift์ ์ฒซ ๋ฒ์งธ ์ฌ๋ฌด ๊ธฐ๋ฅ ๋ฒ์ฃผ๋ ๋น์ฉ ์ ์ด์ ๋๋ค.
๋น์ฉ ์ ์ด์๋ ๋ ๊ฐ์ง ์ข ๋ฅ์ ๋ณ์๊ฐ ์์ต๋๋ค. ์ ์ดํ ์ ์๋ ์ข ์ ๋ณ์์ ์ ์ดํ ์ ์๋ ๋ ๋ฆฝ ๋ณ์์ ๋๋ค.
๊ธฐ๋ณธ์ ์ธ ๋ ๋ฆฝ ๋ณ์๋ ํ๋ ์ด์ด ์์์ด๋ฉฐ ์ ์ ์ผ๋ก ์ธ๋ถ ์์ธ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ณ๋๋ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ ๋ฆฝ ๋ณ์๋ก๋ ์ธํฐ๋ท์ ์์ ์ฑ ๋ฌธ์ ๋ก ์ธํ ๋คํธ์ํฌ ๊ฐ์ฉ์ฑ๊ณผ ์์ฅ ์์จ์ ๋ฐ๋ผ ๋ณ๋๋๋ ์คํ ์ธ์คํด์ค์ ๊ฐ์ ๋ฆฌ์์ค ๋น์ฉ์ด ํฌํจ๋ฉ๋๋ค.
์ข ์ ๋ณ์์๋ ๊ฒ์ ์๋น์ค๋ฅผ ๋น์ฆ๋์ค ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ GameLift์ ๋ชจ๋ ์ต์ ๊ณผ ์ค์ ์ด ํฌํจ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ๋ฆฟ ์ค๊ณ, Auto Scaling, ์คํ ์ธ์คํด์ค, Realtime ์๋ฒ, FleetIQ ๋ฐ FlexMatch๊ฐ ํฌํจ๋ฉ๋๋ค.
์ฌ๋ฌด ๊ธฐ๋ฅ์ ๋ ๋ฒ์งธ ๋ฒ์ฃผ๋ ๊ฐ๊ฒฉ ๋ฐ ๋น์ฉ ์ ๋ณด์ ๋๋ค. ๊ฐ๊ฒฉ์ API๋ฅผ ํตํด ๊ฒ์๋๊ณ ์ ๊ณต๋ฉ๋๋ค. ์ฆ, ํ์ฌ ๊ฐ๊ฒฉ์ ๊ฒ์ ๊ธฐ์ ๋ถ์ ํ์ดํ๋ผ์ธ์ ํตํฉํ ์ ์์ต๋๋ค. ๋์๋ณด๋์๋ 3๊ฐ์์ ๊ณผ๊ฑฐ ๊ฐ๊ฒฉ ์ฑ ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฏ๋ก ํฅํ ๊ฐ๊ฒฉ์ ์์ธกํ๊ณ ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค. GameLift ์ธ์คํด์ค ์๊ธ์ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ EC2 ๋น์ฉ ์ถ์ ๊ณ์ฐ๊ธฐ๊ฐ ์์ต๋๋ค. GameLift๋ ๊ณ์ ํ ๋น๋, ์์ฐ ์์ฑ ๊ธฐ๋ฅ, ๋น์ฉ ์ํฐ๋งํฌ์ ๋๋ฌํ์ ๋ ์๋ ค์ฃผ๋ ์กฐ๊ฑด๋ถ ์๋ฆผ ์ค์ ๊ธฐ๋ฅ ๋ฑ ๋ชจ๋ AWS ์ฌ๋ฌด ๊ธฐ๋ฅ์ ์์ํฉ๋๋ค.
GameLift๋ AWS ๋น์ฉ ๊ด๋ฆฌ ์ฝ์๊ณผ ํตํฉ๋ฉ๋๋ค.
์ฌ๊ธฐ์์ ์ ๊ตํ ๋ฆฌ์์ค ์ฌ์ฉ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๊ณ S3 ๋ฒํท์ ํตํด ๊ณต์ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ณด๊ณ ์๋ ์ง์ถ๊ณผ ๋ณ๋๋ก ๋ฆฌ์์ค ์ฌ์ฉ์ ์๋ณํ์ฌ ๊ฒ์ ์๋น์ค์์ ๋ฆฌ์์ค๊ฐ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋ถ์ํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
GameLift ์ฌ๋ฌด ์ง์์ ๊ฒํ ํ๊ฒ ์ต๋๋ค.
GameLift์ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋น์ฉ ๊ด๋ฆฌ, ์ฐ์ํ ๊ฒ์ํ๋ ์ด ๋๋ ๋ ๋ค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
GameLift๋ ๋ณํํ๋ ๋ค์ํ ๋น์ฆ๋์ค ์ฐ์ ์์๋ฅผ ์ง์ํ ์ ์๋ ์ ์ฐ์ฑ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
GameLift๋ ๊ฐ๊ฒฉ ํฌ๋ช ์ฑ์ ์ ๊ณตํ๋ฏ๋ก ์ข ์ ๋ณ์์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๊ฒฉ์ ์์ฝ๊ฒ ๋ถ๋ฆฌํ์ฌ ๋ณด๋ค ์ ํํ ๋น์ฉ์ ์ถ์ ํ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, GameLift๋ฅผ AWS ๋น์ฉ ๊ด๋ฆฌ ์ฝ์๊ณผ ํตํฉํ์ฌ ์ ๊ตํ ์ฌ๋ฌด ๋ด์ญ์ ๋ณด๊ณ ํ ์ ์์ต๋๋ค.
Game Client์์ Lambda๋ฅผ ํตํด StartMatchmaking API๋ฅผ ํธ์ถ ํ ํ ํด๋ง ๋ฐฉ์์ผ๋ก DescribeMatchmaking API ๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ, ์ค ์๋น์ค ํ๊ฒฝ์์ Throttling์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ทธ๋์ GameLift ์ชฝ์ผ๋ก DescribeMatchmaking API๋ฅผ ํด๋ง ๋ฐฉ์์ผ๋ก ํธ์ถํ๋ ๊ฒ์ด ์๋๋ผ
์๋์ ๊ฐ์ด ๋ค๋ฅธ ๊ณณ์ผ๋ก Match Status ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ ๊ทธ ๊ณณ์ ํ์ธ ํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด SNS Topic์ ์์ฑํ๊ณ MatchEvent API ๊ตฌ๋ ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋งค์น๋ฉ์ดํน ๊ตฌ์ฑ ์ Notification ๋์์ผ๋ก SNS ARN์ ์ ๋ ฅํฉ๋๋ค.
์์ ๊ฐ์ด ๊ตฌ์ฑ ์ GameLift ๋งค์น๊ฐ SNS Topic ์ผ๋ก ๋ฐ๋ก ํธ์๋๋ฉฐ, Lambda ํจ์๊ฐ ์ด๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Spot Fleet์ ์๋ก ๋ค๋ฅธ 2๊ฐ ํ์ ์ผ๋ก ๊ตฌ์ฑํ๋ฉด GameLift ์ FleetIQ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ Spot Interruption ์ด ๊ฐ์ฅ ๋ ๋ฐ์ํ ๊ฒ์ผ๋ก ์ถ์ ๋๋ Spot Fleet ์ผ๋ก ๊ฒ์ ์ธ์ ์ด ๋ฐฐ์น ๋ฉ๋๋ค.
์ฌ๊ธฐ์ On-demand Fleet์ ํ๋ ๋์๋ฉด ๊ฒ์ ์์ฒด์ ์์ ์ฑ์ ํฌ๊ฒ ์ฌ๋ฆฌ์ค ์ ์์ต๋๋ค.
์์์ ์งํํ ํ๋ก์ ํธ์์๋ ํ๋์ ํ๋ก์ธ์ค๊ฐ ํ๋์ ๊ฒ์ ์ธ์ ์ ๋ด๋นํฉ๋๋ค.
ํ๋ฆฟ ์์ฑ ์ ์ฌ์ฉํ๋ CLI ๋ฅผ ์ดํด๋ด ๋๋ค.
\ctc-game-server\scripts\GameLift\02-GameLift-CreateFleet.sh
# https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-fleet.html
# Set variables to suit your development environment
FLEET_NAME=BattleFleet
BUILD_ID=build-6eaa542c-f1bc-4c96-90ba-c6ce44b62d98
EC2_INSTANCE_TYPE=c5.large
FLEET_TYPE=SPOT
LAUNCH_PATH=BattleServer.exe
RUNTIME_CONFIGURATION='ServerProcesses=[
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50001,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50002,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50003,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50004,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50005,ConcurrentExecutions=1}
]'
INSTANCE_ROLE_ARN='arn:aws:iam::831150897155:role/mzc-game-gamelift-fleet-role'
aws gamelift create-fleet \
--name "$FLEET_NAME" \
--build-id "$BUILD_ID" \
--ec2-instance-type "$EC2_INSTANCE_TYPE" \
--fleet-type "$FLEET_TYPE" \
--runtime-configuration "$RUNTIME_CONFIGURATION" \
--instance-role-arn "$INSTANCE_ROLE_ARN" \
--ec2-inbound-permissions 'FromPort=50001,ToPort=50005,IpRange=0.0.0.0/0,Protocol=TCP'
runtime configuration์ ์ค์ ํ ๋ถ๋ถ์ ๋ณด๋ฉด 5๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ค์ ํด ๋์ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ์ค์ ํ์ ๋ ์ค์ 5๊ฐ์ ๊ฒ์ ์ธ์ ๊น์ง ๊ฒ์์ ์งํํ ์ ์์ต๋๋ค.
๋ง์ฝ 1000๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋์ด๋ค๋ฉด Launch parameters๋ก ๋๊ฒจ์ค Port ํ ๋น์ด 50001~51000์ด ๋ ๊ฒ์ ๋๋ค.
์๋ฒ ๊ตฌํ ํ ๋จ์ผ ์ธ์คํด์ค ๋ด์์ ๋ช ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋์ฐ๊ณ ํ๋ ์ด ๊ฐ๋ฅ ํ์ง ๋ถํ ํ ์คํธ ์งํ ํ Fleet ์์ฑ ์ ํด๋น ์ ๋งํผ ServerProcesses๊ฐ์ ์ค์ ํด์ค์ผ ํฉ๋๋ค. CI/CD ๊ตฌ์ฑ ์ CLI ๋๋ SDK ๋ฅผ ํตํ Fleet ์์ฑ ์ ํ๋ก์ธ์ค ์๋ฅผ ๋ฐ์์ ๊ทธ๋งํผ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ด ํตํฉ๋์ด์ผ ํฉ๋๋ค.
Fleet์ด ํ์ฑํ๋๋ฉด ์ฝ์์ Scaling ํญ์์ ์์ฝ๊ฒ Scaling ์ ์ฑ ์ ์ค์ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ด ๋๋ target tracking scaling ์ ์ฑ ์ธ์๋ ํน์ํ ์ํฉ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด target tracking ๊ธฐ๋ฐ scaling์ ๋ณด์ํ๋๋ฐ ์ธ ์ ์๋ rule-based policies scaling ์ ์ฑ ์ ์ ์ฉ ํ ์ ์์ต๋๋ค.
https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-autoscaling.html
Unity MLAPI๋ Unity ๊ฒ์ ์์ง์ด ๋คํธ์ํน์ ์ถ์ํํ๊ธฐ ์ํด ๊ตฌ์ถ ๋ ์ค๊ฐ ์์ค์ ๋คํธ์ํน ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ฎ์ ์์ค์ ํ๋กํ ์ฝ๊ณผ ๋คํธ์ํน ํ๋ ์ ์ํฌ๊ฐ ์๋ ๊ฒ์์ ์ง์คํ ์ ์์ต๋๋ค.
Unity์ MLAPI๋ฅผ ์ด์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๋ ์กฐ์, ์๋ฒ์์ ์กฐ์์ ๋ํ ๊ณ์ฐ ๋ฐ ๋ธ๋ก๋์บ์คํ ํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐํ๋ ๊ฒ์ด ์๋๋ผ ํตํฉ์ผ๋ก ๊ฐ๋ฐ ํ ์๋ฒ๋ก ๋น๋, ํด๋ผ์ด์ธํธ๋ก ๋น๋ ํ ์ ์์ต๋๋ค.
- API ๊ฒ์ดํธ์จ์ด
- GameAPI
- Lambda
- CreateGame
- SearchGame
- Login
- CreatePlayer
- AccountJoin
- BattleResult
- SQS
- mzc-game-sqs
- GameLift Fleet
- GameLift Build
- RDS
- mzc-game-rds
- RDS Subnet group
- mzc-game-db-subnetgroup
- Cloud9
- IAM
- ์ญํ
- mzc-game-gamelift-fleet-role
- mzc-game-lambda-role
- ์ ์ฑ
- GameLiftFullAccess
- ์ญํ
- NAT ๊ฒ์ดํธ์จ์ด
- mzc-game-nat
- ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด
- mzc-game-ig
- ์๋ธ๋ท
- mzc-game-public-subnet1
- mzc-game-public-subnet2
- mzc-game-private-subnet1
- mzc-game-private-subnet2
- ๋ผ์ฐํธ ํ
์ด๋ธ
- mzc-game-private-rt
- mzc-game-public-rt
- VPC
- mzc-game-vpc
- ๋ณด์ ๊ทธ๋ฃน์ด ๊ฐ์ด ์ญ์ ๋ฉ๋๋ค.
- mzc-game-lambda-sg
- mzc-game-rds-sg
- ๋ณด์ ๊ทธ๋ฃน์ด ๊ฐ์ด ์ญ์ ๋ฉ๋๋ค.
- mzc-game-vpc
END