모바일 serverless architecture 세미나 lab...

26
Amazon Web Services – Mobile Hub Lab guide Jan 2016 Page 1 of 26 Lab Guide

Upload: others

Post on 21-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page1of26

LabGuide

Page 2: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page2of26

Table of Contents

Lab1 개요..........................................................................................................................................................................3

준비조건............................................................................................................................................................................3

STEP1.클라이언트개발도구의설정.........................................................................................................................4안드로이드�스튜디오�다운로드....................................................................................................................................................4Genymotion 다운로드................................................................................................................................................................4안드로이드�스튜디오와�Genymotion 의�연동.........................................................................................................................6

STEP2.모바일허브를사용해서패키지생성...........................................................................................................8안드로이드용�소스패키지�생성....................................................................................................................................................8앱기능설정........................................................................................................................................................................................8소스�패키지의�확인......................................................................................................................................................................11기능�추가........................................................................................................................................................................................12확장된�소스�코드의�확인.............................................................................................................................................................15

Lab2 개요.......................................................................................................................................................................16

준비조건.........................................................................................................................................................................16

STEP1.클라이언트개발도구의설정......................................................................................................................17안드로이드�스튜디오�및�Genymotion 의�설치......................................................................................................................17모바일�예제의�다운로드..............................................................................................................................................................17안드로이드�스튜디오�SDK 설치.................................................................................................................................................17

STEP2안드로이스스튜디오로최초프로젝트임포팅......................................................................................19안드로이드�스튜디오�프로젝트�임포팅.....................................................................................................................................19최초�프로젝트의�실행..................................................................................................................................................................19

STEP3AWS서비스생성.............................................................................................................................................21CognitoIdentityPool생성.......................................................................................................................................................21S3�bucket�생성............................................................................................................................................................................24DynamoDB�Table�생성..............................................................................................................................................................25Kinesis�스트림�생성.....................................................................................................................................................................25Mobile�Analytics�의�생성..........................................................................................................................................................25에러의�수정....................................................................................................................................................................................26

Page 3: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page3of26

Lab 1 개요

AWS 모바일 허브(Mobile Hub) 서비스를 사용해서 안드로이드용 기본 데모 패키지를 생성합니다. 생성된 패키지를 다운로드 받아 실행하고 생성된 소스 구조를 살펴봅니다.

모바일 허브를 통해 생성된 AWS 서비스를 살펴보고 어떤 서비스들이 어떻게 자동으로 생성되었는지 확인합니다.

모바일 허브의 구성 단계에서 연방화(Federation) 인증을 추가하고 스토리지 람다 서비스들도 추가합니다. 다시 패키지를 다운로드 받아 실행하고 앞서와 동일하게 소스 구조와 AWS 서비스를 확인합니다.

준비 조건

이 랩을 수행하려면 다음이 필요합니다.

• Microsoft Windows, Mac OS X 또는 Linux(Ubuntu, SuSE 또는 Red Hat)를 실행하며 Wi-Fi 에 연결된 노트북 컴퓨터에 대한 액세스 권한

• 인터넷 브라우저: Chrome, Firefox 또는 IE9(이전 버전의 Internet Explorer 는 지원되지 않음)

• PuTTY 등의 SSH 클라이언트 사용

• AWS 계정 및 기본적인 AWS 사용 방법 숙지

• 안드로이드 스튜디오 와 Genymotion 시뮬레이터로 개발 도구 설치 및 설정

Page 4: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page4of26

STEP1. 클라이언트 개발 도구의 설정

클라이언트 도구는 기본적으로 윈도우 환경에서 개발한다고 가정하겠습니다. 맥 사용자의 경우 몇가지 기본적인 차이점은 맥 OS 에 따른 것이므로 쉽게 차이점을 파악할 수 있습니다.

안드로이드�스튜디오�다운로드�

다음 URL 로 안드로이드 스튜디오를 다운로드 받습니다.

https://developer.android.com/sdk/index.html

윈도우용 패키지를 다운로드 받아서 설치 합니다. 설치를 실행하면 아래 그림 처럼 필요한 파일들을 추가로 설치하게 됩니다.

설치를 완료하면 스튜디오를 실행할 수 있습니다. 안드로이드 스튜디오 설치를 완료하고 나면, Gemymotion 을 다운로드 받습니다.

