Deploy static web on AWS
μ΄λ² μ₯μμ μ μ μΉ μ΄λ ₯μ λ°°ν¬ λ°©μμ μμλ³΄κ² μ΅λλ€.
μ¬μ© κΈ°μ : AWS S3
AWS S3
μ΄λμλ μνλ μμ λ°μ΄ν°λ₯Ό κ²μν μ μλλ‘ κ΅¬μΆλ κ°μ²΄ μ€ν 리μ§
S3λ μμ κ°μ μ¬λ‘건μ κ°μ§ AWSμ μ€ν λ¦¬μ§ μλΉμ€μ λλ€. μ΄ μΈμλ AWS μ€ν λ¦¬μ§ μλΉμ€λ μλΉν λ§μ§λ§, μ£Όλͺ©μ μΈ μ μ μΉ μ΄λ ₯μλ₯Ό λ°°ν¬νκΈ° μν΄μ S3λ₯Ό νμ©νκ² μ΅λλ€.
S3 κ°μ νμ΄μ§μ μ μνλ©΄ κ°μ₯ λμ λλ λΆλΆμ μ무λλ '99.999999999%' μ λ¬νλ€λ μμ μ± μκ° λ¬Έκ΅¬μ λλ€. μ΄μ²λΌ S3λ λ°μ΄λ μ μ₯곡κ°μκ³Ό ν¨κ» λͺ κ°μ§ μ€μ λ§μΌλ‘ μ μ μΉμ λ°°ν¬νλ κΈ°λ₯μ μ 곡ν©λλ€. μ΄λ² μ₯μμ λ€λ£° λ΄μ©μ S3λ₯Ό νμ©ν μ μ μΉ μ΄λ ₯μ λ°°ν¬ κ³Όμ μ λλ€.
S3λ₯Ό μ μ μΉ νΈμ€ν μ©λλ‘ μ¬μ©νκΈ° μν΄μ λ€μκ³Ό κ°μ λ°©λ²λ€μ μ¬μ©ν μ μμ΅λλ€.
Amazon S3 console(μ½μ)
REST API
the AWS SDKs
the AWS CLI or AWS CloudFormation
λ³Έ λ¬Έμμμ Amazon S3 consoleμ νμ©ν μΉ μ΄λ ₯μ νΈμ€ν μ κ³Όμ μ μ€λͺ λλ¦° ν μΆνμ AWS CLI νΉμ AWS CloudFormationμ νμ©ν νΈμ€ν μ μ€λͺ λλ¦¬κ² μ΅λλ€.
μν€ν
μ²
λ²ν·(Bucket) κ°μ
Bucketμ S3μ ν΅μ¬ κ°λ μ΄λ©° S3 μ¬μ© μ€λͺ μμμ Bucketμ λ€μκ³Ό κ°μ΄ μ€λͺ νκ³ μμ΅λλ€.
Amazon S3μ μ μ₯λ κ°μ²΄μ λν 컨ν μ΄λ
λͺ¨λ κ°μ²΄λ νΉμ Bucketμ μμλλ©°, Bucketμ μ΄λ¦μ νμΌ λ° μΉ νμ΄μ§μ μ κ·Όν λ μ¬μ©λ URLμ μν₯μ λ―ΈμΉ©λλ€. μλ₯Ό λ€μ΄ yibyeongyong.comμ΄λΌλ λλ©μΈμ κ°μ§κ³ μμΌλ©°, μ΄λ ₯μ νμ΄μ§μ μ£Όμλ₯Ό resume-en.yibyeongyong.comμΌλ‘ λΆμ¬νκ³ μΆλ€λ©΄, λ²ν·μ μ΄λ¦μ resume-en.yibyeongyong.comμΌλ‘ μ€μ ν΄μΌ ν©λλ€(λ²ν· λ€μ΄λ°).
μ΄ μΈμλ λ²ν·μ΄ μ μ₯ κ°λ₯ν κ°μ²΄μ κ°―μλ μ νμ΄ μλ νΉμ§μ κ°μ§κ³ μμΌλ©°, νλμ κ³μ μμ μμ± κ°λ₯ν λ²ν·μ μ΅λ κ°―μλ 100κ° μ λλ€.
λ²ν· μμ±νκΈ°
λ²ν·μ μμ±νλ €λ©΄ λ¨Όμ S3 μ½μλ‘ μ΄λν΄μΌ ν©λλ€. Alt + Sλ₯Ό λλ₯΄λ©΄ 컀μκ° κ²μμ°½μΌλ‘ μ΄λν©λλ€. μ΄λ₯Ό ν΅ν΄ AWS 리μμ€ μ΄λ¦μ μ§μ κ²μνλ©΄ μ½μκΉμ§ λΉ λ₯΄κ² μ΄λν μ μμ΅λλ€. `` μ΄λ―Έ νκ΅μ΄ μ΄λ ₯μ(resume-ko)λ₯Ό λ°°ν¬ μ€μ΄λ―λ‘ λ€μ μ€ν¬λ¦°μ νλ©΄μ²λΌ λ²ν· λͺ©λ‘μ νμΈν μ μμ΅λλ€. νκΈ μ΄λ ₯μλ λ°°ν¬λ₯Ό μ μ§ν μ±, μ΄λ²μ μλ¬Έ μ΄λ ₯μλ₯Ό λ°°ν¬νκΈ° μν΄ λ²ν·μ μμ±νκ² μ΅λλ€. νλ©΄μμ Create bucketμ λλ¬ λ²ν·μ μμ±ν μ μμ΅λλ€.

