관리 메뉴

SIMPLE & UNIQUE

2-1강 : AWS 회원 가입, RDS 인스턴스 생성, DB 서버 연결 본문

탈잉 강의 자료/2021_비전공자도 가능한 웹 프로젝트

2-1강 : AWS 회원 가입, RDS 인스턴스 생성, DB 서버 연결

착한코딩 2021. 4. 1. 14:21

2_1 목표 : AWS가입(결제카드 입력) 후, RDS t2.micro(1년 프리티어) 인스턴스를 세팅한다. workbench에서 필요한 테이블을 생성하고, 더미데이터를 삽입한다.

 

1. AWS사이트(aws.amazon.com/ko/)에 접속해, 회원가입을 한다.

 

참고 : aws 정식 가입 가이드 링크

https://aws.amazon.com/ko/premiumsupport/knowledge-center/create-and-activate-aws-account/

 

AWS 계정 생성 및 활성화

결제 정보 페이지에서 결제 방법에 대한 정보를 입력한 다음, 확인 및 추가(Verify and Add)를 선택합니다. 참고: AWS 결제 정보에 다른 청구지 주소를 사용하려면 [확인 및 추가]를 선택하기 전에 [새

aws.amazon.com

설치 스크린샷을 아래 [더보기]를 클릭해 확인한다.

더보기

1) 오른쪽 상단의 [콘솔에 로그인] 버튼을 클릭한다.

2) 하단의 [AWS 계정 새로 만들기]를 클릭한다.

3) 다른 사이트에서 사용중인 이메일을 AWS의 ID로 사용한다. 

AWS는 계정별로 1년 무료 서비스(프리티어)를 1번씩만 제공한다. 구글 계정은 여러개 만들 수 있으니, 필요할때마다 구글 계정을 생성해 가입해도 된다. 

 

4) 아래와 같이 정보를 입력한다.

이름, 연락처, 주소 등 정보는 중요하지 않다. [국가 또는 리전]만 정확하게 대한민국으로 선택한다.

5) visa, master 등 지원되는 카드를 등록한다. (가입을 위해 카드 등록은 필수)

무료 버전을 사용할 것이기 때문에, 수업에 사용하는 서비스(ec2, rds)는 과금이 될 일이 없다. 무료버전(프리티어)는 1년후 자동 결제가 시작되는데, 과금을 완벽하게 방지하려면 1년이 지나기전에 카드를 정지시키는 것이 좋다. 만약, 과금이 되더라도 실수였다고 aws에 전달하면, 환불해준다.

6) 휴대폰 인증을 한다.

7) Support 플랜은 무료를 선택하고, 가입을 완료한다.

2. AWS사이트(aws.amazon.com/ko/)에 로그인을 하고, RDS인스턴스를 생성한다.

 

참고 : aws 정식 RDS 생성 가이드 링크

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html

 

DB 인스턴스 생성 - Amazon Relational Database Service

새 콘솔 인터페이스를 데이터베이스 생성에 사용할 수 있습니다. 사용 중인 콘솔에 따라 New Console(새 콘솔) 또는 Original Console(기존 콘솔) 지침을 선택합니다. New Console(새 콘솔) 지침이 기본적으

docs.aws.amazon.com

RDS 생성 스크린샷을 아래 [더보기]를 클릭해 확인한다.

설치 과정에서 별도 언급이 없는 옵션은 수정하지 않는다.

더보기

1) 왼쪽 상단의 [서비스] > [RDS]를 클릭해 대시보드에 들어온다.

2) 엔진 옵션을 [MySQL]로 체크한다.

3) 템플릿은 무료 버전인 [프리 티어]를 선택한다.

4) 퍼블릭 액세스 가능을 [예]로 선택해야, AWS외부(로컬PC)에서 RDS서버로 접속할 수 있다.

5) 나머지 설정은 그대로 두고, 하단 오른쪽의 [데이터 베이스 생성] 버튼을 클릭한다.

6) 다시 RDS 대시보드로 돌아오면 생성한 인스턴스가 [생성 중]상태인 것을 확인할 수 있다.

[사용 가능]상태가 되야 RDS서버를 사용가능하다.

3. mysql이 사용하는 포트 3306을 인바운드 규칙에 추가해, AWS외부(로컬PC)에서 RDS서버에 접속가능하도록 한다.

왼쪽 상단 서비스 > EC2 > 왼쪽 메뉴 중 [보안 그룹]을 클릭한다. [인바운드 규칙]을 클릭 해보면, [모든 트래픽]만 기본값으로 설정되어 있다.

[인바운드 규칙 편집] 버튼을 눌르고, 아래와 같이 3306포트를 추가한다. [규칙 저장]버튼을 눌러 저장한다.

4. mysql을 설치한다.

아래 링크에서 mysql을 다운로드 한다. 로컬에서 mysql을 사용하지 않고, AWS와 같은 외부서버에 접속해서만 사용할 것이기 때문에 only client 버전(client버전은 용량이 작다)으로 설치한다. 설치시, workbench를 설치에서 제외하지 않는다.

https://dev.mysql.com/downloads/installer/

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.18 18.6M (mysql-installer-web-community-8.0.18.0.msi) MD5: c509966c1033462027a009cc51a98c74 | Signatur

dev.mysql.com

