Skip to content

Latest commit

 

History

History
141 lines (130 loc) · 9.33 KB

readme.md

File metadata and controls

141 lines (130 loc) · 9.33 KB

AWS

클라우드 컴퓨팅

  • 인터넷에 연결되어있는 거대한 컴퓨터를 사용하는 것

보안설정

  • 내 서버가 해킹당해서 채굴에 이용돼지 않도록.. 보안 설정을 잘 해두자.
  • Identity & Access Management (IAM)
  • MFA를 이용한 계정 보안으로 비밀번호가 털려도 계정을 보호한다.

지역(Region) 가용구역(avaliability zone)

  • 지역(Region)
    • 실제 소비자가 있는 공간과 서버가 존재하는 지역이 멀 수록 네트워크 속도가 느려짐
    • 전세계의 아마존의 컴퓨터가 여러곳에 흩어져있음
    • 전기는 빠르게 이동하기 때문에 거리와 무관할 것 같지만
    • 물리적으로 결국 멀어질 수록 많은 거리를 이동하게 되기 때문에 느려질 가능성이 커짐.(실제로 느려짐)
    • 지역 선택시의 의사결정 방법?
      • 네트워크 속도 측정 사이트에서 속도를 측정해본다.(https://cloudping.info/)
      • 지연시간이 가장 빠른곳을 선택하면 됨.
  • 가용영역(AZ)
    • 두개의 독립된 인프라가 존재할 때, 하나의 region에 여러개의 서버 건물이 있음
      • 자연재해 등으로 인해 서버건물이 없어지게돼도 또다른 서버실이 백업된 데이터로 서버를 돌릴 수 있도록 하는 것이 가용영역
      • 같은 지역에 있는 서버 건물은 빠른 속도의 네트워크가 구축되어있기 때문에 빠르게 백업되고 데이터를 주고받을 수 있음
    • 지역과 지역은 직접적인 연결성이 없음
      • 같은 지역 내의 AZ 끼리는 데이터를 주고 받을 수 있으나
      • 다른 리전의 데이터는 전용선으로 연결되어있지 않기 때문에 인터넷으로 데이터를 주고받아야한다.

EC2 (Elastic Compute Cloud)

  • 독립된 컴퓨터를 대여해주는 서비스
  • 컴퓨터 1 대 = 인스턴스 1 개
  • EC2의 효용성
    • 실제 컴퓨터를 구매할 경우, 해당 컴퓨터가 필요없어질 경우 처리하기 힘들지만 (팔기 전까지 돈도 안되고..)
    • EC2로 사용할 경우, 필요없어질 때 바로 꺼버리면 됨.
  • 인스턴스 타입
    • 운영체제 : 아마존 리눅스, 레드햇, 수세리눅스, 우분투..가 설치되어있는..컴퓨터
    • vCPUs : 아마존 웹 서비스에서 자체적으로 측정한 기준에 따라 나눈 CPU 성능
    • Network performance : 네트워크 속도에 대한 것
    • 필요한 성능의 인스턴스를 구매해서 사용
  • 가격 정책
    • 온디맨드 : 컴퓨터를 사용하지 않을 때 끌 수 있음
    • 예약 인스턴스 : 일정 기간동안 서버를 끄지 않고 계속 사용하는 옵션
      • 예약 인스턴스는 온디맨드 인스턴스 요금에 비해 상당한 할인 혜택(최대 72%)을 제공합니다.
    • 스팟 인스턴스 : 아마존 웹서비스 내의 노는 인스턴스가 많아지면, 가격이 저렴해지고 그렇지 않을 때는 비싸지는..아니 뭐 ..주식이야..?
  • 장치 설정
    • shutdwon behavior : ec2 인스턴스 내 shutdown 했을 때, 일시정지 할 것인가 삭제 할 것인가
    • termiation protection : 인스턴스 삭제 방지
    • Monitoring : 인스턴스의 상태(cpu 점유율, 메모리 사용율 등을 그래프로 저장해 둠, 추가비용 발생)
    • Add storage
      • Size: 저장 장치의 크기
      • Volume Type: SSD, Magnetic...
      • Delete on Termination : 체크 해제 시 저장장치와 컴퓨터가 분리되어 폐기되는 상태
  • 태그
    • 인스턴스에 대한 정보를 저장
      • {Name: web server, manager: 김연재, type:real } 과 같이 인스턴스에 대한 설명
  • 보안그룹
    • 인스턴스에 접근하는 보안에 대해 지정하는 항목
      • 어떤 방식의 접속만 허용하는지, 어떤 사람이 접근하는것을 허용하는지
    • Type: ssh, http, https, ...
      • 인스턴스에 접속하는 방법(원격 제어, FTP..) 중 제한된 방법들로만 접속하는 것을 허용하는 것)
      • SSH : 리눅스 인스턴스 원격제어 방식
        • source : (Anywhere : 모든 컴퓨터의 접속 허용, MY ip : 내 아이피만, custom Ip: 특정한 ip)
      • HTTP : 웹 서버로 사용되는 인스턴스에 대해, 웹 브라우저로 접속할 수 있도록 하는 것(Anywhere 옵션)
      • RDP : 윈도우 인스턴스 원격제어 방식
  • Review Instance Launch
    • create a new key pair
      • 인스턴스에 네트워크를 통해 접속할 때 사용할 비밀번호를 지정하는 것