Genymotion 다운로드

다음 링크에서 다운로드 합니다. Genymotion 을 시뮬레이터로 사용하는 것은 Genymotion 이 안드로이드 스튜디오의 번들 시뮬레이터보다 훨씬 실행속도가 빠르기 때문입니다.

https://www.genymotion.com

Page 5: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page5of26

개별적인 계정을 만드신 후에, 무료 버전을 다운로드 받으십시오. 받을 때는 아래 그림처럼 virtual box 까지 다운로드 받습니다.

먼저 Virtual box 를 인스톨 하기 바랍니다.

이후 Genymotion 을 인스톨 합니다.

Genymotion 이 설치되고 나면 디바이스를 설치하라는 메시지가 나옵니다. 원하는 디바이스를 선택하시기 바랍니다.

Page 6: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page6of26

여기서는 Galaxy, Nexsus 등 원버전하는 것을 설치하면 됩니다. 단 API 는 19 버전을 선택해 주시기 바랍니다.

선택한 디비아스가 인스톨되면 다음과 같은 화면이 나옵니다.

안드로이드�스튜디오와�Genymotion 의�연동�

안드로이드 스튜디오에서 Genymotion 을 사용하려면 별도의 플러그인을 설치하면 됩니다.

안드로이드 스튜디오 메뉴에서 File>Settings 를 선택하면 화면과 같이 설정화면이 나옵니다.

Page 7: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page7of26

여기서 Plugins 를 선택하고 화면 아래 Browse repositories 버튼을 선택하면 다음과 같은 화면이 나오는데 여기서 ‘genymotion’을 입력해서 해당 플러그인을 인스톨 하시기 바랍니다.

이렇게 인스톨을 하고나면 안드로이드 스튜디오 아이콘 메뉴에 “Genymotion”아이콘이 생깁니다. 이후 실행을 위해서는 먼저 Genymotion 의 원하는 디바이스를 띄운 후에 이 아이콘을 누르면 해당 디바이스로 개발 소스를 패키지해서 배포하게 됩니다.

Page 8: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page8of26

STEP2. 모바일 허브를 사용해서 패키지 생성

안드로이드용�소스패키지�생성�

모바일 허브를 시작하면 아래 와 같은 시작화면이 나옵니다.

여기서 FirstMobileHubApp 이란 프로젝트 이름으로 새롭게 프로젝트를 생성합니다.

앱기능 설정

프로젝트 이름을 설정하고 나면, 바로 어떤 기능을 사용할 것인지를 선택하는 그림 3 과 같은 설정 화면이 나타납니다. 여기에는 유저 사인인(User Sign-in)부터 데이터 스토리지(Data Storage),

Page 9: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page9of26

모바일 분석(Mobile Analytics), 클라우드 로직(CloudLogic, 람다를 이용한 서비스) 등을 사용할 수 있습니다.

각 해당 설정을 클릭하면 다시 세부 설정화면으로 들어가게 됩니다. 처음에는 단계별로 확장하는 예를 들어 보겠습니다.

User Sign-in : Not Required.

유저 사인인만 선택하고 나머지는 선택하지 않습니다.

이렇게 설정을 하게 되면, 유저 로그인시 다른 서비스(페이스북 등)를 통한 로그인은 하지 않게 되고 Cognito 의 Unauthenticated identities 를 이용해서 로그인하게 됩니다. 즉 특별한 로그인 인증없이 앱기능을 실행하게 됩니다.

먼저 앱 실행을 해보도록 하겠습니다. 만약 안드로이드스튜디오에 제니모우션 플러그인이 설치되어 있으면, 스튜디오 맨 상단 우측의 제니모우션 아이콘을 클릭해서, 원하는 디바이스를 우선 런치하도록 합니다.

Page 10: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page10of26

시뮬레이터가 뜬 이후에, 안드로이드스튜디오 상단의 실행 버튼을 눌러 실행중인 애뮬레이터에 패키지를 배포합니다.

설정에서 유저사인인만 선택했기 때문에, 그림 3 와 같이 그에 해당하는 메뉴만이 리스트에 나오게 됩니다.

유저사인인 화면은 아래 그림과 같이 나타날 것입니다.

