실습
Last updated
Last updated
S3 버킷을 생성하세요. 버킷 이름은 Route53 호스트존에 등록된 도메인의 서브도메인으로 생성하세요. (e.g. 등록된 도메인이 example.com 이라면 버킷이름은 s3.example.com이나 abc.example.com으로 지정합니다.
S3 버킷 정책을 통해서 퍼블릭 읽기 권한을 설정하세요.
S3 버킷에 정적 웹호스팅 설정을 하고 Route53에 Alias 레코드를 생성하세요.
Route53에 생성한 레코드를 통해서 S3 정적 웹 사이트에 접속이 되는지 확인하세요.
CDK를 통해서 실습 환경을 구축하세요.
Outputs에서 인스턴스의 ID 및 해당 인스턴스에 설치된 웹서버와 연동된 도메인 주소를 확인할 수 있습니다.
AWS Systems Manager Session Manager를 통해서 EC2 인스턴스에 접속하세요.
아래와 같은 명령어로 백엔드 서버를 구동하세요.
Outputs에서 나온 사이트 주소로 접속해서 버킷이름을 확인합니다.
AWS SDK for Python(Boto3)를 이용해서 백엔드 서버 코드의 upload 함수가 미리 서명된 URL 정보를 프로트엔드로 전달하도록 코드를 완성하세요.
프론트엔드 UI를 통해서 로컬 디스크에 있는 파일을 S3 버킷으로 업로드하세요. 코드 완성 후에도 업로드가 실패할 경우에는 S3 설정을 확인해서 수정하세요.
CDK를 통해서 실습 환경을 삭제하세요.
CDK를 통해서 실습 환경을 구축하세요.
Outputs에서 인스턴스 ID 및 S3 버킷 이름을 확인할 수 있습니다.
EC2 인스턴스에서 인터넷 접속이 되지 않습니다. EC2 인스턴스에서 S3 버킷으로 접속이 가능하도록 Gateway VPC Endpoint를 생성하세요.
S3 버킷 정책을 통해서 2번에서 만든 VPC Endpoint을 통해서만 PutObject API를 호출할수 있도록 설정하세요.
AWS Systems Manager Session Manager를 통해서 EC2 인스턴스에 접속하세요.
/home/ec2-user/gateway.txt 파일을 AWS CLI를 이용해서 S3 버킷에 업로드 하세요.
(Optional) 위에서 생성한 Gateway VPC Endpoint를 삭제 하고 Interface VPC Endpoint를 생성하세요. S3 버킷 정책도 알맞게 수정하고 /home/ec2-user/interface.txt 파일을 AWS CLI를 이용해서 S3 버킷에 업로드 하세요.
추가로 생성한 VPC Endpoint를 삭제하고 CDK를 통해서 실습 환경을 삭제하세요.
CDK를 통해서 실습 환경을 구축하세요.
Outputs에서 VPC ID, 인스턴스 ID 및 ALB와 연동된 도메인 주소을 확인할 수 있습니다.
인스턴스가 생성된 VPC에 EFS를 생성하세요.
AWS Systems Manager Session Manager를 통해서 A 인스턴스에 접속하고 /var/www/html/efs 디렉토리를 생성하고 위에서 생성한 EFS를 마운트 하세요.
아래 명령어를 통해서 HTML 파일을 생성하세요.
Outputs에서 나온 도메인 주주소 + /efs 로 접속해서 페이지가 정상적으로 보이는지 확인하세요. (e.g. efs-lba3591-15khwbg00u0dn-208501432.ap-northeast-1.elb.amazonaws.com/efs). 페이지를 Refresh 하면 한번은 페이지가 정성적으로 보이고 한번은 Not Found 에러가 뜨는걸 확인할수 있습니다.
AWS Systems Manager Session Manager를 통해서 B 인스턴스에 접속하고 /var/www/html/efs 디렉토리를 생성하고 앞에서 생성한 EFS를 마운트 하세요.
페이지를 다시 불러와도 페이지가 정상적으로 보이는지 확인하세요.
수동으로 생성한 EFS를 삭제하고 CDK를 통해서 실습 환경을 삭제하세요.
해당 문서를 참고해서 워드프레스 사이트를 구성하세요.
생성된 워드프레스 사이트를 원으로 하는 CloudFront Web Distribution을 아래와 같은 구성으로 생성하세요.
wp-content 와 wp-includes 경로만 캐시
Route53에 Alias 레코드를 생성해서 CloudFront에 연결
ACM을 통해서 SSL 인증서를 발급받고 CloudFront에 연동
HTTP -> HTTPS 리다이렉션 설정
구성이 완료된 사이트에 접속해서 wp-content와 wp-includes 경로에 있는 파일들이 CloudFront에서 전송되는다는 것을 증명하세요.