λ²ν· μ΄λ¦μ κ³μ μ΄λ¦μ μμ±νλ―μ΄ ν κ³μ μμ μμ±λ κΈ°μ‘΄μ λ²ν·κ³Ό κ²ΉμΉ μ μμ΅λλ€. λν, μΉ μ¬μ΄νΈλ₯Ό νΈμ€ν ν λͺ©μ μΌλ‘ λ²ν·μ μμ±νλ€λ©΄ λ²ν·μ μ΄λ¦μ νΈμ€ν ν μΉ μ£Όμμ μΌμΉμμΌμΌ ν©λλ€.
νκ΅μ΄ μ΄λ ₯μμ κ²½μ° μμΈ λ¦¬μ (ap-northeast-2)μ μμ±νμ§λ§, μλ¬Έ μ΄λ ₯μλ λ²μ§λμ 리μ (us-east-1)μ μμ±νκ² μ΅λλ€. 리μ μ μ°¨μ΄κ° μ€μ§μ μΌλ‘ μΉ νλ©΄μ λ‘λ©νλ μλ, AWS CloudFront λ±μ 리μμ€λ₯Ό μ¬μ©νλ κ²½μ° μΊμ±μ μΌλ§λ μν₯μ λΌμΉ μ§λ λͺ¨λ₯΄κ² μ΅λλ€. μ΄ μ μ λν΄μ μΆν μ±λ₯ μ€ν μλ£ λ±μ μ°Ύκ±°λ μ§μ μ€νμ μννμ¬ λΉκ΅ν΄ λ³Ό μμ μ
λλ€.
νλ¨μ Object Ownershipμμ κΆν μ μ΄ λ¦¬μ€νΈ(Access Control Lists, ACLs)μ νμ±ν μ¬λΆλ₯Ό μ νν μ μμ΅λλ€. ν΄λΉ λ²ν·μ κ°μΈ μ΄λ ₯μλ₯Ό νΈμ€ν
ν λͺ©μ μΌλ‘ μ¬μ©ν μμ μ΄λ©°, λꡬλ μ κ·Όν μ μλλ‘ κ³΅κ°ν μμ μ
λλ€. λ°λΌμ, κΆν μ μ΄ λ¦¬μ€νΈλ λ³λλ‘ νμ±ννμ§ μκ² μ΅λλ€.