Page 11: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page11of26

기능을 실행해보면, 게스트 계정으로 로그인을 해서 특별한 인증없이 유저 아이덴터티 값을 가져오게 됩니다.

소스�패키지의�확인�

생성된 소스의 구조를 살펴보도록 하겠습니다.

AWS 서비스와 관련된 클래스들은 amazonaws.mobile 패키지에 위치합니다. 설정 단계에서 서비스가 추가될 때마다 xxxManager 가 추가됩니다.

데모앱의 화면과 관련된 클래스들은 mysampleapp 패키지 안에 위치합니다. 역시 설정 단계에서 서비스가 추가될 때마다 데모용 화면이 추가되면서 클래스가 늘어나게 됩니다.

서비스를 추가하는 것은 좀 이후에 진행해 보도록 하겠습니다

Page 12: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page12of26

AWS 서비스와 관련해서 가장 기본적인 파일은 AWSConfiguration 과 AWSMobileClient 입니다. 그림에서 보듯이 AWSConfiguration 는 AWS 서비스 리소스의 아이덴터티를 포함하고 있습니다.

또한 AWSMobileClient 는 앱의 부트스트랩을 담당합니다. 각종 서비스의 매니징 클래스를 생성하는 일을 담당하는 것입니다. 여기서는 IndentityManager 만 입니다. 서비스가 추가되면 이 또한 늘어나게 됩니다.

기능�추가�

몇 가지 기능을 추가하고 다시 소스 패키지 모습과 서비스 모습을 살펴보도록 하겠습니다. 프로젝트 이름은 SecondTestApp 이라고 하겠습니다.

설정에서는 다음과 같이 구성을 하겠습니다. 먼저 유저 사인인에서 페이스북으로 로그인하도록 설정합니다.

여기서 페이스북 앱 아이디는 페이스북 앱을 만들어서 생성된 앱 아이디입니다. 참고로 말하면, 페이스 북에 앱을 생성한 후에, 플랫폼 추가를 선택해서 안드로이드의 경우 패키지 네임, 런치 화면 클래스 이름, 키 해쉬 값을 넣어 주어야 합니다. 그림 10 을 참고하시기 바랍니다.

보다 상세한 내용은 다음 링크를 참조하시기 바랍니다.

https://developers.facebook.com/apps/

Page 13: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page13of26

이렇게 페이스북 쪽에 앱 관련 정보를 생성한 이후에, 소스 패키지를 다운 받아서 실행해 보기 바랍니다. 처음 예제와 마찬가지 방법으로 앱 실행을 하면, 이번에는 페이스북으로 로그인하라는 그림 11 과 같은 화면이 나타납니다.

에뮬레이터에서 키보드 타이핑이 안되는 경우가 있을 수 있습니다. 이 경우 에뮬레이터의 설정에서 키보드 입력의 Physical Keyboard Input 을 OFF 로 설정하면 됩니다. 다음 그림을 참조하시길 바랍니다.

Page 14: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page14of26

이렇게 로그인을 하면 다음 그림과 같이 각 기능별로 데모화면을 볼 수 있게 됩니다.

유저 데이터 스토리지를 실행하면, 하나의 파일을 볼 수 있습니다. 이 파일은 프로젝트를 생성하면서 자동으로 생성된 S3 버킷에 존재합니다. AWS 콘솔에서 확인을 해보면 그림 14 과 같이 파일이 존재하는 것을 알 수 있습니다.

Page 15: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page15of26

확장된�소스�코드의�확인�

각 서비스별로 실행을 해보면 그 상태를 서버에서 확인 할 수 있습니다. 소스코드의 변경을 살펴보면 그림과 같이 프로젝트에 어떤 파일이 추가되었는지 비교해서 알 수 있습니다.

amazonaws.mobile 패키지에 서비스 별로 필요한 패키지들이 추가된 것을 볼 수 있습니다. 물론 화면이 추가 되었기 때문에 mysampleapp 에도 여러 클래스들이 추가된 것을 알 수 있습니다.

Page 16: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page16of26

Lab 2 개요

AWS 모바일 허브(Mobile Hub) 서비스를 사용하지 않고 직접 AWS 서비스를 구성하는 경우를 실습합니다. 사용하는 어플리케이션은 이미 만들어진 어플리케이션을 다운로드 받습니다.

