https://www.joinc.co.kr/w/man/12/MQTT/Tutorial

 

MQTT 소개

인터넷 애플리케이션과의 연동

www.joinc.co.kr

가장 정리가 잘 되어 있는 사이트.

 

일단 MQQT는 기본적으로 1883번 포트를 사용한다.

Publisher

Broker

Subscriber 개념이 가장 중요하다.

이 사진을 두고두고 기억하도록 하자!! 

topic = 방의 개념이다. 

Publisher = 메세지를 보내는 사람

Subscriber = 메세지를 받는 사람 

 

같은 wifi를 쓰고 있다는 가정하에 메세지를 주고 받을 수 있다. 

개발환경은 튜토리얼을 참고하여 세팅하도록 하자. 

 

라즈베리파이에서 리눅스 환경에서 터미널을 두 개 켜놓고 

하나에는 Subscriber를 활성시켜놓고, 다른 터미널 창에는 Publisher 용으로 킨다.

튜토리얼에 따라 메세지를 보내면 메세지 수신이 되는 것을 확인할 수 있다.

 

그리고 이제 추가로 아이폰 앱에서도 똑같이 메세지를 주고 받을 수 있다.

(같은 ip 가정하에, 즉 같은 wifi 사용 시)

 

1) MQQTTool 앱을 다운로드

2)

Host에는 현재 라즈베리파이에 연결된 ip를 입력 (ifconfig로 확인)

포트는 자동 입력 되어 있고,

Client Id도 자동으로 입력이 되어 있다.

username과 password는 알아서 설정하고 연결을 누르면 연결이 된다.

(라즈베리파이에서 개발환경 갖춰졌다는 가정하에)

라즈베리파이와 마찬가지로 Subscribe에서는 메세지를 똑같이 수신한다. 

topic은 방 이름이라고 생각하자.

Publish창에서는 메세지를 보낼 수 있다!!!! 

1. 맥북 (MAC)

** id 및 비밀번호 기존 default 값으로 진행합니다.

 

1) 라즈베리파이 image를 굽는다.

sd카드를 usb에 넣어서 맥북에 삽입한 후에 sd카드에 os를 다운 받아준다.

맥이니깐 Download for macOS 클릭!

그리고 Raspberry Pi OS Lite(용량이 제일 작다!) 를 다운 받아주자. (boot용)

Choose OS를 눌러서 아까 다운 받았던 Raspberry Pi OS Lite를 클릭해주고 

Choose STORAGE에서는 삽입한 sd카드 공간을 선택한다. 

다운로드가 완료되면 창을 닫고, 

터미널을 켜준다.

터미널에 아래와 같이 입력해준다.

$ cd /Volumes/boot
$ cd touch ssh
$ nano wpa_supplicant.config

이제 wpa_suppicant.config 파일을 만들 것인데, 이 파일은

라즈베리파이를 wifi 네트워크에 연결하는 데 도움을 주는 파일이라고 생각하면 되겠다.

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
scan_ssid=1
ssid="MY-WIFI-NAME"
psk="My-Wifi-password"
}

국가= GB(영국)으로 설정해준다. (내가 알기로 한국은 아직 없는 것으로 알고 있다.)

이제 sd카드를 라즈베리파이에 삽입하고 전원선만 연결시켜 준 뒤에

맥북 터미널에서 계속 진행하자.

$ ping raspberrypi.local

네트워크 연결이 되면 ping을 확인할 수 있을 것이다.

이제 연결 준비가 다 끝났다.

$ ssh pi@raspberrypi.local

 Are you sure you want to continue connecting (yes/no)? 를 물으면

터미널에 yes 입력 ! 

혹시나 중간에 

이렇게 WARNING이 뜰 수도 있다. 

그렇다면 아래와 같이 입력하면 바로 해결된다!

$ ssh-keygen -R raspberrypi.local

다시 ssh pi@raspberrypi.local로 접속 시도 

그러면 비밀번호를 물어보는데 초기 비밀번호는 raspberry이다. (초기 id는 pi)

접속완료! 끝!


이제 vnc 연결을 시도해보자.

$ sudo raspi-config

파란화면에서 3 Interface Options -> VNC 선택 enable 상태로 만들기.

$ sudo nano /root/.vnc/config.d/vncserver-x11

맨아래에 Authentication=VncAuth를 추가해준다.

^x -> y -> enter 누르면 빠져나와진다. (nano 사용법을 모르는 분을 위해서)

$ sudo vncpasswd -service

참고 사이트 : 

http:// https://www.youtube.com/watch?v=G59JsJ04t14&list=LL&index=2&t=233s

https://wikidocs.net/3200

2. 윈도우 (windows)

- 윈도우는 맥보다 조금 더 복잡한 거 같다. (더 쉬운 방법이 있는데 내가 모르는 것일수도...!)

일단 내가 배운 방법은 이렇다.

1) 윈도우에 vnc를 다운받는다.

2) 라즈베리파이4는 라즈비안os를 다운받고 (그냥 sd카드 꼽고 전원선 연결하면 알아서 다운로드 된다.)

3) 라즈베리파이에서 터미널에 

$ sudo raspi-config

이것을 입력하면 파란창이 뜰 것이다.

4) Display Options 선택 후 -> D1 Resolution -> DMT MODE 16 해상도 선택 