Block all public accessμ 체ν¬λ₯Ό ν΄μ νκ³ μΈλΆλ‘λΆν°μ λͺ¨λ μ κ·Όμ νμ©ν©λλ€. Block all accessλ₯Ό ν΄μ νλ©΄ νλ¨μ κ²½κ³ λ¬Έκ΅¬κ° μμ±λ©λλ€. μ΄λ λΆνΉμ λ€μμ μΈλΆ μ¬μ©μκ° μ κ·Όν μ μμμ κ²½κ³ ν©λλ€. μ΄ λΆλΆμ λμν©λλ€.

μ΄νμ μ€μ νλͺ©λ€μ νμμ λ°λΌ μ€μ ν μ μμΌλ©° κ°μΈμ μΌλ‘λ μ΄νμ μ΅μ
μ€ Tagμ κ²½μ° μ΄λ―Έ νΈμ€ν
μ€μΈ λ²ν·μΈresume-ko.yibyeongyong.com ꡬλΆμ μν΄ λ°λ‘ μ€μ νμμ΅λλ€. Bucket Versioningμ κ²½μ°μ, μ΄λ ₯μλ₯Ό ν¬ν¨ν νλ‘μ νΈ κ΄λ ¨ λͺ¨λ μ½λλ₯Ό Githubμ μ
λ‘λν μμ μ΄λ―λ‘ λ°λ‘ μ¬μ©ν νμλ₯Ό λλΌμ§ λͺ»νμΌλ©° λ§μ°¬κ°μ§λ‘ λ€λ₯Έ μ΅μ
λ μΆκ° μ€μ μ νμ§ μμμ΅λλ€. μ€μ μ λ²ν·μ΄ μμ±λ μ΄νμλ λ³κ²½μ΄ κ°λ₯νλ νμν λ λ°κΎΈμ΄μ£Όλ©΄ λ©λλ€.
λͺ¨λ μ€μ μ λ§μΉλ©΄ νλ¨μ Create bucketμ ν΄λ¦νμ¬ λ²ν· μμ±μ μλ£ν©λλ€.
μΉ νΈμ€ν
νμ±ν νκΈ°
μ΄ν λ²ν·μ μΉ νΈμ€ν
μ©λλ‘ μ¬μ©νκΈ° μν΄μ μΆκ° μ€μ μ΄ νμν©λλ€. μμ±λ λ²ν· 리μ€νΈ μ€ λ°©κΈ μμ±ν λ²ν·μ λλ₯΄κ³ νμμ Properties -> κ°μ₯ νλ¨μ Static website hostingμμ Edit λ²νΌμ λλ₯΄λ©΄ λ€μκ³Ό κ°μ νλ©΄μΌλ‘ μ΄λν©λλ€.

μ νλ©΄μ Static website hostingμ Enableλ‘ λ³κ²½νκ³ Hosting typeμ Host a static websiteλ‘ λ³κ²½ν©λλ€. νλ¨μ Index documentλ μ΄λ ₯μ νμ΄μ§μ URLμ μ κ·Όνλ©΄ κ°μ₯ λ¨Όμ 보μ¬μ€ νμ΄μ§μ νμΌλͺ
μ μ
λ ₯νλ κ³³μ
λλ€. κ΄λ‘λ₯Ό λ°λΌ index.htmlλ‘ μ€μ νκ² μ΅λλ€. Error documentλ Redirection rulesλ λ°λ‘ μ€μ νμ§ μκ² μ΅λλ€. νμν μ€μ μ λ§μΉλ©΄ Save changesλ₯Ό λλ¬ μ΄μ νλ©΄μΌλ‘ λμκ°λλ€. νΈμ€ν
μ νμ±ννλ©΄ λ²ν·μ μΉμΌλ‘ μ κ·Όν μ μλ μλν¬μΈνΈκ° μμ±λ©λλ€.

