AWS란?
- #클라우드 서비스
- #유저가 직접 서버를 구입하고 설치할필요없이 AWS로 서버구축
클라우드 서비스란?
- 서버 등의 인프라스트럭쳐를 필요한대로 on demand(주문형)로 사용할수있는 서비스
웹서비스 배포를 위한 AWS 필수개념
EC2 (Elastic Compute Cloud)
- 쉽게 말해 한대의 컴퓨터를 생성 및 삭제한다는 개념이다.
- 실제로 광범위한 작업들을 EC2를 통해 작업 할 수 있다.
- 다만 물리적이아니라 인프라(데이터 센터)에 만들어지기때문에 네트워크를 통해 제어한다.
- 또한 instance(인스턴스)는 컴퓨터 하나를 의미한다.
- AWS 상에서 사용하는 서버 EC2 서버에 API를 배포한다.
- AWS에서 제공하는 서비스중에 웹서버 역활을 할수있는 서비스는 EC2밖에 없다.
- 다양한 사양옵션을 제공한다. t2.nano (CPU 1, 0.5 GB memory) 부터 x1.32xlarge (CPI 128, 1952 GB)
Security Group
- EC2 인스턴스에 대한 네트워크 트래픽을 제어하는 가상 방화벽 역활을 한다.
- 즉 security group 설정을 해줘야 EC2 인스턴스에 HTTP와 SSH 접속이 가능하다.
RDS (Relational Database Service)
- database를 쉽게 운영할수있는 서비스
- RDS를 사용하면 사용자가 직접 서버를 생성해서 데이터 베이스를 설치하고 설정하고 관리 하지 않아도 된다.
- 그러면서 동시에 비용도 더 저렴하다. 사용자가 직접 데이터 베이스를 설치하고 운영하는 것보다 RDS를 사용하는것이 더 저렴함. 즉, RDS를 사용 하지 않을 이유가 거의 없다.
- 백업, 리플리케이션과 같은 것을 아마존 인프라가 자동으로 제공한다.
Load Balancer
- 로드 발란서는 HTTP 요청들을 여러 서버에 분산할때 사용된다.
- HTTP 요청이 많을때는 서버 하나만으로 모두 처리 하기 힘들기 때문에 서버 수를 늘리는것이 일반적이다. 그럼으로 여러 서버를 실행하고 로드발런서가 HTTP 요청들을 서버들에 분산 해주는 형태로 시스템이 구성된다.
Route 53
- AWS의 DNS 서비스.
- API 시스템을 실제 도메인과 연결 시키주는 기능을 제공한다.
AWS S3
- AWS S3(Simple Storage Service)는 이름 그대로 파일을 쉽게 저장할 수 있는 공간을 제공하는 서비스.
- 파일을 저장 할 수 있을 뿐만이 아니라 파일마다 고유 주소를 부여해주기 때문에 S3에 저장한 파일을 웹상에서 쉽게 읽어들일수 있다.
- 주로 사이트상의 이미지들을 저장하고 사이트에서 읽어들여 렌더링 해주는데 사용한다.
- 1바이트 ~ 5테라 바이트의 단일 파일을 저장하는 것이 가능하다.
RDS 사용방법
- RDS 서비스를 선택한다.
- 먼저 MySQL 설정 파일을 만들어야 한다. 직접 안만들어도 default 설정 파일이 있지만 utf-8 인코딩 설정을 해줘야 한국어가 저장 가능하다. 먼저 "Parameters groups" 페이지로 가자.
- "Create parameter group" 옵션을 선택하자.
- "Parameter group" 설정 파일을 생성하자. Group name과 Description은 자유롭게 정하면 된다. "Paramter group family"는 생성하는 데이터 베이스와 버전에 맞게 지정해야 한다. 우리의 경우 mysql5.7 데이터베이스를 생성할 예정이니 "mysql5.7"로 하자.
- 방금 생성한 설정 파일을 수정 하자.
- 우리가 설정할 parameters는 다음과 같다.
type chracter_set on the searchbar
utf8mb4로 변경
type collation
utf8mb4_general_ci로 변경
- 이제 MySQL 데이터 베이스를 새로 생성하자
- MySQL을엔진으로 선택하자. "Only enable iptions eligible for RDS Free Usage Tier" option을 체크해서 무료로 사용할 수 있는 사양이 자동으로 선택되도록 하자.
- DB 세부사항 설정을 하자. 거의 대부분 default 값 그대로 두면 된다. 맨 아래 settings 섹션에서 master username과 비밀번호 그리고 데이테베이스 이름만 설정하면 된다.
- 고급설정 페이지로 넘어가자. 먼저 Publc accessability 옵션을 yes로 설장하자. 그리고 Database options 세션에 "DB parameter group"을 방금 생성한 파라미터 설정 파일로 변경해주자. 나머지는 default 값 그대로 하면 된다. 끝나면 "Create database" 버튼을 눌루면 마무리 된다.
- 이제 "Instances" 페이지에 가서 방금 생성한 데이터 베이스 대쉬보드 페이지로 가자. 참고로 데이터 베이스가 사용 준비되기 까지 몇분 이상 소요 될 수 있다.
- 먼저 Endpoint를 확인하자. 이 주소로 database에 접속 할 수 있다. 그리고 Security groups링크를 클릭하하자.
- Security group 설정을 변경하여 어디서든 접속이 가능하게 하자. 원래는 데이터베이스를 이렇게 어디서든 접속 가능하게 열어놓으면 안된다. 해킹의 위험이 있다.
- 생성된 데이터베이스에 접속한후 데이터베이스와 테이블들을 생성하자.
mysql -h temptest.cj5v1k6zfree.ap-northeast-2.rds.amazonaws.com -u root -p