AWS
์ฌ์ฉ์๊ฐ ํ์๊ฐ์
์ ํ ๋ username(userId)๊ณผ ๊ฐ๋จํ ์ ๋ณด๋ง DB์ ์ ์ฅํ๊ณ , ๋น๋ฐ๋ฒํธ๋ AWS Cognito์ ์ ์ฅํ๋๋ก ํ ๊ฒ์ด๋ค. AWS Cognito ๋ ? ์ด ๋ถ๋ถ์ ๋ํด ์ ๋ฆฌํ ๊ธ์ด ์๊ธฐ ๋๋ฌธ์ ์์ธํ ์ค๋ช
์ ์๋ตํ๊ณ ,์ฌ์ฉ์ ํ์ ์ฌ์ฉํด ์ธ์ฆํ๊ณ ์๋ ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ค ! ๋ผ๋ ๊ฒ๋ง ํ์ธํ๊ณ ๋์ด๊ฐ์. โณ๏ธ ์ฌ์ฉ์ ํ์ ์ฌ์ฉํ ์ธ์ฆ ๐ท ์ธ์ฆ ํ๋ฆ ์ฌ์ฉ์ ๋ฑ๋ก (Sign Up)์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ํ์ ๋ฑ๋ก์ฌ์ฉ์ ์ด๋ฆ, ๋น๋ฐ๋ฒํธ, ์ด๋ฉ์ผ/์ ํ๋ฒํธ ๋ฑ์ ์ฌ์ฉ์ ์์ฑ ์
๋ ฅ์ด๋ฉ์ผ ๋๋ ์ ํ๋ฒํธ๋ฅผ ํตํด verification code๋ฅผ ๋ฐ์ ๋ฑ๋ก ์๋ฃ์ฌ์ฉ์ ์ธ์ฆ (Sign In)๋ฑ๋ก๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ก ์ธ์ฆ์ธ์ฆ ์ฑ๊ณต ์, ID ํ ํฐ, accessToken, refreshToke..
AWS
๋๋ฐ์ด์ค ์ญ์ ์์๋๋ฐ์ด์ค์ ๋ฑ๋ก๋ ์ธ์ฆ์ ๋ถ๋ฆฌํด๋น ์ธ์ฆ์๋ฅผ ๋นํ์ฑํ ์ํ๋ก ๋ณ๊ฒฝ์ธ์ฆ์์ ์ฐ๊ฒฐ๋ ์ ์ฑ
๋ถ๋ฆฌAWS์์ ์ธ์ฆ์ ์ญ์ DB์์ ๋๋ฐ์ด์ค์ ์ธ์ฆ์ ์ญ์ ๐ ์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋๋ฐ์ด์ค๊ฐ AWS์ DB ๋ชจ๋์์ ์ญ์ ๋๋๋ก ํ์๋ค. 1. ๋๋ฐ์ด์ค์ ๋ฑ๋ก๋ ์ธ์ฆ์ ๋ถ๋ฆฌpublic Mono detachThingPrincipal(String deviceId) { // Thing์ ์ฐ๊ฒฐ๋ principals(์ธ์ฆ์ ๋ฑ) ๊ฐ์ ธ์ค๊ธฐ ListThingPrincipalsRequest request = ListThingPrincipalsRequest.builder() .thingName(deviceId) .build(); return Mono.fromFut..
AWS
๋๋ฐ์ด์ค ๋ฑ๋ก ์์์ธ์ฆ์ ์์ฑDB์ ์ธ์ฆ์ ์ ์ฅ์ธ์ฆ์์ ์ ์ฑ
์ฐ๊ฒฐthing ์์ฑthing์ ์ธ์ฆ์ ๋ฐ ์ ์ฑ
์ฐ๊ฒฐ device shadow ๋ฑ๋กDB์ ๋๋ฐ์ด์ค ์ ์ฅ ๐ ์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋๋ฐ์ด์ค๊ฐ AWS์ DB ๋ชจ๋์ ์ ์ฅ๋๋๋ก ํ์๋ค. 1. ์ธ์ฆ์ ์์ฑ ๋ฐ DB์ ์ธ์ฆ์ ์ ์ฅimport software.amazon.awssdk.services.iot.IotAsyncClient;import software.amazon.awssdk.services.iot.model.*;public Mono createCertificate() { // ์ธ์ฆ์ ํ์ฑํ์ํค๊ธฐ CreateKeysAndCertificateRequest request = CreateKeysAndCertificateRequest.build..
AWS
๋๋ฐ์ด์ค๋ฅผ ๋ฑ๋กํ๊ธฐ ์ ์ ํด์ผํ ์ผ์ด ์๋ค. ์ธ์ฆ์๋ฅผ ์์ฑํด์ ํด๋น ๋๋ฐ์ด์ค์ ๋ฑ๋กํด๋น ์ธ์ฆ์์ ์ ์ฑ
์ฐ๊ฒฐ ์ด ๊ณผ์ ์ ๋๋ด๊ณ ๋๋ฐ์ด์ค๋ฅผ ๋ฑ๋กํ๊ณ ์ ํ๋ค. ์ธ์ฆ์๋ ์ ์ฑ
์ด ๋ญ๋ฐ ์ธ์ฆ์์ ์ ์ฑ
์ ๊ด๋ จํด์ ์ด์ ๊ธ์ ๊ธฐ๋กํ๋ค. ์ฌ์ค ์ด ๋์ ๋ํด ๊น๊ฒ ์์ง๋ ๋ชปํ์ง๋ง.. ๊ฐ๋จํ ์์ฝํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ๐ถ ์ธ์ฆ์๋๋ฐ์ด์ค๋ฅผ ์ธ์ฆํ๊ณ AWS IoT Core์ ์์ ํ๊ฒ ํต์ ํ ์ ์๋๋ก ์ค์ (๋๋ฐ์ด์ค ์ ์ ํ์ธ)์๋ง์ ๋๋ฐ์ด์ค๊ฐ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋๋ฏ๋ก ์ธ์ฆ์๋ฅผ ํตํด ๋๋ฐ์ด์ค ์ธ์ฆํ๊ณ , ํต์ ์์ ํ๊ฒ ๋ณดํธ ๐ถ ์ ์ฑ
์ธ์ฆ์๋ฅผ ๊ฐ์ง ๋๋ฐ์ด์ค๊ฐ ์ด๋ค ์์
์ ์ํํ ์ ์๋์ง์ ๋ํ ๊ถํ ์ ์MQTT ๋ฉ์์ง ๊ฒ์ ๋ฐ ๊ตฌ๋
, HTTP ์์ฒญ ๋ฑ ๋๋ฐ์ด์ค๊ฐ ํ์ฉ๋ ์์
์ ์ํํ๋๋ก ์ ํ{ "Version": "2012-10-..
AWS
๋๋ฐ์ด์ค(์์ด์ปจ, ๊ณต๊ธฐ์ฒญ์ ๊ธฐ ๋ฑ๊ณผ ๊ฐ์ ๊ฐ์ ๊ธฐ๊ธฐ)์ ์ธ์ฆ์์ ์ ์ฑ
๋ฑ์ ์ฐ๊ฒฐํ๊ณ ํด์ ํ๋ ๊ณผ์ ์ AWS IoT ์ฝ์์์ ์ง์ ํ๋ ๊ฒ์ด ์๋ AWS sdk๋ฅผ ํ์ฉํด java ์ฝ๋๋ก ๊ฐ๋ฐํ๋ ์์
์ ๋งก๊ฒ ๋์๋ค. AWS IoT API reference๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ์งํํ ์์ ์ด์ง๋ง, ๊ทธ ์ ์ AWS IoT Core์์ ์ฌ์ฉํ๊ณ ์๋ ์ฉ์ด์ ์๋ ๋ฐฉ์์ ์ด๋ ์ ๋ ํ์
ํ๊ณ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์๋ฏธ์์ ๊ฒ์ผ๋ก ๋ณด์ ๋ชจ๋ฅด๋ ํน์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋
๋ค์ ์ ๋ฆฌํ๊ฒ ๋ค ! ๐ AWS IoT Core์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ๊ทธ ์ ์ ๊ธฐ๋กํ ๊ฒ์ด ์์ผ๋ฏ๋ก ๊ฐ๋ฐํ๊ฒ ๋๋ฉด์ ์ฌ์ฉํ๊ฒ ๋ ๊ฐ๋
์์ฃผ๋ก ์ ๋ฆฌํ ๊ฒ์ด๋ค. ๋๋ฐ์ด์ค ๊ด๋ฆฌAWS IoT๋ ์ฌ๋ฌผ(Thing)์ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค.AWS IoT์ ๋ค์ด๊ฐ๋ฉด ์ข..
AWS
AWS Cognito๋ ?์น ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์ ์ํ ์๊ฒฉ ์ฆ๋ช
ํ๋ซํผ์ผ๋ก ์ฌ์ฉ์ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ, ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๊ฒ ํด์ค๋ค.ํ์ฌ ํ์์๋ OAuth2.0 access token ๋ฐ ์๊ฒฉ ์ฆ๋ช
์ ๋ํ ๊ถํ ๋ถ์ฌ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉํ๊ณ ์๋ค. ํ๋ถ์ ์์ ์ ํ๋ก์ ํธ๋ฅผ ํ์ ๋๋ Spring Security๋ฅผ ์ฌ์ฉํด ์ง์ JWT๋ฅผ ๋ฐ๊ธํ๊ณ ๊ด๋ฆฌํ๋ค. AuthenticationManager ๋๋ UserDetailsService๋ฅผ ํตํด ์ฌ์ฉ์์ ์๊ฒฉ ์ฆ๋ช
์ ํ์ธํ๊ณ , ์ธ์ฆ ์ฑ๊ณต ์ ์๋ฒ๊ฐ JWT๋ฅผ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํ๋ ๋ฐฉ์์ผ๋ก ๋ง์ด๋ค. ํ์ง๋ง ์ค๋ฌด์์๋ AWS Cognito๋ฅผ ์ฌ์ฉํด JWT๋ฅผ ๋ฐ๊ธ๋ฐ๊ณ ๊ด๋ฆฌํ๊ณ ์๋ค. JWT ์์ฑ ๋ฐ ๊ฒ์ฆ ๋ก์ง์ ๊ตฌํํด์ผํ๊ณ , ๋ณด์ ๊ด..
AWS
AWS CloudFormation์ด๋ ?AWS์์ ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก(Infrastructure as Code, IaC) ๊ด๋ฆฌํ ์ ์๋ ์๋น์ค์ด๋ค. CloudFormation์ ์ฌ์ฉํ๋ฉด ์ธํ๋ผ ๋ฆฌ์์ค๋ฅผ ํ
์คํธ ํ์ผ(ํ
ํ๋ฆฟ)๋ก ์ ์ํ๊ณ , ์ด๋ฅผ ํตํด AWS ๋ฆฌ์์ค(์: EC2 ์ธ์คํด์ค, S3 ๋ฒํท, RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ)๋ฅผ ์๋์ผ๋ก ์์ฑ, ๊ด๋ฆฌ, ์
๋ฐ์ดํธํ ์ ์๋ค. CloudFormation ํ
ํ๋ฆฟ์ ์ฌ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ผ๊ด๋๊ณ ๋ฐ๋ณต์ ์ผ๋ก ์์ฑ ๊ฐ๋ฅํ๋ค. ์ฆ, ์ธํ๋ผ๋ฅผ ๊ตฌ์ฑํ๋ ์๊ฐ๊ณผ ๊ณผ์ ์ ๋จ์ถ์์ผ์ค๋ค ! โณ๏ธ EC2 ์ธ์คํด์ค ์์ฑ ํ
ํ๋ฆฟ ์์ AWSTemplateFormatVersion: "2010-09-09"Description: "AWS CloudFormation Template to create ..
AWS
AWS IoT Core๋ ? ํ์ฌ ํ ๋ด์์ ์ฌ์ฉํ๊ณ ์๋ ์ฃผ์ ๊ธฐ์ ๋ก, ํ ์ด๋ฆ์ ๋ถํฉํ์ฌ ํ์ฉํ๋ ๊ธฐ์ ์ด๋ค. AWS์์ ๋ง์ ์๋น์ค ์ข
๋ฅ๊ฐ ์๋ ๊ฒ์ ์๊ณ ์์์ผ๋, IoT๋ฅผ ํ์ฉํ ์ ์๋ ์๋น์ค๊ฐ ์๋ค๋ ๊ฒ์ ์
์ฌํ๊ณ ์๊ฒ ๋์๋ค. AWS IoT Core์ ์๋น์ค๋ฅผ ์์ฝํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.๐ IoT ๊ธฐ๊ธฐ์ ํด๋ผ์ฐ๋๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋น์ค๋ก, ๊ธฐ๊ธฐ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ์์ ์ํ ์ค์ ํ๋ธ ์ญํ ์ํ์ฆ, ๋ค๋ฅธ AWS ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ฅ์น์ ์ํธ์์ฉํ ์ ์๋๋ก IoT ์ฅ์น๋ฅผ ํด๋ผ์ฐ๋์ ์ฐ๊ฒฐํ๋ ์๋น์ค ์ ๊ณต MQTT (Message Queuing Telemetry Transport)IoT ๋๋ฐ์ด์ค์ ํด๋ผ์ฐ๋ ๊ฐ์ ๊ฒฝ๋ ํต์ ํ..