νμ Objectsλ₯Ό λλ¬ μ΄λ ₯μ νμΌμ μ
λ‘λν©λλ€. μ£Όμν μ μ λ°©κΈ μ€μ νλ Index documentμ νμΌλͺ
μ μΌμΉμν€λ κ²μ
λλ€. ν
μ€νΈ λͺ©μ μΌλ‘ Githubμμ λ€μ΄λ‘λ ν μ΄λ ₯μ ν
νλ¦Ώ λ ν¬μ§ν 리μμ νμΌλͺ
λ§ index.htmlλ‘ μμ νμ¬ μ
λ‘λν΄λ³΄κ² μ΅λλ€. μ
λ‘λλ λΈλΌμ°μ λ‘ λλκ·Έλ₯Ό ν΅ν΄μλ κ°λ₯ν©λλ€.
μ΄ μνμμ νμΌ μ΄λ¦(index.html)μ ν΄λ¦νλ©΄ 첫 νλ©΄μΈ Properties νμμ Object URLμ νμΈν μ μμ΅λλ€. νμ¬ ν΄λΉ URLμ ν΅ν΄ μ΄λ ₯μ νμ΄μ§μ μ κ·Όν μ μμΌλ©°, μΆν DNS μλΉμ€λ₯Ό μ¬μ©νλ©΄ μμ λ§μ λλ©μΈμΌλ‘ μ κ·Όν μ μμ΅λλ€.
κ·Έλ¬λ Object URLμ ν΅ν΄ μ μν΄λ³΄λ©΄ κΈ°λμ λ¬λ¦¬ AccessDeninedκ° λ°μν©λλ€.
νΉμλ λ΄λΆ κ°μ²΄μ μ§μ μ κ·Όνλ κ²λ§ λΆκ°λ₯ν κ²μ΄ μλκΉ μΆμ΄ 'λ²ν· μ€μ νλ©΄ -> Properties ν -> νλ¨ Static website hosting'μ Bucket website endpointμ νμλ URLλ‘ μ κ·Όμ μλνλλΌλ 403 Forbiddenμ΄ λ°μν©λλ€.
μ΄λ¬ν μ€λ₯κ° λ°μνλ μ΄μ λ AWS 리μμ€λ§λ€ μ κ·Όμ μ μ΄νλ μ μ±
(Policy)μ΄ κ°λ³μ μΌλ‘ μ‘΄μ¬νκΈ° λλ¬Έμ
λλ€. S3 λ²ν·μ κ²½μ° Bucket policyκ° μΆκ°λ‘ μ‘΄μ¬ν©λλ€. μΉ νμ΄μ§ μ κ·Όμ μν κ΄λ ¨ κΆν μ€μ λ° Bucket policy μ€μ μ κ΄ν μμΈν λ΄μ©μ μ΄κ³³μμ νμΈν μ μμ΅λλ€.
AWS 리μμ€μ μ μ±
μ Json ν¬λ§·μΌλ‘ μ€μ ν©λλ€. λ²ν· μ€μ μ°½μμ PermissionsνμΌλ‘ μ΄λ ν Bucket policyμμ Editμ λλ¬ μ μ±
μ μ€μ ν μ μμ΅λλ€. μ΄ν νλ©΄μμ 1) μ μ±
μ μ§μ μ
λ ₯νκ±°λ, 2) μ€μμ Policy generatorμ νμ©νκ±°λ, 3) μ°μΈ‘μ Add new statementμμ μ μ±
μ ꡬμ±ν μ μμ΅λλ€.
λ²ν·μ κ°μ²΄μ μ½κΈ°λ₯Ό νμ©νλ μ μ±
μ μμ±νλ €λ©΄ λ€μκ³Ό κ°μ΄ μμ±ν΄μΌ ν©λλ€. μ΄ μ€ Sid νλͺ©μ μμ λ‘κ² μ§μ μ μκ³ Resource νλͺ©μ Bucket-name λΆλΆλ§ κ°μΈμ μΌλ‘ μ¬μ©νλ λ²ν· μ΄λ¦μΌλ‘ λ³κ²½νλ©΄ λ©λλ€.
κ° νλͺ©μ λν μ€λͺ μ μ΄κ³³μμ μμΈν λ€λ£¨κ³ μμ΅λλ€.
λ²ν· μ μ±
μ μ€μ ν Object URLκ³Ό Bucket website endpointλ₯Ό ν΅ν΄ μ κ·Όν΄λ³΄λ©΄ λ λ°©λ² λͺ¨λ μ μμ μΌλ‘ μ΄λ ₯μκ° νλ©΄μ μΆλ ₯λλ κ²μ νμΈν μ μμ΅λλ€.

