souvenir

AWS를 통한 웹 배포 세부 사항 본문

2020년/AWS

AWS를 통한 웹 배포 세부 사항

풀빵이 2020. 9. 15. 23:15

EC2 - RDS 연결

기본설정

  1. EC2에 배포할 코드를 git clone을 통해 받아오기
  2. node가 깔려있지 않은 상태이므로 nvm, npm 설치 하기
  3. 배포할 코드의 폴터 내에 npm install 통해 필요한 모듈 설치

데이터 베이스 연결

  1. 모듈에 sequlize 혹은 mysql 등이 있더라도 EC2에는 정작 MySQL은 없기 때문에 따로 설치하기
  2. 코드에 설정되어있는 데이터 베이스 생성
  3. 환경변수를 이용하여 비밀번호 설정

이러면 끝!

 

EC2 - S3

주의 할 점

이번에 우리가 구현하고자 하는 것은 API를 통해 웹을 불러오기만 하는 것이 목적이므로, S3와 EC2를 직접 연결하여 서로 편집 권한을 줄 필요가 없음. 서로 접근권한을 주어야 하는 경우는 이번에 만들고자 하는 웹이 사진이나 파일을 업로드 하는 기능이 있고, 그 내용을 S3에 저장하고자 하는 경우임. 해당 경우는 아래의 문서들을 참고하면 좋음

 

▼EC2랑 S3를 어떻게 연결하지??

더보기

공유 인증 자격 증명 파일에서 Node.js에 인증 자격 증명 로드

공유된 자격 증명 파일이 아직 없는 경우 인증 자격 증명 받기를 참조하십시오. 이 지침을 따르면 자격 증명 파일에 다음과 유사한 텍스트가 표시되어야 합니다. 

https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html

 

Amazon S3 버킷 액세스 권한 관리

node.js를 통해 S3 버켓에 접근하여 데이터를 수정하는 방법

접근 가능한 계정 설정과 특정 함수 등이 필요함

https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/s3-example-access-permissions.html

 

Amazon S3에서 버킷 작업 요청에 권한을 부여하는 방법

이 보안 주체는 소속된 상위 AWS 계정의 권한을 보유해야 합니다.

이 단계에서 Amazon S3은 상위 계정(또한 컨텍스트 권한으로 불림)이 소유한 하위 정책 세트를 평가합니다. 이러한 하위 정책 세트에는 상위 계정이 보안 주체에게 연결한 사용자 정책이 포함됩니다.

또한 상위 계정에서 요청 시 리소스를 소유한 경우(이 경우에는 버킷), Amazon S3은 동시에 해당 리소스 정책(버킷 정책, 버킷 ACL)을 평가합니다. 버킷 작업에 대한 요청이 만들어질 때마다 서버 액세스 로그에 요청자의 정식 ID가 기록됩니다.

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/access-control-auth-workflow-bucket-operation.html

 

Amazon EC2와 함께 Amazon S3 사용

EC2에서 S3를 복사해오는 방법

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/AmazonS3.html

 

Amazon EC2에 대한 IAM 정책

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html

 

단순히 웹 호스트를 목적으로 한다면 클라언트 측의 fetch URL을 EC2 ip로 변경하면 끝!

변경후에는 당연히 다시 빌드하여 그 파일을 S3에 업로드해야한다. 그외는 기존에 파일을 실행했던 것처럼 EC2측에서 서버를 실행시켜주면 연결이 된다.

 

그 외 AWS에 대해 알게 된 것

1. AWS의 계정은 1계정 1개발자의 것이 아닌 것 같다.

     IAM 정책을 살펴 보면 '더 상위 계정의 접근' 혹은 계정 사용자 추가, 역할 부여 등등이 있는 것을 보면 실무에서 AWS 계정(root계정)은 회사 전체를 의미하고, 그 안에 다양한 그룹을 만들어 해당 그룹마다 보안그룹이 다르고 사용자를 따로 만들어 사용자별로 접근할 수 있도록 구성된 것 같다. 이는 root 계정이 해킹되게 되면 보안 및 과금 등 다양한 이슈가 나타나게 되는데 이를 방지하기 위해서도 필요한 작업같다.

 

2. https 사용

    AWS에서는 사용할 수 있는 도메인이 있으면 Rout 53을 통해 도메인을 연결하고, Certificate Manager을 통해 인증서를 받아 https 페이지도 만들 수 있다. 단, 도메인이 필요하기 때문에 과금이 될 수 있다.

'2020년 > AWS' 카테고리의 다른 글

웹 배포를 위한 최소한의 AWS  (0) 2020.09.15
Comments