모바일 어플리케이션에서 필요한 각종 AWS 서비스 (Cognito, S3, Lambda, Kinesis, DynamoDB, Mobile Analytics, SNS, Elastic Beanstalk)등을 직접 수작업으로 구성합니다.

수작업으로 생성된 서비스를 모바일 앱의 소스 코드를 수정해서 연동되도록 합니다.

준비 조건

이 랩을 수행하려면 다음이 필요합니다.

• Microsoft Windows, Mac OS X 또는 Linux(Ubuntu, SuSE 또는 Red Hat)를 실행하며 Wi-Fi 에 연결된 노트북 컴퓨터에 대한 액세스 권한

• 인터넷 브라우저: Chrome, Firefox 또는 IE9(이전 버전의 Internet Explorer 는 지원되지 않음)

• PuTTY 등의 SSH 클라이언트 사용

• AWS 계정 및 기본적인 AWS 사용 방법 숙지

• 안드로이드 스튜디오 와 Genymotion 시뮬레이터로 개발 도구 설치 및 설정

• 윈도우용 git client

• AWS SDK 및 구글 SDK

Page 17: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page17of26

STEP1. 클라이언트 개발 도구의 설정

안드로이드�스튜디오�및�Genymotion 의�설치�

랩 1 에서 진행한 방식과 마찬가지로 안드로이드 스튜디오 및 Genymotion 을 설치합니다. 만약 이미 설치가 되었다면 바로 다음 스텝으로 진행해도 됩니다.

모바일�예제의�다운로드�

다음 링크를 통해서 이번 랩에서 사용할 예제 프로젝트를 다운 받습니다. (Snake.zip)

예제를 적당한 디렉토리에 푼 다음, 안드로이드 스튜디오로 프로젝트 임포팅을 합니다.

안드로이드�스튜디오�SDK 설치�

예제는 API 19 를 기준으로 하기 때문에, SDK Manager 를 이용해서 19 버전에 해당하는 SDK Platform, Google API 를 설치합니다.

File>Settings 에서 SDK Manager 를 사용해서 19 버전을 추가 설치합니다. 또한 컴파일시 필요한 버전들도 추가 설치 합니다.

Page 18: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page18of26

이렇게 안드로이드에 필요한 SDK 를 추가로 설치한 이후에 프로젝트를 임포트 시킵니다.

Page 19: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page19of26

STEP 2 안드로이스 스튜디오로 최초 프로젝트 임포팅

안드로이드�스튜디오�프로젝트�임포팅�

스튜이오에서 File>New>Import Project 를 실행해서, Snake-Game 을 안드로이드로 임포트 합니다.

임포트 할 떄는 아래와 같이 위 두개 조건은 선택하지 않고 진행합니다.

최초�프로젝트의�실행�

프로젝트를 최초 실행해봅니다. 먼제 Genymotion 을 띄운 후, 실행 버튼을 눌러 현재 떠 있는 에뮬레이터에 실행되도록 합니다. 실행이 되면, 아래와 같은 화면이 나타날 것입니다.

이처럼 화면이 뜨면 성공한 것입니다.

Page 20: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page20of26

앞으로는 AWS 서비스를 생성하고, 이것에 해당하는 정보를 소스에서 수정해서 앱을 완성합니다.

앱 소스에서 수정할 파일은 다음 그림에서 표시된대로, AWSClientManager 입니다.

Page 21: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page21of26

STEP3 AWS 서비스 생성

생성해야 할 서비스는 크게 6 가지 입니다. Cognito, S3, DynamoDB, Mobile Analytics, Kinesis, Lamba 입니다.

보다 상세한 내용은 다음과 같습니다.

1. Congnito 를 통한 unauthorized login

2. Cognito 아이덴터티 브로커(Amazon, Facebook and Google+) (선택사항)

3. Congnito Sync 게임 정보(게임 레벨)

4. S3 버킷 업로드 (스크린 샷 등)

5. DynamoDB : 높은 점수 가져오기, 마지막 스코어 입력하기

6. Mobile Analytics : 세션의 시작과 정지, 고객 이벤트

7. Kinesis : Logcat 정보를 입력

랩에서는 1, 3, 5 정도를 진행하도록 합니다

