본문 바로가기

전체 글

(80)
개인프로젝트 1-1 - Vue.js를 활용한 Q.T용 웹앱 만들기 앱 구현은 사용자가 불편하다고 느낄 수 있을 것 같아 웹앱으로 구현한다. 기술 스택MEVN(MySQL, Express.js, Vue.js, Node.js) 개발배경 AWS 공부를 위해 AWS에 올릴 서비스가 필요했고, 3-tier architecture를 복습할겸 마침 교회에 필요한 말씀 묵상 공유 서비스를 만들면 좋겠다고 생각함.개발목표기간: 2024/10/24~2024/11/30(has been delayed)기능: 카카오 로그인, 큐티방 생성, 묵상 작성, 묵상 캘린더, 댓글 UI(업로드 예정) 아키텍쳐처음에는 익숙한대로 인스턴스 단위로 구성할까 했지만, AWS 공부를 위한 프로젝트인 만큼 AWS의 S3, lambda, RDS를 활용해보려한다.- 정적 리소스를 S3에 호스팅- VPC, EC2, RD..
ChatGPT가 못 하는 것 이제 웬만하면, 아무리 처음 접하는 언어나 라이브러리를 사용하더라도 ChatGPT를 마구 귀찮게 하면 그 지식의 한계가 보완된다.아예 몰라서 시작을 못할 일은 없다는 말인데 그래서 이제는 개발자로서 진짜 중요한 역량은 '마무리'를 잘 하는 게 아닌가 싶다.아무리 생소한 분야더라도 온갖 레퍼런스를 총동원해 끝까지 포기하지 않고 만들어내는 것그 끈기.. 중꺾마는 ChatGPT도 도와줄 수 없는 역량이기 때문이다. 그리고 필요한 작업들을 구조화하여 나누고 일을 효율적으로 처리하는 것도! 여전히 중요한 역량인 것 같다.무엇을 구현하려는 상황인지 파악하고, 어떤 것들이 필요할지를 구상해낼 줄 아는 것.추상적인 니즈를 구체화하고 적절한 태스크 단위로 나누어 진행하는 것.
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 모두 ..
Server-side rendering Vs. Client-side rendering