5) System Options 선택 후 -> S3 Password 선택 후 비밀번호 변경  

6) Interface Options 선택 후 -> VNC 선택 (VNC를 활성화 해준다.)

7) reboot

이제 라즈베리파이에서도 VNC에 로그인하고 윈도우에서도 로그인 한 후에 

vnc connect 프로그램을 활용해서 연결하면 끝!

전원선만 남겨두고 나머지 선은 해제 후 Headless연결이 잘 되는 지 확인해보자.

 

안녕하세요 오늘은 AWS 활용 기초에 대해서 같이 공부해보아요.

1.AWS란 ?

- 아마존 웹서비스의 줄임말로 클라우드 서비스를 제공하고 있어요. 구글클라우드,네이버클라우드와도 비슷한 개념이에요. 하지만 AWS에서는 더욱 더 많은 서비스들을 제공하고 있습니다. 예를 들어서 특정 웹이나 앱을 구현하여 서비스를 런칭하고 싶다고 가정했을 때, 실제로 서버를 구축하여 운영하려면 비용도 많이 들고, 손이 많이 갈 것입니다. 서버리스(Severless)로 서비스를 테스트하고 런칭하기 좋습니다. 

2. AWS 서비스 종류 

1) EC2 -컴퓨터 1대 (커맨드라인으로만 동작)

2) S3 - 데이터 저장소

3) RDS - (SQL) DB 

4) DynamoDB - (NO SQL) DB

5) SageMaker - 기계학습모델 구축, 교육

6) Lambda - 이벤트에 응답하여 코드를 실행하고 자동으로 컴퓨터 리소스를 관리하는 컴퓨팅 서비스. (트리거)

7) Lightsail - 가상 프라이빗서버 (그래픽화면으로)

8) Amazon GuardDuty - AWS계정과 워크로드를 보호하기 위한 지능형 위협탐지 및 지속적 모니터링 지원

9) Amazon SNS - 빠르고 유연한 완전관리형 푸시 메시징 서비스

 

이외에도 엄청나게 많은 서비스들이 제공 되고 있습니다.

다 영어이고 생소한 단어라서 겁이 날 수도 있지만 전혀 어렵지 않습니다.

그냥 다 각각의 컴퓨터가 1대 제공된다고 생각하면 되는데 서비스마다 특징이

조금 다르다는 차이일 뿐입니다. 여러분의 필요에 맞는 서비스를 선택해서

공부하시면 되겠습니다. 

 

3. 처음 세팅해야 할 것.

- 회원가입을 진행합니다. 처음 회원가입하시는 분들은 프리티어 혜택을 받으실 수 있는데 잘 확인하시고 사용하시길 바랍니다. 

 

- 필터링창을 적극 활용하시길 권장드립니다 ! 원하는 서비스를 쉽게 찾을 수 있습니다.

- region(지역설정) --> 우리의 경우 보통 서울로 설정해주시면 되겠죠?! 

- billing(결제청구)

결제 내역들을 관리하실 수 있습니다. 자주 사용하시게 될 메뉴입니다.

- IAM (Identification Access Management)

접속 권한을 관리할 수 있습니다.  처음 회원가입하면 root계정으로 가입하게 되고, 모든 권한을 다 가진 계정을 root계정이라고 부릅니다. IAM을 활용하여 원하는 권한만을 주어서 AWS에 접속이 가능하게 할 수 있습니다. 

admin이라는 계정을 만들어서 EC2와 AdministratorAccess의 권한을 준 모습입니다.

 

4. IAM 사용자 별칭바꾸기 

 

IAM 메뉴에서 사용자를 추가한 뒤,

IAM -> IAM 대시보드를 가면 처음엔 root계정의 숫자로

로그인을 하여야하는데요. 이것을 별칭으로 바꿀 수 있습니다.

긴 숫자를 외우기 까다롭기 때문에,

우측에 사용자 지정 버튼을 눌러서 아무 별칭으로 바꿔서 

사용이 가능합니다. ex) jwcompany 

 

5. MFA(Multi-Factor-Authentication) 다단계 인증

- IAM에 만든 사용자의 계정을 보다 안전하게 사용하게 하고 싶다면 MFA를 활용하여 다단계 인증이 가능합니다.

- IAM -> 사용자 -> amdin(저의경우 admin으로 만듬) -> 보안자격증명 -> 할당된 MFA디바이스 관리 -> (휴대폰을 이용한 다단계 인증의 경우) 가상 MFA 어플리케이션에서 원하는 앱을 다운 받아서 진행하시면 됩니다. 

저의 경우 Google Authenticator를 다운 받아서 사용했습니다. 

이제 구글 인증 앱으로 MFA 번호도 입력해야 로그인이 가능해져서 더욱 더 안전하게 AWS를 사용할 수 있을 것입니다.

 

* Point 

실무적으로 보면 aws 로그인 한 것은
root가 로그인
root가 모든 권한을 가짐. 
==> 보안에 매우 위험
- 실무적으로 보면, root가 직접 로그인 하는 경우를 가급적 피해야 함. 

'Tech Blog > AWS' 카테고리의 다른 글

AWS IoTCore 사용하기(mqtt)  (0) 2021.07.30

+ Recent posts