EC2 인스턴스 접속

  • pem key를 다른 사용자가 읽는 것을 막기위해 chmod 400 aws_pawd.pem 설정을 해 줌
    • 이 파일의 소유자만 이 파일을 읽을 수 있음
  • ssh -i "aws_pwd.pem" ubuntu@instance Ip 명령어로 접속
    • i : 파일을 원격으로 인스턴스에 제출
    • instance Ip : 접속하고자하는 IP
    • ubuntu: 접속할 때 사용하고자하는 ID (인스턴스가 생성될 때 기본으로 만들어지는 ID)

AMIs(amazone machine image)

  • 다른 사람이 만든 서버를 사용하는 것
  • Aws market place

Scalability

  • Ec2 의 큰 특징
    • 가상화

      • 가상 머신
        • 실제의 물리적인 컴퓨터가 아니고, 물리적인 컴퓨터 위에서 돌아가는 가상의 컴퓨터
        • 하나의 물리적인 컴퓨터 위에 하나의 운영체제만 동작하던 고전적인 컴퓨터
        • 운영체제 위에 가상머신을 설치하여 여러 운영체제를 설치하도록 함(ex: VMWare, virtualBox, Parallels)
    • 종량제

      • 서버의 스펙이 수요에 따라 가변적임.
    • 가변적이지 않은 상황에서는 물리적 컴퓨터를 사용하는 것이 합리적이나, 기업의 경우 수요가 가변적이기 때문에 클라우드 컴퓨팅 서비스를 사용하는 것이 합리적이다.

Scale Up

  • 컴퓨터 자원에 대한 수요가 증가하면 계속 더 좋은 컴퓨터로 변경하는 방식
  • 물리적인 서버의 경우 up은 쉬우나(돈..) down은 어렵다.
  • top : CPU, memory 점유율 확인 명령어
  • 스트레스 테스트
    • 동시접속 인원이 증가함에 따라 개별처리 속도가 느려진다 -> 한정된 자원을 나눠 쓰고 있기 때문에 느려지고있다.
  • 인스턴스 중지 후 다시 켜면, IP, DNS 가 변경됨.
    • IP는 한정된 자원이기 때문에 사용하지 않는 IP는 회수됨.
    • Elastic IPs : 아마존으로부터 IP를 소유할 수 있도록 함.(유료)
      • 1개의 EC2에 붙여져있으면 무료임, 그 이상은 유료.
  • 인스턴스를 이미지화 후 이미지 기반으로 더 좋은 컴퓨터로 스케일 업.
  • Scale up의 한계 : 좋은 성능의 컴퓨터는 한계가 있다. 한계에 다다르면 스케일 아웃을 진행한다.

SCale out

  • 필요하지 않다면 굳이 미래를 위해 미리 할 필요 없다. 불필요한 복잡성 증가. > 문제 야기

  • 하나의 뿌리를 공유하는 숲 > scale out

  • 두 대 이상의 컴퓨터가 협동

    • web server > middle ware > () > database

      • 두 대의 컴퓨터가 협력하여 일을 함.
      • 복잡성 증가
      • 미들웨어와 데이터베이스 사이에 통신을 필요로 하므로 약간의 성능 저하가 발생하지만, 두대로 나누어 일하는 것에 잇점이 더 클 수 있음
    • web server > () > middle ware > () > database

      • 세 대의 컴퓨터를 필요로 함
      • 웹 서버는 computer 3, 미들웨어는 computer2, db는 coumputer1
    • web server > () > middle ware > () > database1, database2

      • 사용자가 많고, 데이터가 많아질 수록 데이터베이스의 성능은 점점 나빠짐
      • 새로운 컴퓨터에 새로운 db를 생성함
      • 두개의 db를 빠른속도로 복제하여 동일한 상태로 만들고, 각각의 db가 하는 역할을 나눔(읽기, 쓰기..)
      • 이걸로도 안되면 db샤딩을 하던가..
    • scale out은 많은 컴퓨터들이 협력하여 일을 하도록 하는 것.

    • webServer를

  • scale up 만으로 해결되지 않는 경우, scale out을 해야한다.

로드밸런서

부하가 적절히 분산되도록 도와주는 장치

  • 사용자가 동일한 DNS를 입력할 때, 각각 다른 IP의 컴퓨터로 접속할 수 있도록 함
  • 웹서버를 DB, middleware와 같이 분산시켜서 사용할 수 있음.

ELB 사용 시 주의사항

  • scale out 했을 때, DB를 포함한 instance인 경우, scalue out 된 DB가 불일치하는 문제가 생김.
    (정적인 html, php 등의 파일은 scale out해도 사용자는 모든 화면을 동일하게 볼 수 있지만..)
  • DB를 포함한 컴퓨터는 어떻게 scale out 해야할까?
    • DB는 제외한 후 나머지 web server, middleware들만 scale out한다.

Autoscaling

  • 사용자들의 트래픽이 언제 많아질 지 알 수 없음.
  • 수동으로 로드밸런서를 만들어 붙이는 작업을 자동으로 해주는 서비스.
    • 상황에 따라 유연하게 대처 가능