Cognito Identity Pool 생성 콘솔에서 Cognito 서비스를 선택한 이후에 identity pool name 으로 적절한 이름(SnakeAwsLab

)을 입력합니다. Unauthenticeated Identieis 를 활성화 합니다.

Page 22: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page22of26

다음 버튼을 누른 후에 Detail 에서 정책 도큐먼트를 확장해서 엽니다. 각각의 롤에서 정책 내용을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "cognito-identity:*",

"s3:*", "dynamodb:*",

"kinesis:*", "lambda:*"

], "Resource": [ "*" ] } ] }

Page 23: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page23of26

Allow 버튼을 누르고, 나타나는 AWS Credentials 화면에서 Identity Pool ID 값을 복사해 놓습니다.

본인의 AWS Account Id 값과, Cognito 풀 아이디, Role_Auth 와 Role_UnAuth 에 대한 값을 안드로이드 스튜디오 AWSClientManager 파일의 변수에 각기 기록을 한 후에 다시 앱을 실행합니다.

본인의 Account 아이디 값은 상단 메뉴의 본인 로그인 이름을 눌러 나오는 MyAccount 화면에서 확인합니다. Role Auth 값은 IAM 서비스에서 각 해당 롤 이름에서

앱을 실행하고 “Just Play”버튼을 눌러서 앱을 실행합니다. 화면은 뜨지만 아래 화면과 같이 sync failed 가 뜰 것입니다. 그 이유는 소스코드에서 더 바꿔야 할 부분이 있기 때문입니다.

Page 24: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page24of26

Cognito 는 도쿄리전을 기준으로 생성했습니다. 따라서 ASWClientManager 에서 모든 Regions.US_EAST_1 을 Regions.AP_NORTHEAST_1 로 바꿉니다.

이렇게 값을 바꾼 다음 다시 앱을 실행합니다.

Sync successful 이 생성됨을 알 수 있습니다.

S3�bucket�생성�

도쿄리전에 S3 버킷(snake-demo-bucekt-본인이니셜)을 하나 생성합니다. 생성한 후에 프로젝트 루트 디렉토리 밑에 있는 Asset 폴더 안의 Archive.zip 을 이름을 하나 바꾸어서 올려 놓습니다.

이것은 아마존 아이디로 로그인을 할때 게임 Theme 을 바꾸어 주는 내용입니다. 이 부분은 선택사항이므로 서버 세팅만 이렇게 해놓고 선택사항에 대한 내용은 부록을 참조하시기 바랍니다.

Page 25: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page25of26

DynamoDB�Table�생성�

DynamoDB 에서 테이블 이름은 snake-demo-ddb

Primary key 는 userid(String), sort Key 는 recordid(String)으로 생성합니다. Item 은 data(Number)로 생성해 줍니다.

초기 값을 userid : user1234, redordid : highScore, data : 1 로 해줍니다.

Kinesis�스트림�생성�

Kinesis 스트림을 snake-stream 이란 이름으로 생성합니다.

Mobile�Analytics�의�생성�

Add App 을 선택해서 “snake-aws-test”란 이름으로 생성해 줍니다.

소스코드에 해당 정보를 반영하고 다시 앱을 실행합니다. 상단의 메뉴를 눌러 New Game 을 실행해서, 게임을 플레이합니다.

Page 26: 모바일 Serverless Architecture 세미나 lab v1.3awsblogskr.s3-ap-northeast-2.amazonaws.com/day7-mobile... · 2016-01-24 · Amazon Web Services – Mobile Hub Lab guide Jan 2016

AmazonWebServices–MobileHubLabguide Jan2016

Page26of26

에러의�수정�

한번 실행을 하면 게임이 중단됩니다. 이때 로그를 봅니다. 아래와 같이 dynamodb, mobile analytics 등에서 에러가 나고 있음을 확인할 수 있습니다.

DynamoDB 에서 에러가 나는 것은, Region 정보가 세팅이 안되어 있기 때문입니다.

코드를 다음과 같이 변경합니다.

ddb = new AmazonDynamoDBClient(provider); ddb.setRegion(Region.getRegion(Regions.AP_NORTHEAST_1));

코드를 변경한 이후에는 에러가 사라짐을 볼 수 있습니다.