- Amazon WEb Services(AWS) 는 지금은 흔히 클라우드 컴퓨팅이라고 알려진 웹 서비스 형태로 기업에 IT인프라를 제공하는 대표적이니 서비스
- 시중에 제공하는 IT인프라 구축 서비스 개수만 250개 이상
서버환경
-Aws EC2(Elastic computer 가상컴퓨터)
EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스다.
이 서비스를 통해서 아마존이 각 세계에 구축한 데이터 센터의 서버용 컴퓨터들의 자원을 원격으로 사용할 수 있다. 쉽게 말해, 아마존으로 부터 한 대의 컴퓨터를 임대하는 것이다. AWS가 제공하는 URL(Public DNS)를 통해 이 컴퓨터에 접근할 수 있다.
EC2의 장점은 다음과 같다.
- 용량을 늘리거나 줄일 수 있다. (탄력성)
- 사용한만큼 지불하므로 저렴하다.
- 사용자가 인스턴스를 완전히 제어할 수 있다.
- 보안 및 네트워크 구성, 스토리지 관리 효과적이다.
-Aws RDS(Relational Database Service 데이터베이스 ) or (로컬)
베포환경
언어 - Java 11(open jdk)
웹서버 - 내장톰켓(tomcat8.5)
빌드 - gradle
베포단위 -jar(web archive)
(와르 -웹서버 안에서 구동될수 있는 압축파일/스프링에서 사용)
(자르 - 스프링부트에서 사용, 내장톰캣을 사용하기 때문에)
운영체제 - ubuntu20(linux)
데이터베이스 -MySQL
목록.
개발환경 프로젝트이 데이터베이스 의 MySQL 마이크레이션 (변경)
EC2생성
보안그룹확인(포트에 범위 등의 보안그룹 설정을 하게 됩니다. )
단력적 아이피 연결
EC2연결확인
데이터베이스 구축(RDS로 구축 or EC2에 직접생성)
개발환경에서 데이터베이스 연결확인
EC2 Java 설치
개발환경에서 jar패키징
FTP 로 파일전송
백그라운드로 서버 가동
데이터베이스 mysql 로 사용
(오라클로 수업을 하다가 MySQL로 넘어가는 경우)
1. 개발환경 프로젝트의 데이터베이스 MySQL 마이그레이션(변경)
-개발환경 프로젝트 context path제거
-MySQL환경에서 개발환경 테스트
Oracle | Mysql(테이블명 대소문자구분) |
Varchar2 | Varchar |
Number | int |
date | datetime |
시퀀스 | Auto_increment |
Rownum | @Rownum :=@Rownum +1 |
서브쿼리절 | From 이하(소괄호) 엘리어스 필수 |
이하 생략.... 함수등 다른부분은 검색 |
예시)
1. 서브쿼리절의 엘리어스 처리
2.rownum 변경
3.trunc -> truncate(숫자, 버릴자리수(이하를 버림)
4.to_char -> date_format(날짜 '%Y-%m-%d')
5.MySQL 에서 시간차는 초를 의마한다 gap 서브쿼리절을 분형식으로 처리/ 60처리
6.bno =#{bno}
EC2 생성
-region 서울로 생성
우측 파란색 쪽에 region을 고를수 있습니다. (지역선택이라고 적혀있는 부분에서 고를수있습니다.)
s3 서버를 사용하는 회사들이 많다.
인스턴스 시작 버튼을 누르고 시작합니다.
운영체제 선택입니다.
저는 우분투를 사용하겠습니다.
우분투는 1년간 무료로 제공받을수 있고 프리티어 사용 가능한걸로 해야 과금이 들지 않습니다.
저는 우분투버전을 20.04 사용하겠습니다.
AMI 설정도 해줍니다.
저는 선택지가 없어서 t2.mirco 를 사용해야합니다(프리 티어라서;;;)
키페어도 설정을 해줍니다.
- 새 키페어 생성
- 키페어 유형 (RSA선택)
- 프라이빗 키 파일 형식(.pem)
키파일 생성!
키페어는 비밀번호 대용으로 사용합니다( 까먹으면 찾기가 좀 까다롭습니다. 그래서 항상 소중하게 keep 해두셔야합니다.)
-네트워크 설정
접속할수 있게 하는 ip와 port넘버를 지정해주는 작업입니다.
여기서 인바운드와 아웃바운드가 있습니다.
인바운드는 우리가 접속할수 있는 ip 와 port
아웃바운드 는 ec2에서 다시 결과물이 나오는것
둘다 막을수 있습니다. 혹은 특정 포트로만 들어가게끔 하는 설정 곳입니다.
1)보안 그룹 규칙1
아무것도 진행하지 않아도 기본적으로 포트번호와 프로토콜이 잡혀있습니다.
소스유형은 위치 무관으로 해서 어느곳에서든 접속이 가능하게끔 해줍니다.
2)보안 그룹 규칙2
ssh 는 단순히 들어가는것밖에 못합니다.
add security group rule 을 추가해서 유형에 http를 클릭해줍니다.
포트 범위는 80 입니다.
소스유형도 반드시 위치 무관을 해줍니다. 그래야 모든 사람들이 들어올수있는것입니다.
보안그룹 규칙 3
유형은 사용자 지정 tcp
포트범위는 8383로 설정해줍니다.
보안그룹 규칙 4
데이터베이스를 설정해줍니다. (데이터베이스도 포트 번호를 가지고있습니다.)
MySQL 의 포트범위는 3306입니다.
소스 유형을 위치무관으로 해줍니다. ( 그 이유는 연습용이기 때문이지만 원래는 데이터베이스 정보들은 중요해서 따로 지정해줍니다.)
스토리지 구성
늘리는건 가능하지만 늘린 용량을 줄일수는 없습니다.(최대 30기가)
고급 세부정보 에서도 설정이 가능함.
요약본에서는 인스턴스 개수를 1개로 설정해줍니다.
생성이 완료 되었습니다.
혹시나 실수를 하셨으면 네트워크 및 보안 안에 보안그룹을 들어갑니다.
여기서 security를 들어가서 설정을 변경해주시면 됩니다.
인스턴스를 종료 혹은 재시작을 하시면 ip주소값이 변경이 될수 있으니 유의하시기 바랍니다.
그래서 탄력적 ip(고정 ip)를 할당받아 값을 넣어줍니다.
(할당을 받고 사용하지 않으면 과금이 청구됩니다. 필요없을시 삭제를 해주셔야합니다. )
작업탭에 탄력적 ip연결을 클릭합니다. 그후에 인스턴스 연결하고 연결을 합니다.