๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/AWS

[AWS] CloudFront - ELB - S3/EC2 ์—ฐ๊ฒฐํ•˜๊ธฐ

by OR15A 2024. 3. 21.
๊ฐ•์˜๋ฅผ ๋งˆ์น˜๊ณ  ์ƒ๊ธด ์˜๋ฌธ์ 
  • ์ธํ”„๋Ÿฐ์˜ ๋น„์ „๊ณต์ž๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” AWS ์ž…๋ฌธ/์‹ค์ „ ๊ฐ•์˜๋Š”
    • CH.3 ์—์„œ ACM์ธ์ฆ์„œ๋กœ ELB๋ฅผ ํ†ตํ•œ HTTPS ํ†ต์‹ ์„ ๋ฐฐ์šฐ๊ณ 
    • CH.6 ์—์„œ  CloudFront๋„ HTTPS๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์ณ ์ค€๋‹ค.
CH.6   ์›น ํŽ˜์ด์ง€ ๋ฐฐํฌํ•˜๊ธฐ (S3, CloudFront) ๊ณผ์ •์—์„œ๋Š” 
๋„๋ฉ”์ธ ํ˜ธ์ŠคํŒ… ์˜์—ญ์—์„œ ์„œ์šธ์ธ์ฆ์„œ์˜ A๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ฒ„์ง€๋‹ˆ์•„์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค
(CloudFront๋Š” ๋ฒ„์ง€๋‹ˆ์•„๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—)
  • ๊ฐ•์˜๊ฐ€ ๋๋‚˜๊ณ  ๋„๋ฉ”์ธ์—์„œ ์‚ญ์ œ๋œ ์„œ์šธ์ธ์ฆ์„œ(ELB๋ฅผ ์œ„ํ•œ)๋Š” ์–ด๋””์— ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?
  • CloudFront ์™€ ELB ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•˜๊ธฐ๋„ ํ•˜๊ณ , ๋‚ด ํ”„๋กœ์ ํŠธ์— ์บ์‹ฑ ๋ฐ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋„ ๊ผญ ์ด์šฉํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

 

 

ํ•ด๊ฒฐ ๊ณผ์ • [1]
  • ๊ณต๋ถ€ํ•œ ๋ฐ”๋กœ๋Š” ์‚ฌ์šฉ์ž - CloudFront - ELB - S3/ EC2 ์ด๋Ÿฐ ์ˆœ์„œ๋กœ ์—ฐ๊ฒฐ์ด ๋˜์–ด์•ผ ํ•จ
  • ์‚ฌ์šฉ์ž๊ฐ€ example.com ๊ณผ www.example.com ๋‘๊ฐ€์ง€๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ ๋ฃจํŠธURL๋กœ ๋ณด๋‚ด๋Š” ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š”
    ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•  ๋•Œ๋ถ€ํ„ฐ ๋‘ ์ฃผ์†Œ๋ฅผ ํ•จ๊ป˜ ์ž…๋ ฅํ•ด์•ผํ•œ๋‹ค. (www.example.com  ์ ‘์†์‹œ example.com ๋กœ ๋ฆฌ๋””๋ ‰์…˜) 

 

  • ์„œ์šธ, ๋ฒ„์ง€๋‹ˆ์•„ ์ธ์ฆ์„œ๋ฅผ 2๊ฐœ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ๋‹ค์‹œ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ

  • [ Route 53์—์„œ ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ ] ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๊ธฐ

 

  • www ๋ถ™์ธ ์ฃผ์†Œ๋ฅผ ๋ฃจํŠธ ๋„๋ฉ”์ธ์œผ๋กœ ๋ผ์šฐํŒ…ํ•ด์ฃผ๋Š” CNAME ๋ ˆ์ฝ”๋“œ๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ

CNAME
www๋ฅผ ์œ„ํ•œ CNAME

 

  • ELB๋Š” CloudFront์˜ Origin(์›๋ณธ)์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

 

 

 

 

ํ˜„์žฌ์ƒํ™ฉ
  • ๊ฐ•์˜ ์ปค๋ฆฌํ˜๋Ÿผ๋Œ€๋กœ ๋ฒ„์ง€๋‹ˆ์•„ ์ธ์ฆ์„œ๋กœ Route 53์˜ ๋„๋ฉ”์ธ ํ˜ธ์ŠคํŒ…์˜์—ญ์— A๋ ˆ์ฝ”๋“œ, CNAME๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ
  • +  www์™€ ๋ฃจํŠธ ๋„๋ฉ”์ธ ํฌํ•จํ•˜๋Š” ์ธ์ฆ์„œ๋กœ ๊ต์ฒด
  • + CloudFront ์›๋ณธ์— ELB ์ถ”๊ฐ€

 

  • ์šฐ๋ถ„ํˆฌ์—์„œ ์ƒˆ๋กœ ๋นŒ๋“œํ•˜๊ณ  jarํŒŒ์ผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ
    • ์šฐ๋ถ„ํˆฌ๋กœ ๋“ค์–ด๊ฐ€์„œ ํ•˜๊ณ  ๊ธฐ์กด์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ํ•ด๋ณด๋‹ˆ
    • exmaple.com/ : CloudFront๊ฐ€ S3์˜ ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…(์ธ๋ฑ์Šค ๋ฌธ์„œ)์ธ index.htmlํŒŒ์ผ๋กœ ์‘๋‹ตํ•˜๊ธฐ ์„ฑ๊ณต
    • exmaple.com/health : ์‘๋‹ต๋ฐ›๋Š” ํ—ฌ์Šค ์ฒดํฌ ์‹คํŒจ
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<script/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>@@@@@@@@@</RequestId>
<HostId>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@</HostId>
</Error>

