[내배캠/TIL(4/26)]핵심 쏙쏙 AWS 2주차

손홍서·2022년 4월 26일
0

클라우드

목록 보기
2/8
post-thumbnail

day7(4/26) TIL

day7 느낀점

백엔드랑 프론트엔드랑 연동이 안돼서 험난한 하루였다. cloudfront에 설정을 잘못해서 이 수고를... 다음부터는 좀 더 꼼꼼하게 보고 해야겠다.

왜 프론트와 백엔드를 분리하는가?

Monolithic vs MSA

Monolithic을 사용하다가 MSA로 점점 변하고있는 추세

  • Monolithic
    : 프로젝트에 관한 모든 부분을 하나의 서버에 배치하는 방법

  • MSA
    : 가장 간단하게는 프론트, 백엔드를 물리적으로 다른 서버에 배치하는 방법. 결제만 고치는데 사이트 전체가 안돌아가는 문제를 해결 가능

AWS는 아마존이 사용하던 인프라를 그대로 서비스로 만들어 놓은 것이다.
아마존 닷컴의 아키텍처와 같이 블록처럼 조립해서 쓸 수 있게 서비스를 구성한다.
AWS를 사용한다는 것은 단순히 클라우드 사용을 넘어 개발 방식도 클라우드 철학에 맞게 변해야 한다는 것을 알 수 있다. 결론은 분리해야 할 부분은 무조건 분리

CloudFront

CloudFront는 CDN(Content Delivery Network)서비스와 유사한 기능이다.
이는 정적파일을 글로벌하게 캐싱해주는 서비스이다.
나라의 가까운 리전마다 같은 S3 버킷을 생성해주는 것이 아니라 CloudFront를 사용한다.

Github Action

Git Action은 Github에서 제공하는 배포 서비스이다.
요즘 트랜드는 CI/CD 통합이다.
CI는 Continuous Integration으로 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 리포지토리에 통합되어 여러 개발자들이 동시에 코드 작업을 할 수 있도록 하는 것이다.
CD는 Continuous Delivery로 젹용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 업로드되면 실시간 프로덕션 환경에 배포할 수 있는 것이다.
즉, 이는 DevOps 플랫폼으로 소스저장소와 배포 시스템을 통합하는 것이다.
부담 없이 자주 배포가 가능해 배포 주기를 짧게 가질 수 있다.

Github 소스 리파지토리에 .github/workflows/main.yml 파일만 추가하면 사용 가능

네트워크

VPC(Virtual Private Cloud)

AWS 클라우드 내의 네트워크이다.
사용자가 독립적인 네트워크를 만들고 싶을 때 VPC를 통해 논리적으로 독립된 네트워크를 생성해 사용한다.
크게는 aws 데이터 센터 안에 있지만 관리하려는 리소스 성격에 따라 VPC를 만들어 사용 가능하다.

서브넷

연결되는 서버 컴퓨팅 자원들의 내부 IP를 할당한다.
이는 VPC를 또 잘게 쪼개는 과정이다.

라우팅 테이블

연결된 서브넷들을 라우팅할 때 라우팅테이블을 따라 작동한다.

인터넷 게이트웨이

인터넷과 VPC를 연결한다.
연결된 VPC만 외부와 통신 가능하다.

보안그룹 *

방화벽과 비슷한 역할을 한다. 보안그룹과 연결된 인스턴스들에 접근을 제어한다.
보안그룹을 통해 포트를 제어할 수 있다.
1. 인바운드: 내가 리소스 접근할때 사용하는 포트
2. 아웃바운드: 다른 연동하는 api를 호출하는 등 내가 호출할 때 나가는 포트

탄력적 IP *

인스턴스에 고정된 ip 부여할 수 있게 한다.
ip가 고정이되어야 연동 가능하기때문에 고정 ip를 만든다.

백엔드

EC2

하나의 서버 컴퓨터라고 보면되고, 이 서버 컴퓨터를 하나 빌려서 프로그램들을 설치하고 사용한다.

ELB

EC2 여러대를 묶어서 사용하기위한 서비스이다.
로드밸런스를 연결하면 갑자기 트래픽이 늘어나는 등의 서비스 장애가 생겨도 서버를 증설하여 안정적으로 서비스를 제공할 수 있다.

소스에 키 세팅: api 프론트와 백엔드를 연동해서 프론트에서 넘어오는 파일 받아서 s3 넘김

main.yml에 키 세팅: 배포를 위한 eb에 대한 권한

EB(ElasticBeanstalk)

ELB + Auto Scaling + EC2 한번에 관리할 수 있는 서비스이다.
환경에는 신경쓸 필요없이 간단한 옵션만 조절하고, 어플리케이션만 배포하면 되는 형태이다.

profile
Hello World!!

0개의 댓글