배포
1. 서버
2. 클라
3. db
4. https(보안 강화)
이전에 물리적인 서버실이 있었는데 이제 가상화를 했다
클라우드
얼마나 어느 범주만큼 하는지
on-site : 서버실
SaaS : 앱까지 해준다 (들어가면 바로 쓸 수 있다) ex. 넷플릭스
cloud vs onpremise
비용 프리티어 + 온디멘드(사용한만큼) 초기비용, 유지비 (컴퓨터 열 식히기 위해 냉방)
확장성 바로바로 가능(서버에 과부하가 일어나는 등) 불리
구축에 걸리는 시간 적음 걸림
어딘가에는 서버실이 있어야 한다
ex. 아마존은
서울에 데이터센터가 있다
리전에 따른 법률을 적용받는다
버지니아 주 리전 : 버지니아주의 법을 적용받는다
그러므로 고객의 민감한 정보 같은 것들을 넣으려면 온프레미스 사용 ex. 은행, 나쁜짓할 때
만들어진 컴퓨터를 빌리는 것
서버로 쓸 수도 있고 db로 쓸 수도 있다
ec2를 사용해서
aws는 전세계적인 네트워크를 가지고 있다
'리전' : 전세계에 컴퓨터가 있는 물리적인 위치
사용자는 가상 컴퓨터를 빌리지만 실제 컴퓨터가 어딘가에는 위치하고 있어야 한다
리전마다 가용영역 (availability) 이 있다
"가용성"이란?
멈춰서 이용할 수 없는 다운타임을 최소화하고 사용자가 사용할 수 있는 시간을 최대화하는 것
ex. 넷플릭스에서 서버가 하나 꺼져서 사용할 수 없게 되는 경우
그러므로 여러 곳에 서버 컴퓨터를 놓는 것
이때 이 '여러 곳'이 가용영역
리전 안에 가용 영역이 여러개 있는 것!
여러 개의 서버의 싱크를 일정 시점마다 맞춘다
그러므로 요즘에는 서버 점검 시간 같은 게 없다 (여러 개의 영역에 뿌려져 있으니까 )
VPC(virtual private cloud)
ex. 마켓컬리가 만든 ec2와 우리가 만든 ec2가 같은 곳에 있을까?
눈에 보이지는 않지만 분명히 분리되어 있다
이를 VPC라고 한다
ex. 우리 컴퓨터 안에 폴더들이 가상의 영역으로 나눠져 있는 것처럼!
private network : 내부망에 있는 컴퓨터 하나하나가 각각의 고유 번호를 받는다
그러므로 내부망 안에서 서로를 식별할 수 있게 해준다 (private IP)
나의 vpc 안에서 받는 private ip
브라우저로 접근할 수 있기도 해야하니까 public ip또 따로 받는다
누구나 접근 가능해야 하니까 고유해야 한다!
public ip vs private ip
: vpc 안에서는 '내방'이라는 이름으로 찾을 수 있지만
: public 안에서는 '내방'이라는 이름으로 찾을 수 없다!
그러므로 고유 이름을 가져야 한다
외부에서 접근하는 public ip는 보안을 더 신경써야 한다
EC2하나하나를 인스턴스라고 한다
AMI : 어떤 운영체제에서 어떤 기능을 쓰는지 템플릿으로 만들어놓은 거(선택할 수 있다)
aws 안에 리전이 있고 그 안에 vpc가 있고 그 안에 가용영역이 a, b로 있고
둘 중 하나가 죽으면 다른 애가 대신할 수 잇도록 되어 있다
클라우드 아키텍쳐를 하는 사람들이 담당하는 영역이다
버킷 : 데이터를 저장하는 공간 + 작은 웹 서버
정적 콘텐츠를 담아서 포스팅하면 (ex. html) s3만으로도 뜬다
버킷 안에는 객체가 들어있다 (폴더가 들어있다)
: 버킷 이름과 키를 알고 있으면 그 안에 있는 데이터에 접근할 수 있다
데이터가 있기 때문에 보안을 신경 써야 한다
그래서 속성에서 정책을 바꿔줘야 한다
action: getObject 허용
resource : arn(aws의 리소스) 버킷이름/*(안의 모든 것들)
이렇게 하기 때문에 build를 하면 접근 가능해진다
cf.
정적파일
서버에서 다른 데이터를 받아서 띄우는 것이 아니라 사이트 들어가자마자 볼 수 있는 것
더미데이터를 사용하는 것
동적파일
js에서 비동기 통신을 하고 ajax을 쓰는 것은 동적
js가 무조건으로 동적인 건 아님
서버에서 뭔가를 가져와서 변경시키면 동적!
클라에서 사용자가 요청을 하면 서버에서 디비에 접근해서 데이터를 받아서 돌려준다
EC2를 껐다 키면 IP 주소가 변경되기 때문에 환경변수에 url을 바꿔줘야 하고 build를 다시 해줘야 한다
url/status라고 써있기 때문에 환경변수에서 url에 /를 끝에 넣지 않도록 유의해야 하낟
http://도 같이 잘 넣어주어야 하낟
pem 권한을 줘야 한다
key pair를 생성하고 다운로드한 경로까지 가서 권한을 변경해야 한다