3. 간단하게 AWS란?
• 2006년 미국 아마존 서버의 비수기 때, 자원들이 노는 걸 가상화해서 AWS 출시
• AWS는 IT 인프라를 제공하는 IaaS(Infrastructure as a Service)라 할 수 있다.
※ AWS가 왜 인기있나?
기존 서비스들의 문제점
• 호스팅 서비스: 월 단위 사용료, 모
든 금액을 선불로 지급, 트래픽 초과
하면 차단
• IDC 코로케이션: 매우 비싼 임대료,
서버설치하는 데도 1주쯤 걸린다. 비
효율적 문제
• 스케일업의 한계
AWS가 대안(해결) + 차별화
• 사용한 만큼 돈내는 종량제 방식
• 서버 증설 빠르고, 서버 폐기도 빠름
• 트래픽 그래프에 따른 스케일아웃
가능(오토스케일링) = 효율적
• 마이크로서비스 아키텍처의 완벽한
지원
• 1년간 프리티어 제공
• 다양한 서비스로 업계1위
4. 아래와 같은 인프라를 통한 고가용성
리전: AWS의 모든 서비스가 위
치하고 있는 물리적인 장소
AWS regions 핑테스트:
www.cloudping.info
가용 영역(AZ, Availability Zone):
데이터센터(IDC), 같은 지역 혹
은 도시라 하더라도 멀리 떨어져
있고, 이는 재해에 대비하기 위
함이다. 리전 내 컴퓨터들은 전
용선으로 연결되어 있어 매우 빠
름
에지 로케이션(Edge Location):
CDN 서비스인 CloudFront를 위
한 캐시 서버(엔드유저에게 가까
운 엣지로케이션에서 정적파일
들을 쏨으로써 결과적으로 반응
속도 향상)
5. 자원의 낭비 또는 서비스 중단 자동 증설 및 감소, 비용 효율적
확장성(오토스케일링)
6. - 큰 어플리케이션을 여러 개의 작은 어플리케이션으로 쪼개는 것!
- 서로 다른 서비스들을 서로 다른 언어로 개발 가능!
- 개별 서비스 단위로 배포 가능하며 증설이 쉽다!
※ 마이크로서비스
- 사례 참고 : https://www.slideshare.net/awskorea/3-microservice-aws-architecture-pattern-usecase
7. 핵심 서비스 제품 AWS EC2 : 클라우드 가상 컴퓨팅
AWS Lambda : 서버없는, 이벤트
처리 방식의 컴퓨팅 서비스
Amazon CloudWatch : 1분주기로
데이터가 집계, 편리한 모니터링,
로깅, 통계 처리 구축
Route 53 : DNS서버, 부하분산 기
능
Amazon S3, CloudFront : 스토리
지 서버(주로 이미지, css, js같은
정적파일), 유저가 접근할 때 aws
는 자동으로 유저와 가장 근접한
엣지로케이션에서 패킷을 쏴주므
로 빠르다.
Amazon RDS, DynamoDB : 각각
RDB서비스, NOSQL 데이터베이스
서비스이다.
이외에도 인공지능의 Amazon
Lex, ML, 사물인터넷의 AWS IoT
플랫폼 등이 있다.
8. ※ 요금 예제
- 사례 참고 : http://hamait.tistory.com/675
- 계산기 : http://calculator.s3.amazonaws.com/index.html
- 프리티어 과금 방지 : http://gun0912.tistory.com/45
9. ※ EC2(Elastic Compute Cloud)
- 가장 먼저 생긴 서비스, 가장 범용적인 서비스, 독립적인 컴퓨터 1대 제공
- 인스턴스 유형: https://aws.amazon.com/ko/ec2/instance-types/
- 마이크로 인스턴스: 가격이 가장 싸며, 낮은 vCPU 성능과 적은 메모리를 제공. 프리티어는 무료!
EC2 인스턴스 생성하기
- 링크 : http://www.pyrasis.com/book/TheArtOfAmazonWebServices/Chapter04/03
※ 위 링크에서 이렇게 바꿔서 생성하세요!
- 리전 : 도쿄 → 서울
- 가상머신 이미지 : 아마존 리눅스 → 우분투 16.04 LTS
- 인스턴스 유형 : 프리티어인 t2.micro
- 이외 세부설정은 전부 default 및 링크문서대로!
※ window에서 ec2 인스턴스에 접속하기
- 링크 : http://www.pyrasis.com/book/TheArtOfAmazonWebServices/Chapter04/04
최초 접속시 경고창이 나오면 yes를 누르고, login 아이디를 물으면 ubuntu를 입력해준다.
10. 여기서는 학교커리큘럼에 부합하는 웹서버, 톰캣서버, DB서버 세팅을 목표로 한다.
보안그룹 설정은 http://www.pyrasis.com/book/TheArtOfAmazonWebServices/Chapter05 를 참고한다.
먼저, sudo apt-get update 로 사용 가능한 패키지 리스트를 최신버전으로 업데이트한다.
1. 웹서버 설치
- sudo apt-get install apache2
- security group에서 add rule을 하고 HTTP를 열어준다.
- vi /var/www/html/index.html 으로 hello world라고 써준다.
- 웹 브라우저에서 인스턴스의 IP를 입력하면 hello world가 출력!
2. 자바8 설치
sudo apt-get install openjdk-8-jdk
3. 톰캣 설치
- sudo apt-get install tomcat8 tomcat8-admin
- security group에서 add rule을 하고 8080을 열어준다.
- 매니저 설정 : vi /etc/tomcat8/tomcat-users.xml 에서 <tomcat-users></tomcat-users> 사이에
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username=“자네ID" password=“자네PW" roles="manager-gui,manager-script"/>
- 다시시작: service tomcat8 restart
- 톰캣메인 접속은 웹브라우저에서 인스턴스IP:8080
- 톰캣GUI관리자 접속은 웹브라우저에서 인스턴스IP:8080/manager/html 이다. 여기서 war를 업로드 가능
11. 4. SWAP 설정
swap 파티션은 RAM이 부족할때 보조기억장치를 활용하여 메모리량을 늘려줘 프로세스를 적재가능하게 하는
곳이다. 여기서는 데이터베이스를 안정적으로 돌리기 위하여 1기가를 더 추가해준다.
- sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
- sudo mkswap /swapfile
- sudo swapon /swapfile
- sudo echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
5. 데이터베이스 설치
- 설치 : sudo apt-get install mysql-server mysql-client
- 접속 : mysql -u root -p
- 인코딩 확인: SHOW VARIABLES LIKE 'c%'
- 인코딩 UTF-8로 변경: /etc/mysql/mysql.conf.d/mysqld.cnf 에서 맨 밑에
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[client]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
- 다시시작 : service mysql restart