brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 04. 2022

14탄-모범 사례 기반으로 웹 애플리케이션 배포

<1> 웹 애플리케이션 만들었다. 배포해 보자.

<2> IAM 권한  주의

<3> 다양한 AWS 웹 애플리케이션 배포 옵션

<4> 웹 애플리케이션 배포 시 , 고려해야 하는 것들

<5> Elastic Beanstalk은 포괄적인 웹 애플리케이션 관리 서비스이다.

<6> 스토리지, 데이터 베이스 연결

<7> 웹 애플리케이션과 데이터 베이스 연결

<8> 개인 정리



<1> 웹 애플리케이션 만들었다. 배포해 보자.


1

쉽고 빠르게 구성에서 배포까지 할 수 있는 방법?


IAM , VPC , Elastic Beanstalk, S3, RDS, Secret Manager 


1

개발자 권한 설정 IAM

정책을 사용자 또는 역할에 준다.

사용자는 cli나 콘솔로 청책을 사용한다.

역할은 AWS리소스에 부여되며, 리소스를 통해  정책을 사용한다.



2. 

네트워크 구성  VPC


3

애플리케이션 배포 Elastic Beanstalk


4

스토리지와, 데이터 베이스 연결 - S3, RDS. Secret Manager 

시크릿 매니저를 통해 안정하게 연결



<2> IAM 권한  주의


1

설정 파일에  엑세스키과 시크릿키를 입력하지 않을 것.

사용자에 최소한의 권한 제공 필요


2

최소 권한을 부여하는  방법은 Assume Role   기능 사용하는 것이다.




<3> 다양한 AWS 웹 애플리케이션 배포 옵션


EC2

Elastic Beanstalk

Lambda

Lightsail

ECS

EKS



<4> 웹 애플리케이션 배포 시 , 고려해야 하는 것들


1

프레임워크, 라이브러리 관련 설정

웹 애플리케이션에 사용된 Node, JS , Django, Ruby 등과 같은 프레임워크 또는 라이브러리를 위한 실행 환경 구성을 서버에 해야 한다.


2

프락시 구성

Nginx , Apache 등을 통해 프락시를 구성해야 한다.


3

애플리케이션 네트워크  구성


4

보안설정-방화벽, 접근권한, 외부 접근 차단 등


5

고가용성 구성- 단일 가용 영역 장애, 조건에 따른 자동 확장 등


6

배포 구성 - 애플리케이션 코드를 준비된 환경의  서버에 배포 (블루 - 그린 , 롤링 배포)



<5>  Elastic Beanstalk은 포괄적인 웹 애플리케이션 관리 서비스이다.


배포에 사용되는 EC2 인스턴스와 같은 리소스의 비용을 제외하고 별도의  Beanstalk을 위한 비용은 없습니다.




<6> 스토리지, 데이터 베이스 연결


1

S3

배포된 웹 애플리케이션이 정적 데이터(이미지, 영상, 기타 파일)를  S3에 업로드/ 다운로드


2

S3에 업로드하고 다운로드하는 경우에 웹 애플리케이션과 연결을 어떻게 해야 하는지 살펴보자.


인터넷을 통해 업로드 다운 로드한다.

NATGW를 거친다.  NATGW의 트래픽 처리 비용이 발생된다.


개선?

VPC EP를 이용해 AWS 내부 네트워크 망을 통해 연결하자.

안전하고 비용 효율적이다.

VPC Endpoint를 사용하자.



<7> 웹 애플리케이션과 데이터 베이스 연결


RDS사용 중

코드상에 데이터베이스 연결 정보 노출로 인한 보안 문제


개선?

AWS Secret Manager는 디비 인증 정보, API 키와 같은 보안 암호를 안전하게 저장할 수 있는 서비스를 사용하자.

디비 인증 정보를 안정적으로 가져올 수 있다.

코드에서 SDK를 이용해 인증 정보를 호출 하자.




<8> 개인 정리


웹 애플리케이션 최종 아키텍처를 참고 하자.

VPC EP를 이용해 AWS 내부 네트워크 망을 통해 연결하자.

AWS Secret Manager는 디비 인증 정보, API 키와 같은 보안 암호를 안전하게 저장할 수 있는 서비스를 사용하자.



https://brunch.co.kr/@topasvga/2617



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari