TIL 62일차

안광의·2021년 9월 16일
0

Today I Learned

목록 보기
62/64
post-thumbnail

시작하며

오늘은 어제 AWS EC2와 S3를 이용하여 웹페이지를 배포하고 서버를 가상화를 통해 실행시키는 과정에 이어서 RDS를 사용하여 데이터베이스를 생성하여 서버와 연결하는 스프린트를 진행하였다. 오늘은 스프린트 진행외에 추가적으로 학습한 내용이 없어서 스프린트간 알게 된 내용을 정리하려고 한다.

AWS

EC2

이전 스프린트에서는 node 혹은 nodemon을 사용해서 서버를 직접 실행했었는데 가상화를 통해 별도의 인스턴스를 생성해서 서버를 실행시킨다는 개념이 생소하게 느껴졌다. 웹페이지를 운영하기 위해서 별도의 서버실을 운영해야 한다고 생각했는데 클라우드 컴퓨팅 서비스를 통해서 편하게 서버를 실행할 수 있다는게 편리했다.

CLI로 인스턴스에 접속해서 원격으로 필요한 소프트웨어를 설치하고 권한 설정을 하고 서버를 실행했는데 GUI 환경으로도 인스턴스에 접속할 수 있다고 해서 추후에 흔히 다른 PC에 원격접속하듯이 실습해보면 좋겠다고 생각했다.

인스턴스를 중지하고 실행하면 예상치 못한 에러가 발생한 경우가 있는데 그 경우에는 리부팅을 하니 해결되었다.


S3

처음에 정적 웹사이트를 버킷에 담아서 배포한다는 개념이 생소했는데 실제 코드를 보면서 이해할 수 있었다. 이번 스프린트에서 배포하는 웹페이지의 로그인 페이지와 완료 페이지는 모든 사용자에게 동일하게 출력되고 동적인 데이터는 서버에서 응답해주기 때문에 웹페이지의 UI나 서버에 Request를 보내는 코드 자체는 정적 웹페이지로 빌드해서 S3로 배포가 가능하다는 것으로 이해할 수 있었다.

같은 Region에서는 중복되지 않는 이름의 버킷만 생성할 수 있기 때문에 다른 이름으로 수정하였다.

버킷의 객체별로 보안 정책을 설정할 수도 있고 다양한 옵션들이 있었는데 이 부분은 추가로 공부해야겠다고 생각했다. 추가로 Certificate Manager로 인증서를 발급받아서 https로 접속할 수 있도록 바꾸는 부분도 실습해볼 예정이다.


RDS


EC2의 인스턴스에 mysql을 설치해서 데이터베이스를 생성하는 것보다 규모 확장, 내구성, 백업, 관리 등 많은 이점이 있는 RDS를 사용해서 데이터베이스를 생성하고 서버의 환경변수를 수정하여 연결하였다.

데이터베이스의 종류에 따라 각각 다른 기능과 옵션들을 제공하고 있어서 추후 다른 데이터베이스를 학습하고 mysql와 어떤 차이가 있는지 확인해보면 좋겠다고 생각했다.

보안 그룹을 서버에서만 접속할 수 있도록 인바운드 규칙을 변경하는 것이 좋은데, RDS의 보안그룹도 EC2에서 관리하기 때문에 쉽게 설정할 수 있었다.


마치며

Route 53과 CloudFront를 사용해서 별도의 도메인에 https를 사용해서 접속할 수 있도록 시도했으나 Certificate Manager로 발급받은 인증서가 CloudFront에서 선택되지 않아서 실패하였다. 이 부분은 주말에 추가적으로 공부해서 해결할 예정이다. 배포 부분을 학습하면서 실제 현업 Production 단계가 어떻게 이루어지는지 알 수 있었고 이전 스프린트보다 더 와닿았던 파트였다.

profile
개발자로 성장하기

0개의 댓글