라벨이 AWS인 게시물 표시

AWS S3에 CI/CD(GitAction) 적용하기

이미지
 AWS의 S3에 정적 웹사이트(React)를 Build해서 올리는 방법입니다. 해당 블로그 글을 작성시 아래 글들을 참고하였습니다. https://s0ojin.tistory.com/48 참고링크 :  AWS S3에 CloudFront를 이용해서 HTTPS(SSL) 적용하기 GitAction을 이용해서 업로드 합니다. 해당 블로그 글에는 React를 이용해서 CI/CD작업을 작성하겠습니다. 1. yaml파일 작성 루트 경로에서 .github/workflows 폴더 안에 하나의 yaml(front-build.yaml)파일 하나를 생성한다. name : Front Deployment # trigger가 되길 바라는 action을 입력합니다. push / pull_request가 있습니다. # GitHub에서 직접 실행할려면 workflow_dispatch를 사용한다. # 저는 develop 브랜치에 push가 되면 actions을 실행하도록 설정했습니다. # S3에 배포하기 위해서 아래와 같은 Secreat이 설정되어야 합니다. # secrets.AWS_S3_ACCESS_KEY_ID : IAM AWS Access Key # secrets.AWS_S3_SECRET_ACCESS_KEY_ID : IAM AWS Secret ACCESS Key # secrets.AWS_S3_BUCKET_NAME : S3 Bucket Name on : workflow_dispatch # 위의 이벤트가 트리거되면 실행할 목록입니다. jobs : build : name : react build & deploy # runner가 실행될 환경을 지정합니다. runs-on : ubuntu-latest # name은 단계별로 실행되는 액션들의 설명을 담은 것으로, 나중에 github action에서 workflow에 표시됩니다. # uses 키워드로 Action을 불러올 수 있습니다. steps : # 레포지토리에 접근하...

AWS EC2에 Load Balancer를 이용해서 HTTPS(SSL) 적용하기

이미지
1. EC2 생성 및 HTTP적용 참고링크1 : AWS EC2 셋팅1 참고링크2 : AWS EC2 셋팅2 EC2에 아파치 2를 설치 $ sudo apt update && sudo apt upgrade -y && sudo apt install apache2 -y 퍼블릭 IPv4주소로 연결을 시도했지만 접속이 되지 않는다. 보안그룹 80포트를 열어야 한다. 참고 보안그룹 설정 링크 : AWS EC2 셋팅3 EC2 인스턴스 보안그룹 설정 2. 인증서 요청 HTTPS을 적용하기 위해서는 인증서가 필요하다. Certificate Manager에서 인증서를 요청한다. 도메인 이름은 실제 사용할 URL을 작성한다. 예로 들어 "example.test.com"이 실제 입력해야할 URL이면 도메인 이름으로 입력한다. 해당 인증서에 대해서 "요청"한다. 해당 도메인이 "Route 53"에서 구매한 것이면 자동으로 "Route 53에서 레코드 생성"을 사용할수 있다. 3. 대상그룹 설정 4. 로드 밸런서(Load Balancer) 셋팅 이제 대상그룹을 로드 벨런서와 연결을 한다. 보안그룹 443포트(SSL포트)를 열어야 한다. 5. Route 53 셋팅 이제 "https://example.test.com"으로 접속이 가능해 집니다. 참고글 AWS S3에 CloudFront를 이용해서 HTTPS(SSL) 적용하기

AWS S3에 CloudFront를 이용해서 HTTPS(SSL) 적용하기

이미지
 AWS의 S3와 CloudFront, Certificate Manager를 이용해서 SSL을 적용한 웹페이지를 작성 1. S3버킷을 생성 먼저 S3에 올릴 빌드파일을 만듭니다. 저는 이미 React로 Build파일을 만들었기 때문에 해당 폴더를 올리도록 하겠습니다. 참고링크1 : AWS S3 셋팅1 S3사용하기 버킷생성 참고링크2 : AWS S3 셋팅2 S3 bucket에 build 폴더 올리기 먼저 S3의 버킷을 만들도록 하겠습니다. 정적 웹사이트 호스팅시 React, Next error인덱스도 동일한 index.html등록 2. 인증서 요청 HTTPS을 적용하기 위해서는 인증서가 필요하다. Certificate Manager에서 인증서를 요청한다. 도메인 이름은 실제 사용할 URL을 작성한다. 예로 들어 "example.test.com"이 실제 입력해야할 URL이면 도메인 이름으로 입력한다. 해당 인증서에 대해서 "요청"한다. 해당 도메인이 "Route 53"에서 구매한 것이면 자동으로 "Route 53에서 레코드 생성"을 사용할수 있다. 3. CloudFront 배포 이제 CloudFront 작업을 하자. 현재 S3를 사용하고 있는데 S3의 엔드 포인트를 사용한다. Origin path은 처음 실행할 파일(예로 index.html)이 루트가 아닌 다른경로에 있을때 작성 HTTP로 접속 시도시 HTTPS로 리다이렉트 한다. 2번에서 만든 인증서 적용 배포 생성후 완전히 완료되기까지는 약 15분 이상 걸렸다.  CloudFront에 도메인을 연결해야한다. 위 사진에서 대체 도메인은 실제 유저가 접속할 도메인을 입력한다. 예로 들어서 'example.test.com'의 SSL인증서가 있고 해당 링크로 Route53에서 별칭이 노출되게 하고 싶다면 대체 도메인(Alternative domain name(CNAMEs))을 추가한다. SSL인증...