AZ(가용 영역)는 AWS 리전의 중복 전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성됩니다. AZ를 사용하면 단일 데이터 센터를 사용하는 것보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있습니다. AWS 리전의 모든 AZ는 높은 대역폭, 지연 시간이 짧은 네트워킹, 완전한 중복성을 갖춘 전용 메트로 광 네트워크와 상호 연결되어 있어 AZ 간에 높은 처리량과 지연 시간이 짧은 네트워킹을 제공합니다. AZ 간의 모든 트래픽은 암호화됩니다. 네트워크 성능은 AZ 간 동기 복제 기능을 충분히 수행할 수 있습니다. AZ는 고가용성을 위한 애플리케이션 분할을 용이하게 합니다. 애플리케이션 하나를 여러 AZ에 걸쳐 분할하면 기업의 격리가 더 원활하게 이루어지며 정전, 낙뢰, 토네이도, 지진 등과 같은 문제로부터 안전하게 보호됩니다. AZ는 다른 모든 AZ와 수 킬로미터에 상당하는 유의미한 거리를 두고 물리적으로 분리되어 있습니다. 다만 모든 AZ는 서로 100km(60마일) 이내의 거리에 위치합니다.
몇달전 카카오 사태에서 봤듯이 가용영역을 나누는것은 라이브 운영시 중요한 포인트다.
카카오의 경우 같은 건물에서 이중화를 했던걸로 보인다.
한 건물에 화재가 발생하니 전국민이 이용하는 서비스가 한순간에 골로 가버렸다. :(
AWS cloud는 수 킬로미터에 상당하는 유의미한 거리두고 가용 영역이 나눠 지는걸 위 글에서 알 수 있다.
우리도 이중화를 하자..?!!!
AWS에서는 VPC메뉴를 통해 네트워크 구성을 굉장히 쉽고 편하게 할 수 있다. (aws 😍😍😍)
VPC메뉴로 들어가 첫번째 옵션에서 "VPC등"을 선택하면
vpc + subnet + routing table + 인터넷 게이트워이 등이 한번에 생성된다.
각 서비스에 맞게 가용역역과 서브넷 셋팅을 편하게 할 수 있다.
대부분의 서버들은 private zone에 위치하게 될것이다.
이 서버들에 접근 하려면 몇 가지 방안이 있는데 흔히 bastion host를 public영역에
놓고 접근하게된다. (aws vpn을 사용해도된다. 근데 넘 비싸다. 시간당 비용 계산.. 쿨럭...)
로컬(개인pc) -> bastion host -> private zone ec2
그럼 인증서는 어떻게 관리할 것인가?? bastion host에 각 ec2 인증서를 다 업로드?
이건 너무 위험한것 같다. bastion host하나 뚫리면 전서버가 다 뚫리게된다.
인증서는 안전하게 로컬에만 저장하고 아래와 같이 접속하는것이 좀 더 안전할것 같다.
---- local ----
ssh-add bastion.pem private-ec2.pme
ssh -A ubuntu@bastionip
---- bastion host ----
ssh -A ubuntu@private-ec2ip
보안이 생명이다.!