설치방법 참고(19번까지만 완료하고, 나머지는 수업시간에 진행한다)

https://help.iwinv.kr/manual/read.html?idx=349

 

iwinv Manual

MYSQL 서비스를 신청하였다면 해당 SQL 계정으로 접속하기 위한 클라이언트 프로그램이 필요하다. 비교적 많은 SQL 접속용 프로그램이 있는데 MYSQL 에서 제공하는 MYSQL Workbench 라는 관리툴을 설치

help.iwinv.kr

4. workbench에서  RDS서버에 접속해, 스키마와 테이블을 생성하고 더미데이터를 삽입한다.

아래 스크릿샷에서 엔드포인트 주소를 복사한다. 엔드포인트는 실제 자원이 있는 서버 IP나 도메인을 노출할 경우 보안상 좋지 않아, AWS에서 제공하는 가상 도메인네임이다.

 

Workbench를 열어 Hostname에 엔드포인트를 입력한다. Username은 RDS생성시 기본값이었던 admin으로 수정한다. 

[Test Connection]버튼을 눌러 연결을 확인하고, [OK]를 클릭해 스크립트를 연다.

스키마 생성을 위해, 왼쪽 Schemas영역에 오른쪽 마우크 클릭을 하고, [Create Schema]버튼을 클릭한다.

[react]라는 스키마를 생성한다.

Workbench에서 스키마라고 부르는 것은, 하위 데이터베이스라고 생각하면 된다. 하나의 RDS서버에 여러개의 하위 데이터베이스를 추가할 수 있다.

Query창에 아래와 같이 쿼리를 순서대로 실행한다. 쿼리실행 단위는 세미콜론(;)으로 구분한다. 아래 쿼리는 총 4개이다.

1. react라는 스키마를 사용하겠다 선언한다.

2. react_swtool이라는 테이블을 생성한다.

3, 4 더미데이터를 삽입한다.

쿼리 실행 방법은 실행하려는 쿼리에 커서를 놓고 [Ctrl] + [Enter]를 누른다.

use react;
CREATE TABLE `react_swtool` (
  `swt_code` varchar(100) NOT NULL COMMENT 'SW툴 코드',
  `swt_toolname` varchar(100) DEFAULT NULL COMMENT '툴 이름',
  `swt_function` text COMMENT '상세 기능',
  `swt_imagepath` varchar(100) DEFAULT NULL COMMENT '라벨 이미지 경로',
  `swt_big_imgpath` varchar(100) DEFAULT NULL COMMENT '메인 이미지 경로',
  `swt_comments` text COMMENT '설명',
  `swt_demo_site` varchar(100) DEFAULT NULL COMMENT '데모 URL',
  `swt_manual_path` varchar(100) DEFAULT NULL COMMENT '메뉴얼 파일 경로',
  `swt_github_url` varchar(100) DEFAULT NULL COMMENT 'Github URL',
  `reg_date` varchar(100) DEFAULT NULL COMMENT ' 등록날짜',
  `reg_user` varchar(100) DEFAULT NULL COMMENT ' 등록자',
  `update_date` varchar(100) DEFAULT NULL COMMENT ' 수정날짜',
  `update_user` varchar(100) DEFAULT NULL COMMENT ' 수정자',
  PRIMARY KEY (`swt_code`)
);
INSERT INTO `react_swtool` VALUES ('USW20200101000000', 'toolname1', 'Detailed function1', '20200101000000_라벨 이미지.png'
, '20200101000000_메인 이미지.png', '설명1', '데모 URL1', '20200101000000_메뉴얼 파일.docx', 'Github URL1'
, '20200101000000', 'userA1`', '20200102000000', 'userB1');
INSERT INTO `react_swtool` VALUES ('USW20200102000000', 'toolname2', 'Detailed function2', '20200102000000_라벨 이미지.png'
, '20200102000000_메인 이미지.png', '설명2', '데모 URL2', '20200102000000_메뉴얼 파일.docx', 'Github URL2'
, '20200102000000', 'userA2`', '20200103000000', 'userB2');

Output영역에 ✔모양이 표시되면 성공적으로 쿼리가 실행된 것이다.

5. node소스에서 엔드포인트 주소를 변경해, 새로 생성한 RDS인스턴스의 데이터베이스를 연결한다.

node경로(C:\react200\routes)의 dbconnect_Module.js에서 db연결정보의 host와 password를 신규 인스턴스의 정보로 수정한다.

// Connection Pool 세팅
const pool  = mysql.createPool({
  connectionLimit: 66,
  waitForConnections: true,
  host: "taling0401.########.ap-northeast-2.rds.amazonaws.com",
  port: "3306",
  database: 'react',
  user: "admin",
  password: "taling########",
});

yarn dev로 서버를 다시 구동하면, 아래와 같이 변경된 데이터가 노출되는 것을 확인할 수 있다.

https://taling.me/Talent/Detail/19341

 

[비전공자도 가능한 웹 프로젝트] REACTJS NODEJS MYSQL AWS 웹개발 | 탈잉

✔ 수업 목표 & 5주 뒤 결과물 만들고 싶은 서비스를 직접 구현하게 됩니다. 사람들이 방문하고 액션을 할 수 있는 웹 페이지를 제작 & 배포하는 것까지 진행됩니다. 여러분이 개발 경험이 있든

taling.me:443

 

Comments