CloudFormation을 사용하여 S3 및 CloudFront 구성에서 Sorry 페이지를 표시하는 환경 구축
15338 단어 CloudFormationCloudFrontS3AWS
소개
이 기사에서는 AWS CloudFormation 관리 콘솔을 사용하여 S3 및 CloudFront에서 Sorry 페이지를 표시하는 환경을 구축하는 단계를 설명합니다. (초보자용)
본 기사에서 게재하고 있는 템플릿의 최신판은 아래에 두고 있습니다.
htps : // 기주 b. 코 m / 오쿠보 t / 아 ws-c ぉ d d ぉ r 마치 온
구성도
전제 조건
CloudFront에 설정하는 SSL 서버 인증서를 리전이 버지니아 북부의 AWS Certificate Manager(ACM)로 가져왔습니다.
ACM 관리 콘솔에서 CloudFront에 설정할 인증서의 식별자를 기록해 둡니다.
구축 절차
1 AWS CloudFormation 관리 콘솔에서 스택 생성을 클릭합니다.
2 후술하는 템플릿을 선택합니다.
3 각 파라미터를 입력합니다.
매개변수 이름
용도
비고
스택 이름
템플릿에서 만들 리소스 집합의 이름
예 prd-stack-vpc-20180801
BucketName
Sorry 페이지를 배치할 버킷 이름
필수
CName01
CloudFront로 설정 CNAME
선택
CName02
CloudFront에 설정할 CNAME(둘 이상인 경우)
선택
CFSSLCertificateId
전제 조건에서 기록한 인증서의 식별자
필수
4 후속 작업은 기본값으로 다음으로 생성됩니다.
5 상황이 CREATE COMPLETE가 되면 S3와 CloudFront의 구축이 완료됩니다.
6 관리 콘솔 하단의 출력에서 구축한 S3 버킷과 CloudFront 정보를 확인할 수 있습니다.
"여기서, 키가 DomainName의 값을 메모해 둡니다.
7 S3의 관리 콘솔에서 매개변수로 설정한 버킷에 Sorry 페이지의 내용이 포함된 index.html 파일을 업로드합니다.
8 브라우저에서, 방금 메모한 DomainName의 값에 Web 액세스 해,
Sorry 페이지의 내용이 표시되면 OK입니다. (되지 않으면 5 분 정도 기다렸다가 확인해보십시오.)
템플릿
s3-cloudfront-sorry.ymlAWSTemplateFormatVersion: "2010-09-09"
Description:
S3 and CloudFront for Sorry Page Create
Metadata:
"AWS::CloudFormation::Interface":
ParameterGroups:
- Label:
default: "S3 and CloudFront Configuration"
Parameters:
- BucketName
- CName01
- CName02
- CFSSLCertificateId
ParameterLabels:
BucketName:
default: "BucketName"
CName01:
default: "CName01"
CName02:
default: "CName02"
CFSSLCertificateId:
default: "CFSSLCertificateId"
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
BucketName:
Type: String
CName01:
Type: String
Default: ""
CName02:
Type: String
Default: ""
CFSSLCertificateId:
Type: String
Conditions:
IsCName01: !Not [!Equals [!Ref CName01, ""]]
IsCName02: !Not [!Equals [!Ref CName02, ""]]
Resources:
# ------------------------------------------------------------#
# S3 Bucket
# ------------------------------------------------------------#
# Bucket
Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName
CloudFrontOriginAccessIdentity:
Type: "AWS::CloudFront::CloudFrontOriginAccessIdentity"
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: !Sub "access-identity-${Bucket}"
BucketPolicy:
Type: "AWS::S3::BucketPolicy"
Properties:
Bucket: !Ref Bucket
PolicyDocument:
Statement:
- Action: "s3:GetObject"
Effect: Allow
Resource: !Sub "arn:aws:s3:::${Bucket}/*"
Principal:
CanonicalUser: !GetAtt CloudFrontOriginAccessIdentity.S3CanonicalUserId
# ------------------------------------------------------------#
# CloudFront
# ------------------------------------------------------------#
CloudFrontDistribution:
Type: "AWS::CloudFront::Distribution"
Properties:
DistributionConfig:
PriceClass: PriceClass_All
Aliases:
- !If [IsCName01, !Ref CName01, !Ref "AWS::NoValue"]
- !If [IsCName02, !Ref CName02, !Ref "AWS::NoValue"]
Origins:
- DomainName: !GetAtt Bucket.DomainName
Id: !Sub "S3origin-${BucketName}"
S3OriginConfig:
OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}"
DefaultCacheBehavior:
TargetOriginId: !Sub "S3origin-${BucketName}"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods:
- GET
- HEAD
CachedMethods:
- GET
- HEAD
DefaultTTL: 3600
MaxTTL: 86400
MinTTL: 60
Compress: true
ForwardedValues:
Cookies:
Forward: none
QueryString: false
ViewerCertificate:
SslSupportMethod: sni-only
MinimumProtocolVersion: TLSv1.1_2016
AcmCertificateArn: !Sub "arn:aws:acm:us-east-1:${AWS::AccountId}:certificate/${CFSSLCertificateId}"
HttpVersion: http2
Enabled: true
CustomErrorResponses:
- ErrorCode: 403
ErrorCachingMinTTL: 30
ResponsePagePath: /index.html
ResponseCode: 503
# ------------------------------------------------------------#
# Output Parameters
# ------------------------------------------------------------#
Outputs:
#BucketName
BucketName:
Value: !Ref Bucket
#DistributionID
DistributionID:
Value: !Ref CloudFrontDistribution
#DmainName
DomainName:
Value: !GetAtt CloudFrontDistribution.DomainName
Reference
이 문제에 관하여(CloudFormation을 사용하여 S3 및 CloudFront 구성에서 Sorry 페이지를 표시하는 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okubot55/items/4e6e9bec04bfe945cf79
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
전제 조건
CloudFront에 설정하는 SSL 서버 인증서를 리전이 버지니아 북부의 AWS Certificate Manager(ACM)로 가져왔습니다.
ACM 관리 콘솔에서 CloudFront에 설정할 인증서의 식별자를 기록해 둡니다.
구축 절차
1 AWS CloudFormation 관리 콘솔에서 스택 생성을 클릭합니다.
2 후술하는 템플릿을 선택합니다.
3 각 파라미터를 입력합니다.
매개변수 이름
용도
비고
스택 이름
템플릿에서 만들 리소스 집합의 이름
예 prd-stack-vpc-20180801
BucketName
Sorry 페이지를 배치할 버킷 이름
필수
CName01
CloudFront로 설정 CNAME
선택
CName02
CloudFront에 설정할 CNAME(둘 이상인 경우)
선택
CFSSLCertificateId
전제 조건에서 기록한 인증서의 식별자
필수
4 후속 작업은 기본값으로 다음으로 생성됩니다.
5 상황이 CREATE COMPLETE가 되면 S3와 CloudFront의 구축이 완료됩니다.
6 관리 콘솔 하단의 출력에서 구축한 S3 버킷과 CloudFront 정보를 확인할 수 있습니다.
"여기서, 키가 DomainName의 값을 메모해 둡니다.
7 S3의 관리 콘솔에서 매개변수로 설정한 버킷에 Sorry 페이지의 내용이 포함된 index.html 파일을 업로드합니다.
8 브라우저에서, 방금 메모한 DomainName의 값에 Web 액세스 해,
Sorry 페이지의 내용이 표시되면 OK입니다. (되지 않으면 5 분 정도 기다렸다가 확인해보십시오.)
템플릿
s3-cloudfront-sorry.ymlAWSTemplateFormatVersion: "2010-09-09"
Description:
S3 and CloudFront for Sorry Page Create
Metadata:
"AWS::CloudFormation::Interface":
ParameterGroups:
- Label:
default: "S3 and CloudFront Configuration"
Parameters:
- BucketName
- CName01
- CName02
- CFSSLCertificateId
ParameterLabels:
BucketName:
default: "BucketName"
CName01:
default: "CName01"
CName02:
default: "CName02"
CFSSLCertificateId:
default: "CFSSLCertificateId"
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
BucketName:
Type: String
CName01:
Type: String
Default: ""
CName02:
Type: String
Default: ""
CFSSLCertificateId:
Type: String
Conditions:
IsCName01: !Not [!Equals [!Ref CName01, ""]]
IsCName02: !Not [!Equals [!Ref CName02, ""]]
Resources:
# ------------------------------------------------------------#
# S3 Bucket
# ------------------------------------------------------------#
# Bucket
Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName
CloudFrontOriginAccessIdentity:
Type: "AWS::CloudFront::CloudFrontOriginAccessIdentity"
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: !Sub "access-identity-${Bucket}"
BucketPolicy:
Type: "AWS::S3::BucketPolicy"
Properties:
Bucket: !Ref Bucket
PolicyDocument:
Statement:
- Action: "s3:GetObject"
Effect: Allow
Resource: !Sub "arn:aws:s3:::${Bucket}/*"
Principal:
CanonicalUser: !GetAtt CloudFrontOriginAccessIdentity.S3CanonicalUserId
# ------------------------------------------------------------#
# CloudFront
# ------------------------------------------------------------#
CloudFrontDistribution:
Type: "AWS::CloudFront::Distribution"
Properties:
DistributionConfig:
PriceClass: PriceClass_All
Aliases:
- !If [IsCName01, !Ref CName01, !Ref "AWS::NoValue"]
- !If [IsCName02, !Ref CName02, !Ref "AWS::NoValue"]
Origins:
- DomainName: !GetAtt Bucket.DomainName
Id: !Sub "S3origin-${BucketName}"
S3OriginConfig:
OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}"
DefaultCacheBehavior:
TargetOriginId: !Sub "S3origin-${BucketName}"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods:
- GET
- HEAD
CachedMethods:
- GET
- HEAD
DefaultTTL: 3600
MaxTTL: 86400
MinTTL: 60
Compress: true
ForwardedValues:
Cookies:
Forward: none
QueryString: false
ViewerCertificate:
SslSupportMethod: sni-only
MinimumProtocolVersion: TLSv1.1_2016
AcmCertificateArn: !Sub "arn:aws:acm:us-east-1:${AWS::AccountId}:certificate/${CFSSLCertificateId}"
HttpVersion: http2
Enabled: true
CustomErrorResponses:
- ErrorCode: 403
ErrorCachingMinTTL: 30
ResponsePagePath: /index.html
ResponseCode: 503
# ------------------------------------------------------------#
# Output Parameters
# ------------------------------------------------------------#
Outputs:
#BucketName
BucketName:
Value: !Ref Bucket
#DistributionID
DistributionID:
Value: !Ref CloudFrontDistribution
#DmainName
DomainName:
Value: !GetAtt CloudFrontDistribution.DomainName
Reference
이 문제에 관하여(CloudFormation을 사용하여 S3 및 CloudFront 구성에서 Sorry 페이지를 표시하는 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okubot55/items/4e6e9bec04bfe945cf79
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1 AWS CloudFormation 관리 콘솔에서 스택 생성을 클릭합니다.
2 후술하는 템플릿을 선택합니다.
3 각 파라미터를 입력합니다.
매개변수 이름
용도
비고
스택 이름
템플릿에서 만들 리소스 집합의 이름
예 prd-stack-vpc-20180801
BucketName
Sorry 페이지를 배치할 버킷 이름
필수
CName01
CloudFront로 설정 CNAME
선택
CName02
CloudFront에 설정할 CNAME(둘 이상인 경우)
선택
CFSSLCertificateId
전제 조건에서 기록한 인증서의 식별자
필수
4 후속 작업은 기본값으로 다음으로 생성됩니다.
5 상황이 CREATE COMPLETE가 되면 S3와 CloudFront의 구축이 완료됩니다.
6 관리 콘솔 하단의 출력에서 구축한 S3 버킷과 CloudFront 정보를 확인할 수 있습니다.
"여기서, 키가 DomainName의 값을 메모해 둡니다.
7 S3의 관리 콘솔에서 매개변수로 설정한 버킷에 Sorry 페이지의 내용이 포함된 index.html 파일을 업로드합니다.
8 브라우저에서, 방금 메모한 DomainName의 값에 Web 액세스 해,
Sorry 페이지의 내용이 표시되면 OK입니다. (되지 않으면 5 분 정도 기다렸다가 확인해보십시오.)
템플릿
s3-cloudfront-sorry.ymlAWSTemplateFormatVersion: "2010-09-09"
Description:
S3 and CloudFront for Sorry Page Create
Metadata:
"AWS::CloudFormation::Interface":
ParameterGroups:
- Label:
default: "S3 and CloudFront Configuration"
Parameters:
- BucketName
- CName01
- CName02
- CFSSLCertificateId
ParameterLabels:
BucketName:
default: "BucketName"
CName01:
default: "CName01"
CName02:
default: "CName02"
CFSSLCertificateId:
default: "CFSSLCertificateId"
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
BucketName:
Type: String
CName01:
Type: String
Default: ""
CName02:
Type: String
Default: ""
CFSSLCertificateId:
Type: String
Conditions:
IsCName01: !Not [!Equals [!Ref CName01, ""]]
IsCName02: !Not [!Equals [!Ref CName02, ""]]
Resources:
# ------------------------------------------------------------#
# S3 Bucket
# ------------------------------------------------------------#
# Bucket
Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName
CloudFrontOriginAccessIdentity:
Type: "AWS::CloudFront::CloudFrontOriginAccessIdentity"
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: !Sub "access-identity-${Bucket}"
BucketPolicy:
Type: "AWS::S3::BucketPolicy"
Properties:
Bucket: !Ref Bucket
PolicyDocument:
Statement:
- Action: "s3:GetObject"
Effect: Allow
Resource: !Sub "arn:aws:s3:::${Bucket}/*"
Principal:
CanonicalUser: !GetAtt CloudFrontOriginAccessIdentity.S3CanonicalUserId
# ------------------------------------------------------------#
# CloudFront
# ------------------------------------------------------------#
CloudFrontDistribution:
Type: "AWS::CloudFront::Distribution"
Properties:
DistributionConfig:
PriceClass: PriceClass_All
Aliases:
- !If [IsCName01, !Ref CName01, !Ref "AWS::NoValue"]
- !If [IsCName02, !Ref CName02, !Ref "AWS::NoValue"]
Origins:
- DomainName: !GetAtt Bucket.DomainName
Id: !Sub "S3origin-${BucketName}"
S3OriginConfig:
OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}"
DefaultCacheBehavior:
TargetOriginId: !Sub "S3origin-${BucketName}"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods:
- GET
- HEAD
CachedMethods:
- GET
- HEAD
DefaultTTL: 3600
MaxTTL: 86400
MinTTL: 60
Compress: true
ForwardedValues:
Cookies:
Forward: none
QueryString: false
ViewerCertificate:
SslSupportMethod: sni-only
MinimumProtocolVersion: TLSv1.1_2016
AcmCertificateArn: !Sub "arn:aws:acm:us-east-1:${AWS::AccountId}:certificate/${CFSSLCertificateId}"
HttpVersion: http2
Enabled: true
CustomErrorResponses:
- ErrorCode: 403
ErrorCachingMinTTL: 30
ResponsePagePath: /index.html
ResponseCode: 503
# ------------------------------------------------------------#
# Output Parameters
# ------------------------------------------------------------#
Outputs:
#BucketName
BucketName:
Value: !Ref Bucket
#DistributionID
DistributionID:
Value: !Ref CloudFrontDistribution
#DmainName
DomainName:
Value: !GetAtt CloudFrontDistribution.DomainName
Reference
이 문제에 관하여(CloudFormation을 사용하여 S3 및 CloudFront 구성에서 Sorry 페이지를 표시하는 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okubot55/items/4e6e9bec04bfe945cf79
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
AWSTemplateFormatVersion: "2010-09-09"
Description:
S3 and CloudFront for Sorry Page Create
Metadata:
"AWS::CloudFormation::Interface":
ParameterGroups:
- Label:
default: "S3 and CloudFront Configuration"
Parameters:
- BucketName
- CName01
- CName02
- CFSSLCertificateId
ParameterLabels:
BucketName:
default: "BucketName"
CName01:
default: "CName01"
CName02:
default: "CName02"
CFSSLCertificateId:
default: "CFSSLCertificateId"
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
BucketName:
Type: String
CName01:
Type: String
Default: ""
CName02:
Type: String
Default: ""
CFSSLCertificateId:
Type: String
Conditions:
IsCName01: !Not [!Equals [!Ref CName01, ""]]
IsCName02: !Not [!Equals [!Ref CName02, ""]]
Resources:
# ------------------------------------------------------------#
# S3 Bucket
# ------------------------------------------------------------#
# Bucket
Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName
CloudFrontOriginAccessIdentity:
Type: "AWS::CloudFront::CloudFrontOriginAccessIdentity"
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: !Sub "access-identity-${Bucket}"
BucketPolicy:
Type: "AWS::S3::BucketPolicy"
Properties:
Bucket: !Ref Bucket
PolicyDocument:
Statement:
- Action: "s3:GetObject"
Effect: Allow
Resource: !Sub "arn:aws:s3:::${Bucket}/*"
Principal:
CanonicalUser: !GetAtt CloudFrontOriginAccessIdentity.S3CanonicalUserId
# ------------------------------------------------------------#
# CloudFront
# ------------------------------------------------------------#
CloudFrontDistribution:
Type: "AWS::CloudFront::Distribution"
Properties:
DistributionConfig:
PriceClass: PriceClass_All
Aliases:
- !If [IsCName01, !Ref CName01, !Ref "AWS::NoValue"]
- !If [IsCName02, !Ref CName02, !Ref "AWS::NoValue"]
Origins:
- DomainName: !GetAtt Bucket.DomainName
Id: !Sub "S3origin-${BucketName}"
S3OriginConfig:
OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}"
DefaultCacheBehavior:
TargetOriginId: !Sub "S3origin-${BucketName}"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods:
- GET
- HEAD
CachedMethods:
- GET
- HEAD
DefaultTTL: 3600
MaxTTL: 86400
MinTTL: 60
Compress: true
ForwardedValues:
Cookies:
Forward: none
QueryString: false
ViewerCertificate:
SslSupportMethod: sni-only
MinimumProtocolVersion: TLSv1.1_2016
AcmCertificateArn: !Sub "arn:aws:acm:us-east-1:${AWS::AccountId}:certificate/${CFSSLCertificateId}"
HttpVersion: http2
Enabled: true
CustomErrorResponses:
- ErrorCode: 403
ErrorCachingMinTTL: 30
ResponsePagePath: /index.html
ResponseCode: 503
# ------------------------------------------------------------#
# Output Parameters
# ------------------------------------------------------------#
Outputs:
#BucketName
BucketName:
Value: !Ref Bucket
#DistributionID
DistributionID:
Value: !Ref CloudFrontDistribution
#DmainName
DomainName:
Value: !GetAtt CloudFrontDistribution.DomainName
Reference
이 문제에 관하여(CloudFormation을 사용하여 S3 및 CloudFront 구성에서 Sorry 페이지를 표시하는 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okubot55/items/4e6e9bec04bfe945cf79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)