- https://opentutorials.org/course/2717
- 위 강의를 듣고 정리한 내용
- 인터넷에 연결되어있는 거대한 컴퓨터를 사용하는 것
- 내 서버가 해킹당해서 채굴에 이용돼지 않도록.. 보안 설정을 잘 해두자.
- Identity & Access Management (IAM)
- MFA를 이용한 계정 보안으로 비밀번호가 털려도 계정을 보호한다.
- 지역(Region)
- 실제 소비자가 있는 공간과 서버가 존재하는 지역이 멀 수록 네트워크 속도가 느려짐
- 전세계의 아마존의 컴퓨터가 여러곳에 흩어져있음
- 전기는 빠르게 이동하기 때문에 거리와 무관할 것 같지만
- 물리적으로 결국 멀어질 수록 많은 거리를 이동하게 되기 때문에 느려질 가능성이 커짐.(실제로 느려짐)
- 지역 선택시의 의사결정 방법?
- 네트워크 속도 측정 사이트에서 속도를 측정해본다.(https://cloudping.info/)
- 지연시간이 가장 빠른곳을 선택하면 됨.
- 가용영역(AZ)
- 두개의 독립된 인프라가 존재할 때, 하나의 region에 여러개의 서버 건물이 있음
- 자연재해 등으로 인해 서버건물이 없어지게돼도 또다른 서버실이 백업된 데이터로 서버를 돌릴 수 있도록 하는 것이 가용영역
- 같은 지역에 있는 서버 건물은 빠른 속도의 네트워크가 구축되어있기 때문에 빠르게 백업되고 데이터를 주고받을 수 있음
- 지역과 지역은 직접적인 연결성이 없음
- 같은 지역 내의 AZ 끼리는 데이터를 주고 받을 수 있으나
- 다른 리전의 데이터는 전용선으로 연결되어있지 않기 때문에 인터넷으로 데이터를 주고받아야한다.
- 두개의 독립된 인프라가 존재할 때, 하나의 region에 여러개의 서버 건물이 있음
- 독립된 컴퓨터를 대여해주는 서비스
- 컴퓨터 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
- 인스턴스에 네트워크를 통해 접속할 때 사용할 비밀번호를 지정하는 것
- create a new key pair
- pem key를 다른 사용자가 읽는 것을 막기위해
chmod 400 aws_pawd.pem
설정을 해 줌- 이 파일의 소유자만 이 파일을 읽을 수 있음
ssh -i "aws_pwd.pem" ubuntu@instance Ip
명령어로 접속i
: 파일을 원격으로 인스턴스에 제출instance Ip
: 접속하고자하는 IPubuntu
: 접속할 때 사용하고자하는 ID (인스턴스가 생성될 때 기본으로 만들어지는 ID)
- 다른 사람이 만든 서버를 사용하는 것
- Aws market place
- https://aws.amazon.com/marketplace
- 원하는 서비스(ex: wordpress)가 이미 서버에 설치되어 바로 사용할 수 있는 이미지들을 받을 수 있음
- Ec2 의 큰 특징
-
가상화
- 가상 머신
- 실제의 물리적인 컴퓨터가 아니고, 물리적인 컴퓨터 위에서 돌아가는 가상의 컴퓨터
- 하나의 물리적인 컴퓨터 위에 하나의 운영체제만 동작하던 고전적인 컴퓨터
- 운영체제 위에 가상머신을 설치하여 여러 운영체제를 설치하도록 함(ex: VMWare, virtualBox, Parallels)
- 가상 머신
-
종량제
- 서버의 스펙이 수요에 따라 가변적임.
-
가변적이지 않은 상황에서는 물리적 컴퓨터를 사용하는 것이 합리적이나, 기업의 경우 수요가 가변적이기 때문에 클라우드 컴퓨팅 서비스를 사용하는 것이 합리적이다.
-
- 컴퓨터 자원에 대한 수요가 증가하면 계속 더 좋은 컴퓨터로 변경하는 방식
- 물리적인 서버의 경우 up은 쉬우나(돈..) down은 어렵다.
top
: CPU, memory 점유율 확인 명령어- 스트레스 테스트
- 동시접속 인원이 증가함에 따라 개별처리 속도가 느려진다 -> 한정된 자원을 나눠 쓰고 있기 때문에 느려지고있다.
- 인스턴스 중지 후 다시 켜면, IP, DNS 가 변경됨.
- IP는 한정된 자원이기 때문에 사용하지 않는 IP는 회수됨.
Elastic IPs
: 아마존으로부터 IP를 소유할 수 있도록 함.(유료)- 1개의 EC2에 붙여져있으면 무료임, 그 이상은 유료.
- 인스턴스를 이미지화 후 이미지 기반으로 더 좋은 컴퓨터로 스케일 업.
- Scale up의 한계 : 좋은 성능의 컴퓨터는 한계가 있다. 한계에 다다르면 스케일 아웃을 진행한다.
-
필요하지 않다면 굳이 미래를 위해 미리 할 필요 없다. 불필요한 복잡성 증가. > 문제 야기
-
하나의 뿌리를 공유하는 숲 > 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와 같이 분산시켜서 사용할 수 있음.
- scale out 했을 때, DB를 포함한 instance인 경우, scalue out 된 DB가 불일치하는 문제가 생김.
(정적인 html, php 등의 파일은 scale out해도 사용자는 모든 화면을 동일하게 볼 수 있지만..) - DB를 포함한 컴퓨터는 어떻게 scale out 해야할까?
- DB는 제외한 후 나머지 web server, middleware들만 scale out한다.
- 사용자들의 트래픽이 언제 많아질 지 알 수 없음.
- 수동으로 로드밸런서를 만들어 붙이는 작업을 자동으로 해주는 서비스.
- 상황에 따라 유연하게 대처 가능