Quiz
- S3 ๋ฒํท์ ์ ๋ฃ ์ฝํ
์ธ ๊ฐ ์ ์ฅ๋์ด ์์ต๋๋ค. ์ด ์ฝํ
์ธ ๋ฅผ ์ ์ญ์ ์ผ๋ก ๋ถ๋ฐฐํ๊ธฐ ์ํด CloudFront ๋ฐฐํฌ๋ฅผ ์ค์ ํ๊ณ S3 ๋ฒํท์ด CloudFront ๋ฐฐํฌ์์๋ง ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋๋ก ๊ตฌ์ฑํ์ต๋๋ค. ๋ค์ CloudFront ๊ธฐ๋ฅ ์ค ์ ๋ฃ ์ฝํ
์ธ ๋ฅผ ์์ ํ๊ฒ ๋ถ๋ฐฐํ๊ธฐ ์ํด์๋ ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊น์?
- ์๋ณธ ์ก์ธ์ค ID
- S3 ๋ฏธ๋ฆฌ ์๋ช ๋ URL
- CloudFront ์๋ช ๋ URL
- CloudFront ๋ฌดํจํ
CloudFront ์๋ช ๋ URL์ ์ผ๋ฐ์ ์ผ๋ก ๋์ ์ผ๋ก ์์ฑ๋ URL์ ํตํด ์ ๋ฃ ์ฝํ ์ธ ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- Application Load Balancer๊ฐ ๊ด๋ฆฌํ๋ EC2 ์ธ์คํด์ค ํ๋ฆฟ์ ํธ์คํ
๋ ์น์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๋ CloudFront ๋ฐฐํฌ๊ฐ ์์ต๋๋ค. ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ฏธ๊ตญ์ ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ , ํ ๊ตญ๊ฐ๋ก๋ถํฐ ์ผ๋ถ ์
์ฑ ์์ฒญ์ด ๋ค์ด์ค๊ณ ์๋ค๋ ์ ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ค์ง ๋ฏธ๊ตญ์ผ๋ก๋ถํฐ์ ์ฌ์ฉ์๋ค๋ง์ ํ๊ฐํ๊ณ , ๋ค๋ฅธ ๊ตญ๊ฐ๋ ์ฐจ๋จํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
- CloudFront ์ง๋ฆฌ์ ์ ํ ์ฌ์ฉํ๊ธฐ
- ์๋ณธ ์ก์ธ์ค ID ์ฌ์ฉํ๊ธฐ
- ๋ณด์ ๊ทธ๋ฃน์ ์ค์ ํ ๋ค ์ด๋ฅผ CloudFront ๋ฐฐํฌ์ ์ฐ๊ฒฐํ๊ธฐ
- Route53 ์ง์ฐ ์๊ฐ์ ์ด์ฉํด ์ด๋ฅผ CloudFront ๋ถ๋ฐฐ๋ก ์ฐ๊ฒฐํ๊ธฐ
- S3 ๋ฒํท ์์ ํธ์คํ
๋ ์ ์ ์น์ฌ์ดํธ๊ฐ ์์ต๋๋ค. ์์ฒญ์ ๋ ์ ์ฒ๋ฆฌํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด S3 ๋ฒํท์ ๊ฐ๋ฆฌํค๋ CloudFront ๋ฐฐํฌ๋ฅผ ์์ฑํ์ต๋๋ค. ์ผ๋ง ํ, ์ฌ๋ฌ๋ถ์ ์์ง๋ ์ฌ์ฉ์๋ค์ด S3 ๋ฒํท์์ ์น์ฌ์ดํธ๋ก ์ง์ ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ์ฌ์ฉ์๋ค์ด CloudFront๋ง์ ํตํด์ ์น์ฌ์ดํธ๋ก ์ก์ธ์คํ๊ฒ๋ ํ๋ ค ํฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
- ํด๋ผ์ด์ธํธ๋ค์๊ฒ ์ด๋ฉ์ผ์ ๋ณด๋ด S3 ์๋ ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ง ๋ง ๊ฒ์ ์์ฒญ
- CloudFront ๋ฐฐํฌ๋ฅผ ๊ตฌ์ฑํด ์๋ณธ ์ก์ธ์ค ID๋ฅผ ์์ฑํ ํ, ์ค์ง CloudFront ๋ฐฐํฌ OAI ์ฌ์ฉ์๋ค์ด ๋ณด๋ด๋ ์์ฒญ๋ง์ ์๋ฝํ๋๋ก ์ ๋ฐ์ดํธ
- ํด๋ผ์ด์ธํธ๊ฐ CloudFront๋ก ๋ฆฌ๋ค์ด๋ ํ ๋๋๋ก S3 ์ก์ธ์ค ํฌ์ธํธ ์ฌ์ฉ
- Application Load Balancer๊ฐ ๊ด๋ฆฌํ๋ ํ ์ธํธ์ EC2 ์ธ์คํด์ค์ ์น์ฌ์ดํธ๊ฐ ํธ์คํ
๋์ด ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ CloudFront ๋ฐฐํฌ๋ฅผ ์์ฑํด ๊ทธ ์ค๋ฆฌ์ง์ด ALB๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ์ค์ ํ์ต๋๋ค. CloudFront ๋ฐฐํฌ๋ฅผ ํตํด ์ ๊ณต๋๋ ์๋ฐฑ ๊ฐ์ ์ฌ์ค ํ์ผ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ค๋ฉด ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊น์?
- CloudFront ์๋ช ๋ URL
- CloudFront ์๋ณธ ์ก์ธ์ค ID
- CloudFront ์๋ช ๋ ์ฟ ํค
- CloudFront HTTPS ์ํธํ
์๋ช ๋ ์ฟ ํค๋ ๋ค์์ ํ์ผ์ ์ก์ธ์คํ๋ ๋ฐ์ ์ ์ฉํ๊ณ , ์๋ช ๋ URL์ ๊ฐ๋ณ ํ์ผ์ ์ก์ธ์คํ๋ ๋ฐ์ ์ ์ฉ
- HTTP REST API๋ฅผ ๋
ธ์ถ์ํฌ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ๊ณ ์์ต๋๋ค. ์์ฒญ ๋ผ์ฐํ
๊ท์น์ HTTL ๋ ๋ฒจ์์ ์ ๊ณตํด์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ๋ณด์ ์๊ตฌ ์ฌํญ ๋๋ฌธ์, ์ ํ๋ฆฌ์ผ์ด์
์ ๋ ๊ฐ์ ์ ์ IP ์ฃผ์๋ฅผ ํตํด์๋ง ๋
ธ์ถ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํค๊ธฐ ์ํ ์๋ฃจ์
์ ์์ฑํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
- NLB ๋ฅผ ์ฌ์ฉํ๊ณ ํ๋ ฅ์ IP ๋ฅผ ์ฌ๊ธฐ์ ์ฐ๊ฒฐ
- AWS Global Accelerator ์ ALB ์ฌ์ฉ
- ALB ์ฌ์ฉํ๊ณ ํ๋ ฅ์ IP๋ฅผ ์ฌ๊ธฐ์ ์ฐ๊ฒฐ
- CloudFront ๋ฅผ ํ๋ ฅ์ IP์ ALB์ ํจ๊ป ์ฌ์ฉ
AWS Global Accelerator๋ ๋ ๊ฐ์ ์ ์ IP ์ฃผ์๋ฅผ ์ ๊ณตํ๋ฉฐ, ALB๋ HTTP ๋ผ์ฐํ ๊ท์น์ ์ ๊ณตํฉ๋๋ค.
- ์ด S3 ๋ฒํท ์ ์ฑ ์ด ํ๋ ์ญํ ์ด ๋ฌด์์ผ๊น์?
{
"Version": "2012-10-17",
"Id": "Mystery policy",
"Statement": [{
"Sid": "What could it be?",
"Effect": "Allow",
"Principal": {
"CanonicalUser": "CloudFront Origin Identity Canonical User ID"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket/*"
}]
}
- CloudFront ์์ GetObject ์์ฒญ์ด ์์ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ํธํํ๋๋ก ๊ฐ์
- CloudFront ๋ฐฐํฌ ์๋ณธ ์ก์ธ์คID ์์ ์ค๋ S3๋ฒํท ์ฝํ ์ธ ๋ง์ด ํ๊ฐ๋ ์ ์๋๋ก ํ๊ฐ
- S3 ๋ฒํท์ ๋ํ GetObject ์ ํ์ ์์ฒญ๋ง์ ํ๊ฐ
๋๊ธ๋จ๊ธฐ๊ธฐ