
가장 많이 사용되는 AWS 클라우드에 대해 실습 중심으로 학습 (4)
intellij를 이용한 프로젝트 생성한다.
깃허브에 새 리포지토리를 만든 후 터미널에서
git commit -m 'first setting'
git -u origin master으로 업로드 한다.
콘솔에 VPC를 검색해 VPC를 생성한다.
VPC 등을 선택해 서브넷도 한번에 설정한다.
구성도의 AZ가 2개, Public 2개, Private 2개, NAT Gateway가 한 곳에서 나가므로 맞춰서 구성을 해준다.

콘솔에 Elastic Beanstalk을 검색해 생성한다.
웹 서버 환경을 통해 만들 것이기에 웹 서버 환경을 선택한다.

아래 필요한 설정들을 모두 작성한 후 추가 옵션 구성에서 네트워크 수정 누른다.


만들어 놓은 VPC 네트워크를 선택하고 Private subnet영역에서 사용할 수 있도록 구성할 계획이므로 서브넷과 데이터베이스에서 private 영역에 있는 것들을 선택한다.
EC2를 통해 이 서버로 접속할 수 있는 baston host을 만든다.
네트워크 망은 public으로 해야한다.

해당 서버에서 Private subnet에 접속할 수 없다. 접속을 위해서는 Public subnet에 있는 baston host 서버를 통해 접속 할 수 있다.
터미널에서 scp -i [복사에 사용할 공개키] [scp로 복사할 파일:여기선 pem 파일] [ec2사용자@ip:서버에 복사할 위치] 또는 직접 복사해
baston host 서버에 접속해서 만들어진 키페어를 똑같이 넣어준다.

EC2 키페어가 지정이 되어 있지 않으므로 설정해준다.
Private subnet 안에 DB가 구성될 수 있도록 한다.
먼저 서브넷 그룹을 만든다. 서브넷 그룹은 VPC 내의 어떤 서브넷에 DB를 설치할 것인지 설정한다.
RDS 대시보드에서 서브넷을 선택해 생성한다.
만들어 놓은 VPC과 가용 영역, 그리고 Private subnet을 선택한다.

이제 데이터베이스를 생성한다. MySQL로 진행한다.


위에서 만들어놓은 VPC와 서브넷 그룹을 선택한다.
만들어진 DB의 엔드포인트로 Workbench등을 통해 데이터베이스에 접속할 수 있도록 만들자. MySQL을 통해 진행했으므로 보안그룹의 인바운드 규칙에서 33066 포트도 확인한다.
Public subnet 영역에 DB가 있었다면 이대로 접속이 됐겠지만 Private subnet에 있으므로 터널링을 만들어 줘야 한다.


콘솔접속 단계에서 생성된 ip를 host에 넣고 User name을 입력한다.
Uathentication type을 key pair로 바꿔주고 설정됐던 key pair 파일을 선택한다.
S3에 정적 웹호스팅 기능을 이용해 프론트개발 시 관련된 소스를 업로드 해 서비스 할 수 있도록 한다.
먼저 Node.js를 설치한다.
https://nodejs.org/en/ 접속하여 LTS 버전 설치 (current도 상관없으나 LTS 권고)
Node.js 가 설치된 상태에서 아래 명령어로 npx 를 설치한다.
npm install npx -g
S3에 버킷을 만든다.

호스팅 시 버킷 이름과 도메인을 같게 해야한다.
해당 버킷 속성에서 정적 웹호스팅을 활성화 한다.

터미널에서 아래 명령어를 통해 React 프로젝트를 하나 생성한다.
npx create-react-app [app name]
이렇게 만든 앱 폴더로 들어가 터미널로 npm start 명령어를 통해 React 페이지를 생성한다.
url에 localhost:3000을 입력해 방금 만든 프로젝트를 볼 수 있다.
이를 S3에 올려서 작동하도록 만든다.
터미널에서 npm run build 명령어로 build 폴더를 생성하고 S3에 올린다.


위의 페이지에서 build 폴더 안에 있는 파일들을 모두 업로드 한다.

해당 페이지에서 모든 퍼블릭 액세스 차단을 해제한다.
이제 정책을 생성한다.

해당 페이지에서 정책 생성기로 정책을 생성한 후 만들어진 json 파일을 복사해 붙여넣기 한다.
먼저 파이프라인을 생성한다.

깃허브에 연동 혹은 만들어놓은 Code Commit으로 소스를 추가한다.

마찬가지로 이미 만들어놓은 Code Build를 추가하거나 새로 만들어 추가한다.

배포 시에 Public 영역에 있다면 손쉽게 가능하지만 Private 영역 안에 있으므로 Code Deploy를 별도로 생성해 ELB에 묶어서 배포한다.


파이프라인에서 편집을 통해 기존의 것을 편집할 수 있다.

(참고) Code Deploy이용시 appspec.yml을 SpringBoot 안에 넣어줘야 한다. (배포되는 위치를 읽어낼 수 있는 파일)
Route53에서 도메인을 구매해 사용한다.
설치 가이드 문서
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html
설정
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-quickstart.htm