해결된 질문
작성
·
488
1
현재 서버 인프라를 혼자 공부 중인데 좋은 강의 덕분에 공부가 잘되고 있습니다.
실무와 최대한 가깝게 인프라를 구축하고 싶어서 혼자 정리를 했는데, 정리한 것에서 잘못된 점들이 있는 지 궁금하여 질문을 남기게 되었습니다.
서버를 구축할 때, aws vpc를 사용해서 내부를 public subnet 2개로 나눠서 하나는 nat gateway를 설치해서 private subnet에 위치한 rds/인스턴스의 버전업을 할 수 있도록 설정하고 나머지 public subnet에 bastion ec2를 두고 다른 private subnet에 위치한 인스턴스를 관리하려고 합니다.
만약에 여러 private subnet 내부에 각각 인스턴스들이 두고 애플리케이션을 설치해서 웹서버를 사용한다고 했을 때, 유지보수가 필요하게 되면 bastion ec2에 git action을 설치해서 ssh로 업로드를 진행해도 괜찮나요?
bastion ec2의 역할이 유지보수라고 하셔서 혹시 실무에서도 이런 식으로 진행하는 것인지 궁금합니다.
바쁘신 와중에 질문 읽어주셔서 감사합니다.
답변 1
1
안녕하세요. 강의 들어주셔서 감사합니다.
문의 주신 내용으로 구성을 보자면 아래와 같습니다.
첫번째로 Bastoin 에 유지보수라고 하는 이유는 인터넷 즉 Public 에서 VPC 의 Private Subnet 에 EC2 또는 RDS 에 접속할 수 없기 때문에 VPC 의 Public Subnet 에 Bastion 에 SSH 접속을 한 후 Private Subnet 의 Resource 에 접속을 해서 뭔가 작업을 하려 할때 활용하는 것이라고 말씀드립니다.
두번째로 NAT GW 의 사용은 사용하는 AZ별로 추가하는 것을 권장합니다. 그래서 2개의 NAT GW 가 되어야 하는 것이 가용성에서 좋습니다.
세번쨰로 git action이라고 글에 쓰셨는 데 github action 을 말씀하시 것 같습니다. 만일 Bastion 을 github action 의 배포를 담고 bastion 에서 VPC 내부로 배포를 push 든 pull 이든 하게 한다면
이 Bastion 은 또 다른 Jenkins 같은 배포 서버가 되는 셈입니다.
권장 드리는 내용은 Bastion 은 VPC 내부 접근용으로만 사용하는 것입니다. 평소에 Stop 을 해 놓고 사용할 때 Start 해서 사용하고 다 사용하면 다시 Stop 하는 등 Stop/Start 가 자유로운 용도로 사용하는 것입니다.
VPC 내부로의 배포 용도를 고민중이시라면 첫번째는 Jenkins, Gitlab 등을 EC2 또는 도커를 두는 것 하나와 두번째는 codecommit 과 code pipeline 을 사용하셔도 좋습니다.
감사합니다.
VPC
Public Subnet Private Subnet
NAT GW RDS
Public Subnet Private Subnet
Bastion
와 정말 감사합니다.!!