Cloud (11) 썸네일형 리스트형 Amplify로 static 리소스 호스팅하기 Upload codes on Github Registry우선 Amplify에서 호스팅할 코드를 github 레지스트리에 업로드한다.my-v0-resume에 있는 코드를 올려보려고 한다. Create Amplify Application and Select 'Github' Option '다음'을 누르면 github 리포지토리 접근 권한을 얻기 위한 창이 뜨는데, 권한을 주면 된다. Add Github Repository and Branch연동해주면 자동으로 리포지토리와 브랜치 리스트가 뜬다. 업로드하고자 하는 리포지토리와 브랜치를 선택한다. Specify Application기본적으로 Amplify에서 github의 코드를 읽고 자동으로 설정 값을 넣어준다. yml 파일도 별도 수정이 필요 없다.Final .. 3-tier architecture on EC2, RDS (Vue.js+Node.js+MySQL) 본 글은 Vue.js, Node.js, MySQL 기반의 3-tier architecture를 AWS 상에 구축한 내용을 정리한 것입니다. 계정 분리 (Root / IAM User)적용: root 계정과 IAM user 계정을 분리하여 root 계정에서는 비용 현황을 모니터링하고, user 계정으로는 AWS 서비스를 기반으로 아키텍쳐를 구축하였습니다.설명: root 계정은 AWS 계정을 처음 생성할 때 사용하는 계정으로, 계정에 대한 모든 권한(결제 관리, 서비스 설정, 계정 폐쇄, 인증 관리)을 갖고있어 이 계정이 해킹되거나 악용될 시 전체 AWS 리소스가 위험에 처할 수 있습니다. 따라서 root 계졍과 IAM user 계정을 분리해 사용하는 것이 보안상 안전합니다.망분리 (Public / Priva.. AMI를 생성해 인스턴스를 복제할 수 있다. 서사 ALB 도메인으로 접속해도 구축해둔 웹서버를 통해 웹페이지가 뜨지 않아서, 모든 네트워크 설정과 라우팅 테이블, 보안 그룹을 검토했다.이것들을 검토하는데에는 위의 사진과 같은 아키텍쳐 도면에 모든 설정 값을 적어두고 흐름을 이해하면서 체크하는 것이 도움됐다.또한 아래와 같이 라우팅 테이블과 보안그룹을 한 눈에 볼 수 있도록 적어두면 내가 어떤 부분을 잘못 설정했는지 확인하기 쉽다. (물론 더 좋은 툴이 있는데 내가 아직 찾지 못한 걸 수도 있다! ) 이렇게 두고 훑다보니 특정 인스턴스를 AZ2에 둬야하는데 AZ1에 할당해둔 것도 있었고, 특정 포트에 대해 아웃바운드 트래픽을 열어줘야하는데 막아두었던 것도 있었다. 확실히 도식화해서 확인하니 잘못 설정한 값들을 비교적 빠르게 파악할 수 있었다.본론본.. SA Project (5) / ALB와 AutoScaling 연동 점점 단계를 거칠수록 도면이 현실적이고 구체적으로 변해간다. 우선 AZ1 위에 LEMP 서버를 먼저 구성하고 동작여부를 확인했다. 그 다음 AZ2도 마찬가지로 적용하려했는데, 앞서 설치한 단계를 모두 다 거쳐야하는건지 궁금했다.(그럴리가 없을 것 같아서)이전 글에서 AMI를 생성해 인스턴스를 올바른 가용영역으로 다시 생성한 것 처럼, AutoScaling으로 자동생성되는 인스턴스들의 이미지도 기존에 생성해두었던 AZ1의 인스턴스로 미리 설정해둘 수 있다.ALB 생성할 때 사용할 영역 복수선택 가능하다! 최종적으로는 AutoScaling 그룹 생성 시 ALB를 부착해주면 된다.Q. 그럼 실무 개발자분들은 시작 템플릿으로 사용하기 위한 인스턴스(A)를 하나 만들고 이 템플릿으로 AutoScaling 그룹(.. SA Project (4) / ALB와 Nginx 연동 이전 글 SA Project (3) / public subnet에 NAT, ALB 생성NAT 생성- private subnet에 인터넷을 연결해줄 NAT를 각 가용영역의 public subnet에 생성해준다. - private subnet 라우팅테이블 수정하여 모든 패킷을 nat로 보내도록 한다. 인스턴스를 생성할 때, ssh 접속nolzaheo.tistory.com 이전 글에서 ALB를 생성해 private 서브넷의 인스턴스들을 가리키도록 했다. 해당 인스턴스들에는 Nginx가 WEB 서버로 동작하고있다. 따라서 ALB dns를 타고 들어온 트래픽들이 Nginx로 포워딩 되므로, 웹서버가 ALB dns 주소를 listen하도록 설정을 바꿔줘야한다. vi /etc/nginx/sites-available.. WEB 서버를 public / private 서브넷에 두는 데에는 정답이 없다. 아래와 같이 공식 문서에서도 두 가지 경우를 모두 설명하듯 개발시 고려해야 할 보안요소나 비용 측면에 따라 구성이 달라질 수 있다.예를들면, WEB server를 private 서브넷에 두는 경우 NAT를 사용해야 함에 따른 추가비용을 고려해야 한다. public subnet에 두는 경우 Example: VPC for web and database servers - Amazon Virtual Private CloudExample: VPC for web and database servers This example demonstrates how to create a VPC that you can use for a two-tier architecture in a production environment. To.. SA Project (3) / public subnet에 NAT, ALB 생성 NAT 생성- private subnet에 인터넷을 연결해줄 NAT를 각 가용영역의 public subnet에 생성해준다. - private subnet 라우팅테이블 수정하여 모든 패킷을 nat로 보내도록 한다. 인스턴스를 생성할 때, ssh 접속 시 key pair를 사용하도록 설정했었다. 따라서 이 key pair를 해당 인스턴스에 저장해줘야하는데, 이를 위해 아래와 같은 scp 명령어를 사용해 특정 디렉토리 내에 키를 저장해준다. ex) A에 저장된 key pair를 B에 전송하는 경우scp -i [B ssh 접속용 key].pem [전송대상파일 위치 of A] [수신파일저장위치 of B] 이런식으로 파일 설치 시 https 엔드포인트로도 접근하므로, 아웃바운드 규칙에 http, https 모두 .. SA Project (2) / VPC 통제 - 보안그룹, 네트워크 ACL, 라우팅 테이블 이전 포스트에서 인터넷 게이트웨이를 생성하는 것까지 했고, 이어서 라우팅 테이블을 설정한다.VPC 통제 3요소인 보안 그룹, 네트워크 ACL, 라우팅 테이블 등을 설정한다.라우팅 테이블로 경로제어, 보안그룹과 네트워크 ACL로 접근제어 경로제어: 라우팅 테이블 생성Q. 라우팅 테이블이 어떻게 구성되어야할까Q. 가용영역별로 생성하는지, public/private별로 생성하는지가 궁금 라우팅 테이블은 서브넷 또는 게이트웨이의 네트워크 트래픽이 전송되는 위치를 결정한다.따라서 인스턴스말고 서브넷에 라우팅테이블이 붙어있음! 기본적으로 데이터베이스 등이 있는 private 서브넷에는 인터넷 게이트웨이를 연결하면 안 된다.외부 클라이언트는 프라이빗 서브넷에 직접 접근할 수 없고, 퍼블릭 서브넷은 프라이빗과 서로 통.. 이전 1 2 다음