λ§Ίμλ§
μ§κΈκΉμ§ AWS S3μ λ²ν·μ μ¬μ©νμ¬ μ μ μΉ μ΄λ ₯μλ₯Ό λ°°ν¬νλ λ°©λ²μ λν΄μ μμ보μμ΅λλ€. λ¬Όλ‘ μ΄ μ체λ‘λ μ¬μ©ν μ μμ§λ§ λλ©μΈ λ€μμ μ‘΄μ¬ μ΄μ κ° λ¬΄μνκ² URL μμ²΄κ° μΈμ°κΈ°μ κΈΈκΈ°λνκ³ , νΉν μ£Όμμ°½ μ’μΈ‘μ μ£Όμ μν¨ μ΄λΌλ λ¬Έκ΅¬κ° μ κ²½ μ°μ
λλ€.
μ΄λ¬ν λ¬Έμ λ€μ AWSμ DNS μλΉμ€μΈ Route 53κ³Ό CDN μλΉμ€μΈ CloudFrontλ₯Ό νμ©νμ¬ ν΄κ²°ν μ μμ΅λλ€. μ΄μ΄μ§λ λ΄μ©μ λ€μ μ₯μμ λ€λ£¨κ² μ΅λλ€.
μκ°ν΄λ³Ό μ
λ²ν· μ μ± μ΄ μ€μ λμ΄μμ§ μμ λ²ν· μ€λΈμ νΈμ μ κ·Όνμ§ λͺ»νλ μν©μμ λλ체 μ΄λ λΆλΆμ΄ λ¬Έμ μΈμ§ λͺ°λΌ μ΄λ₯Ό κ³ μΉλ λ° λ§μ μκ°μ μλΉνμ΅λλ€. νΉν AWSλ λ§€μ° λ€μν 리μμ€λ₯Ό μ 곡νλ―λ‘ μ΄μ©νλ ν΄λΌμ°λμ κ·λͺ¨κ° ν΄ μλ‘ μμΈ νμ μ΄ λ μ΄λ €μμ§ κ² μ λλ€. λ¬Έμ μ μμΈμ λΉ λ₯΄κ² μ°Ύλ λ°©λ²μ μμκΉμ?
νμ¬κΉμ§μ μμ μ μ λ°λΌμ¨ μνμμ λμ°λ―Έκ° μ’λ€λ©΄ μ΄μν λΆλΆμ λ°κ²¬νμ κ² μ λλ€. μ κ°μ
index.htmlμ μ κ·Όνμμλ S3 λ²ν· μ€λΈμ νΈμ μ§μ μ κ·Όνλ©΄ HTTPSκ° μ μ©λμ΄μκ³ λ²ν·μ΄ νΈμ€ν μ€μΈ μ£Όμλ‘ μ κ·Όνλ©΄ HTTPSκ° μ μ©λμ΄μμ§ μμκΉμ? μ΄λ¬ν μ°¨μ΄λ μ λ°μνλ κ±ΈκΉμ? μ¬μ©μμκ² λ°μ΄ν°λ₯Ό μΆλ ₯νκΈ°κΉμ§μ κ³Όμ μμ 무μΈκ° μ°¨μ΄μ μ΄ λ°μνλκ±ΈκΉμ?

Last updated