https://resfactoring.firebaseapp.com/
INDEX
간단하게 AWS란?
• 2006년 미국 아마존 서버의 비수기 때, 자원들이 노는 걸 가상화해서 AWS 출시
• AWS는 IT 인프라를 제공하는 IaaS(Infrastructure as a Service)라 할 수 있다.
※ AWS가 왜 인기있나?
기존 서비스들의 문제점
• 호스팅 서비스: 월 단위 사용료, 모
든 금액을 선불로 지급, 트래픽 초과
하면 차단
• IDC 코로케이션: 매우 비싼 임대료,
서버설치하는 데도 1주쯤 걸린다. 비
효율적 문제
• 스케일업의 한계
AWS가 대안(해결) + 차별화
• 사용한 만큼 돈내는 종량제 방식
• 서버 증설 빠르고, 서버 폐기도 빠름
• 트래픽 그래프에 따른 스케일아웃
가능(오토스케일링) = 효율적
• 마이크로서비스 아키텍처의 완벽한
지원
• 1년간 프리티어 제공
• 다양한 서비스로 업계1위
아래와 같은 인프라를 통한 고가용성
리전: AWS의 모든 서비스가 위
치하고 있는 물리적인 장소
AWS regions 핑테스트:
www.cloudping.info
가용 영역(AZ, Availability Zone):
데이터센터(IDC), 같은 지역 혹
은 도시라 하더라도 멀리 떨어져
있고, 이는 재해에 대비하기 위
함이다. 리전 내 컴퓨터들은 전
용선으로 연결되어 있어 매우 빠
름
에지 로케이션(Edge Location):
CDN 서비스인 CloudFront를 위
한 캐시 서버(엔드유저에게 가까
운 엣지로케이션에서 정적파일
들을 쏨으로써 결과적으로 반응
속도 향상)
자원의 낭비 또는 서비스 중단 자동 증설 및 감소, 비용 효율적
확장성(오토스케일링)
- 큰 어플리케이션을 여러 개의 작은 어플리케이션으로 쪼개는 것!
- 서로 다른 서비스들을 서로 다른 언어로 개발 가능!
- 개별 서비스 단위로 배포 가능하며 증설이 쉽다!
※ 마이크로서비스
- 사례 참고 : https://www.slideshare.net/awskorea/3-microservice-aws-architecture-pattern-usecase
핵심 서비스 제품 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
플랫폼 등이 있다.
※ 요금 예제
- 사례 참고 : http://hamait.tistory.com/675
- 계산기 : http://calculator.s3.amazonaws.com/index.html
- 프리티어 과금 방지 : http://gun0912.tistory.com/45
※ 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를 입력해준다.
여기서는 학교커리큘럼에 부합하는 웹서버, 톰캣서버, 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를 업로드 가능
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

리스펙토링 6월 세미나, AWS로 개인서버 구축하기

  • 1.
  • 2.
  • 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 ComputeCloud) - 가장 먼저 생긴 서비스, 가장 범용적인 서비스, 독립적인 컴퓨터 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