์—๋Ÿฌ ๋ฉ”์„ธ์ง€

  • "This XML file does not appear to have any style information associated with it." ๋ฉ”์‹œ์ง€๋Š”
    ์ฃผ๋กœ S3 ๋ฒ„ํ‚ท์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ
  • /health ์š”์ฒญ์ด ์‹ค์ œ๋กœ ELB๋ฅผ ํ†ตํ•ด EC2๋กœ ๋ผ์šฐํŒ…๋˜์ง€ ์•Š๊ณ , ์ž˜๋ชป๋˜์–ด S3 ๋ฒ„ํ‚ท์œผ๋กœ ๊ฐ€๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ

 

 

 

 

 

ํ•ด๊ฒฐ ๊ณผ์ • [2]
  • CloudFront์—์„œ ๊ฐ ์›๋ณธ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ ํŒจํ„ด์„ ์ง€์ •ํ•ด์ค˜์•ผํ•จ
  • ๊ฐ ๊ฒฝ๋กœ ํŒจํ„ด์— ์ ์ ˆํ•œ ์บ์‹œ ์ •์ฑ…, ์›๋ณธ ์š”์ฒญ ์ •์ฑ…, SSL/TLS ์„ค์ •์„ ์—ฐ๊ฒฐ ํ•˜๊ธฐ

 

 

  • ์บ์‹œ ์ •์ฑ…์€ ๊ถŒ์žฅ ๊ฒฝ๋กœ ์„ ํƒ์‹œ ์ž๋™์œผ๋กœ ์ถ”์ฒœํ•ด์คŒ
  • ์ปค์Šคํ…€ ๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ ์บ์‹œ ์ •์ฑ… ์„ ํƒํ•ด์ฃผ๊ธฐ
CachingOptimized
  • ์บ์‹ฑ์ด ํ™œ์„ฑํ™”๋œ ๊ธฐ๋ณธ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
  • Gzip๊ณผ Brotli ์••์ถ•์„ ์ง€์›ํ•˜์—ฌ ์ฝ˜ํ…์ธ ์˜ ์ „์†ก ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ๋กœ S3 ๋ฒ„ํ‚ท์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ์ •์  ์›น ์ž์›์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
CachingDisabled
  • ์บ์‹ฑ์ด ๋น„ํ™œ์„ฑํ™”๋œ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์š”์ฒญ์ด ์›๋ณธ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋ฉฐ, ์ฝ˜ํ…์ธ ๊ฐ€ CloudFront์—์„œ ์บ์‹ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผ ํ•˜๋Š” ๋™์  ์ฝ˜ํ…์ธ ๋‚˜ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
CachingOptimized
ForUncompressedObjects
  • ์••์ถ•๋˜์ง€ ์•Š์€ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์บ์‹ฑ์„ ์ตœ์ ํ™”ํ•œ ๊ธฐ๋ณธ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
  • ์••์ถ•์„ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ์ „์†ก๋˜๋Š” ์›๋ณธ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์บ์‹ฑ ํšจ์œจ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  • ์••์ถ•์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋น„ํšจ์œจ์ ์ธ ์ฝ˜ํ…์ธ  ํƒ€์ž…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
Elemental-MediaPackage
  • AWS Elemental MediaPackage ์˜ค๋ฆฌ์ง„์— ํŠนํ™”๋œ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
  • ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ ๊ธฐํƒ€ ๋ฏธ๋””์–ด ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฏธ๋””์–ด ํŒจํ‚ค์ง• ๋ฐ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ฝ˜ํ…์ธ  ์ „์†ก ์ตœ์ ํ™”๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
Amplify
  • AWS Amplify ์˜ค๋ฆฌ์ง„์„ ์œ„ํ•œ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
  • ์ •์  ์›น ์‚ฌ์ดํŠธ ๋ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ, ๋ฐฐํฌ ๋ฐ ํ˜ธ์ŠคํŒ…์„ ์ œ๊ณตํ•˜๋Š” AWS Amplify ์„œ๋น„์Šค์™€ ์—ฐ๋™๋ฉ๋‹ˆ๋‹ค.
  • ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ฝ˜ํ…์ธ ์— ์ ํ•ฉํ•˜๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๊ฒฐ๊ณผ

  • ํ”„๋กœ์ ํŠธ์˜ url์— ๋”ฐ๋ผ ์บ์‹œ ์ •์ฑ…์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•˜์˜€์Œ
  • ํ˜„์žฌ RDS๋น„์šฉ์œผ๋กœ ์ธํ•ด ์ž ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฉˆ์ถ˜ ์ƒํƒœ์—ฌ์„œ ์žฌ ๋ฐฐํฌ์‹œ ๋ณด์™„ํ•  ๊ฒƒ :)