Amazon Route 53 + HTTPS
1. Route 53 π― 1-1. Amazon Route 53μ΄λ? βοΈ Amazon Route 53μ DNS(Domain Name System) μλΉμ€μ λλ€. AWSμμ λλ©μΈμ λ°κΈνκ³ κ΄λ¦¬ν΄μ£Όλ μλΉμ€μ£ . μ¬κΈ°μλ λ°κΈμ κ΅¬λ§€λ‘ μ΄ν΄ν΄λ 무방ν©λλ€. 1-2
1. Route 53 π―
1-1. Amazon Route 53μ΄λ? βοΈ
Amazon Route 53μ DNS(Domain Name System) μλΉμ€μ
λλ€. AWSμμ λλ©μΈμ λ°κΈνκ³ κ΄λ¦¬ν΄μ£Όλ μλΉμ€μ£ . μ¬κΈ°μλ λ°κΈμ κ΅¬λ§€λ‘ μ΄ν΄ν΄λ 무방ν©λλ€.
1-2. μ£Όμ μ¬ν βοΈ
IP μ£Όμμλ HTTPSλ₯Ό μ μ©ν μ μμ΅λλ€. κ·Έλμ νλ‘ νΈ μΉ νμ΄μ§λ λ°±μλ μλ²λ κ²°κ΅ λλ©μΈ μ£Όμλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
Amazon Route 53μμλ λλ©μΈμ λ°κΈκ³Ό κ΄λ¦¬κ° λͺ¨λ κ°λ₯νμ§λ§, κ°λΉμ(gabia)λ νμ΄μ¦(whois)μμλ λλ©μΈμ ꡬ맀νκ³ κ΄λ¦¬ν μ μμ΅λλ€. μ μ κ²½μ° λλ©μΈμ ꡬ맀λ κ°λΉμμμ μ§ννκ³ , κ΄λ¦¬λ Amazon Route 53μ μμνμ΅λλ€.
λ°λΌμ μ΄λ² κΈμμλ Route 53μμ λλ©μΈμ λ°κΈ(ꡬ맀) νλ κ³Όμ μ λ€λ£¨μ§ μμ κ²μ λλ€. μ’μ μλ£κ° λ§μΌλ μ§μ μ°Ύμ보μκΈΈ κΆμ₯ν©λλ€.
2. Route 53μ λλ©μΈμ EC2μ μ°κ²°νκΈ° π―
2-1. Route 53μ λλ©μΈμ EC2μ μ°κ²° βοΈ
2-1-1. Route 53μ νΈμ€ν μμ λ©λ΄, λ μ½λ μμ± λ²νΌ ν΄λ¦ β

2-1-2. λ μ½λ μμ±νκΈ° β


http://api.pullim.io.kr/λ‘ μ μνμ λ, 3.37.155.253μ IP μ£Όμλ‘ μ°κ²°λκ² νκΈ° μν μ€μ μ
λλ€. λλ©μΈ ꡬ맀λ pullim.io.krλ§ νλλ°, μλΈ λλ©μΈ apiλ₯Ό μΆκ°νμ¬ μλ²μ κ²½λ‘λ‘ μ€μ νμ΅λλ€.
2-2. λ μ½λ μ ν νμ νκΈ° βοΈ
DNSμ 곡ν΅μ μΌλ‘ μλ μ€μ μ€ νλκ° λ μ½λ μ νμ λλ€. λ§μ λ μ½λ μ νμ΄ μμ§λ§ A λ μ½λμ CNAME λ μ½λμ λν΄μλ§ μμλ³΄κ² μ΅λλ€.

2-2-1. A λ μ½λ β
A λ μ½λλ, λλ©μΈμ νΉμ IPv4 μ£Όμμ μ°κ²°νκ³ μ ν λ μ¬μ©νλ λ μ½λ μ νμ λλ€.
μμμ μ λ 3.37.155.253λΌλ IP μ£Όμμ api.pullim.io.krμ΄λΌλ λλ©μΈμ μ°κ²°νκΈ° μν΄ A λ μ½λλ₯Ό μ ννμ΅λλ€.
2-2-2. CNAME λ μ½λ β
CNAME λ μ½λλ, λλ©μΈμ νΉμ λλ©μΈ μ£Όμμ μ°κ²°νκ³ μ ν λ μ¬μ©νλ λ μ½λ μ νμ λλ€.
3. ELB π―
IP μ£Όμμλ HTTPSλ₯Ό μ μ©ν μ μμ΄μ λλ©μΈμ ꡬ맀νκ³ , ν΄λΉ λλ©μΈμ μ°λ¦¬κ° μλν EC2 μΈμ€ν΄μ€μ IPλ₯Ό μ°κ²°νμ΅λλ€. μ΄μ HTTPSλ₯Ό μ μ©ν μ°¨λ‘μ΄μ£ .
HTTPS μ μ, ELBμ λν΄ μκ°νκ³ μ ν©λλ€. ELBλ Elastic Load Balancerμ λλ€.

ELBλ μλ²λ₯Ό 2λ μ΄μ μ΄μ©ν λ, νΈλν½μ μ μ ν λΆν΄νκΈ° μν΄ μ¬μ©νλ λ‘λ λ°Έλ°μμΈλ°μ, μ λ ELBμ μ£Όμ κΈ°λ₯μ΄λΌκ³ ν μ μλ λ‘λ λ°Έλ°μ± κΈ°λ₯μ΄ μλλΌ, λΆκ° κΈ°λ₯μΈ SSL/TLS(HTTPS)λ₯Ό μ μ©νκ³ μ ν©λλ€.
μ¬κΈ°μ SSLκ³Ό TLSλ, μΉμ¬μ΄νΈμ μ¬μ©μ λΈλΌμ°μ κ°μ ν΅μ μ μνΈννμ¬ λ°μ΄ν°μ κΈ°λ°μ±κ³Ό 무결μ±μ 보νΈνλ 보μ νλ‘ν μ½μ΄λΌκ³ ν μ μλλ°μ. μ½κ² νννλ©΄ HTTPλ₯Ό HTTPSλ‘ λ°κΏμ£Όλ μΈμ¦μλΌκ³ λ³Ό μ μμ΅λλ€.

HTTPSλ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°λ₯Ό μλ²μ μ£Όκ³ λ°μ λ μνΈνλ₯Ό κ±°μΉ λ€ ν΅μ μ μ§ννκΈ°μ 보μμ μ 리ν©λλ€. HTTPSκ° μ μ©λμ§ μμ μ¬μ΄νΈμλ μμ κ°μ κ²½κ³ κ° λνλλλ°μ, μ¬μ©μ μ μ₯μμλ λ―Ώμμ§μ€λ½μ§ λͺ»ν μλΉμ€λΌκ³ νλ¨ν κ²μ΄κ³ , μ΄νλ₯ μ΄ ν¬κ² μ¦κ°ν μλ°μ μμ κ²μ λλ€.

HTTPS μΈμ¦μ λ°μ μΉ μ¬μ΄νΈκ° λ°±μλ μλ²μ ν΅μ νκΈ° μν΄μλ, λ°±μλ μλ²μ μ£Όμλ HTTPS μΈμ¦μ λ°μμΌ ν©λλ€. ELBμ λΆκ° κΈ°λ₯μΈ SSL/TLS(HTTPS)λ₯Ό μ μ©νλ©΄ μν€ν μ²λ μμ κ°μ΄ λ³κ²½λ κ²μ λλ€.
3-1. ELB κΈ°λ³Έ κ΅¬μ± μ€μ βοΈ
3-1-1. 리μ μ ν β

AWS EC2 λ‘λλ°Έλ°μ μλΉμ€λ‘ λ€μ΄κ°μ 리μ μ μμΈλ‘ μ€μ ν©λλ€.
3-1-2. λ‘λ λ°Έλ°μ μ ν μ ν β

HTTP λ° HTTPS νΈλν½μ μ¬μ©ν κ²μ΄κΈ°μ κ°μ₯ μ’μΈ‘μ μλ Application Load Balancerλ₯Ό μμ±ν©λλ€.
3-1-3. κΈ°λ³Έ κ΅¬μ± β

λ΄λΆ μ΅μ μ Private IPλ₯Ό νμ©ν λ μ¬μ©νλ μ΅μ μ λλ€. νμ¬λ Private IPλ₯Ό νμ©νκ³ μμ§ μκΈ°μ μΈν°λ· κ²½κ³λ₯Ό μ νν©λλ€.
μΆκ°μ μΌλ‘, μ°λ¦¬κ° λ§λ EC2 μΈμ€ν΄μ€λ μ λΆ IPv4λ‘ μ΄λ£¨μ΄μ Έ μμκΈ°μ IPv4λ₯Ό μ νν©λλ€.
3-1-4. λ€νΈμν¬ λ§€ν β

λ‘λ λ°Έλ°μκ° μ΄λ€ κ°μ© μμμΌλ‘λ§ νΈλν½μ λ³΄λΌ κ²μΈμ§ μ ννλ κΈ°λ₯μ΄ μλλ°μ, μ°μ μ κ°μ© μμμ μ νμ λμ§ μκ³ λͺ¨λ μμμ νΈλν½μ 보λ΄λλ‘ μ€μ νμ΅λλ€.
3-2. ELB 보μ κ·Έλ£Ή μ€μ βοΈ

ELB 보μ κ·Έλ£Ήμ μμ±ν©λλ€. μ΄μ κΈμμ 보μ κ·Έλ£Ήμ EC2 μΈμ€ν΄μ€λΌλ μ§μ λλ¬μΌ μΈν리μ λλ¬Έμ΄λΌκ³ λΉμ νμμ£ . ELBλ EC2 μΈμ€ν΄μ€ μλ¨μμ μμ²μ λ¨Όμ λ°λ 'μ»΄ν¨ν°'μ λΆκ³Όν©λλ€. λ°λΌμ ELBμ λν 보μ κ·Έλ£Ή μ€μ λ νμν©λλ€.
ELBλ HTTP νΉμ HTTPS μ νμ μΈλ°μ΄λ νΈλν½μ λ°μ κ²μ΄λΌκ³ μ€μ νλ λ¨κ³μ λλ€.

λ€μ μ€μ μΌλ‘ λμμμ λ°©κΈ μμ±ν 보μ κ·Έλ£Ήμ λ±λ‘ν©λλ€.
3-3. ELB 리μ€λ λ° λΌμ°ν μ€μ βοΈ

ELBλ‘ λ€μ΄μ¨ μμ²μ μ΄λ€ EC2 μΈμ€ν΄μ€λ‘ μ λ¬ν κ²μΈμ§λ₯Ό μ€μ νλ μμμ λλ€. κ·Έλ¦¬κ³ μμ²μ λ°μ EC2 μΈμ€ν΄μ€λ₯Ό 'λμ κ·Έλ£Ή'μ΄λΌκ³ ν©λλ€.

μμ κ°μ΄ μ€μ ν©λλ€.

ELBμλ Health CheckλΌλ λΆκ° κΈ°λ₯μ΄ μμ΅λλ€. ELBλ λ€μ΄μ¨ μμ²μ λμ κ·Έλ£Ήμ μλ μ¬λ¬ EC2 μΈμ€ν΄μ€λ‘ μ λ¬νλ μν μ μννλλ°μ, μ΄λ νΉμ EC2 μΈμ€ν΄μ€ λ΄μ μλ μλ²κ° μμμΉ λͺ»ν μλ¬λ‘ μΈν΄ κ³ μ₯ λ¬λ€κ³ κ°μ ν΄ λ³΄μ£ .
ELBκ° κ³ μ₯ λ μλ²λ‘ νΈλν½μ μ λ¬νλ κ²μ μλΉν λΉν¨μ¨μ μΈ νλμ λλ€. μ΄λ° μν©μ λ°©μ§νκΈ° μν΄ ELBλ μ£ΌκΈ°μ μΌλ‘(κΈ°λ³Έ 30μ΄) λμ κ·Έλ£Ήμ μν΄μλ κ°κ°μ EC2 μΈμ€ν΄μ€μ μμ²μ 보λ λλ€. μ΄λ 200λ²λ μλ΅μ΄ λ°νλμ§ μμΌλ©΄ μλ²κ° κ³ μ₯ λ¬λ€κ³ νλ¨νκ³ , κ³ μ₯ λ μλ²λ‘λ νΈλν½μ 보λ΄μ§ μκ² λ©λλ€.

'μλμ 보λ₯ μ€μΈ κ²μΌλ‘ ν¬ν¨'μ ν΄λ¦ν λ€ λμ κ·Έλ£Ήμ μμ±ν©λλ€.

λ€μ 리μ€λ λ° λΌμ°ν μΉμ μΌλ‘ λμμ¨ λ€ refresh λ²νΌμ λλ₯΄κ³ , μ°λ¦¬κ° μμ±ν λμ κ·Έλ£Ήμ μ§μ ν©λλ€.
μ΄μ΄μ§λ λΆκ°μ μΈ μ€μ λ€μ default κ°μΌλ‘ νκ³ λ‘λ λ°Έλ°μ μμ±μ ν΄λ¦ν©λλ€.
Health Checkλ₯Ό μν΄μλ μλ² μ½λμ Health Check APIλ₯Ό μΆκ°ν΄μΌ νλλ°μ, μ΄ λΆλΆμ ν₯νμ λ€λ£¨λλ‘ νκ² μ΅λλ€.
3-4. ELBμ λλ©μΈ μ°κ²° βοΈ
μ΄μ μ¬μ©μλ€μ΄ μλ²μ μμ²μ 보λ΄λ©΄ EC2 μΈμ€ν΄μ€κ° ν΄λΉ μμ²μ μ§μ λ°λ κ²μ΄ μλλΌ, ELBκ° λ¨Όμ μμ²μ λ°κ³ κΈ°μ‘΄ EC2 μΈμ€ν΄μ€μ ν΄λΉ μμ²μ μ λ¬νκ² λλ μν©μΌλ‘ λ³κ²½λμ΅λλ€. μν©μ λ§λ νμ μμ μ μ§ννκ³ μ ν©λλ€.
3-4-1. Route 53μμ EC2μ μ°κ²°λμ΄ μλ λ μ½λ μμ β

Route 53μΌλ‘ μ΄λνμ¬, EC2 μΈμ€ν΄μ€μ μ§μ μ μΌλ‘ μ°κ²°νλ λ μ½λλ₯Ό μμ ν©λλ€.
3-4-2. Route 53μμ ELBμ λλ©μΈ μ°κ²° β

κ·Έλ¦¬κ³ ELBμ λ§λ λ μ½λλ₯Ό μμ±ν©λλ€.
3-5. μΈμ¦μ λ°κΈ βοΈ
3-5-1. AWS Certificate Manage β

μ΄μ μΈμ¦μλ₯Ό λ°κΈλ°κΈ° μν΄ AWS Certificate Manage μλΉμ€λ‘ μ΄λν λ€, μΈμ¦μ μμ²μ ν΄λ¦ν©λλ€.
3-5-2. μΈμ¦μ μμ² β

λλ©μΈμ μ νν μ λ ₯νκ³ , λ€λ₯Έ μ€μ λ€μ λ³κ²½νμ§ μμ μνμμ μμ²μ ν΄λ¦ν©λλ€.
3-5-3. μΈμ¦μ κ²μ¦ β

λ΄κ° μ λ§ ν΄λΉ λλ©μΈμ μ£ΌμΈμΈμ§ κ²μ¦νλ μ μ°¨μ λλ€.
Route 53μμ CNAMEμ λν μ€μ μ ν΄λμΌλ©΄, AWSμμ CNAME κ°μ μμ²μ 보λ΄λ³΄κ³ κ²μ¦μ μλ£ν΄ μ£Όκ² λ€λ λ»μ΄μ£ .
'Route 53μμ λ μ½λ μμ±'μ ν΄λ¦ν©λλ€. μ΄ν λ μ½λ μμ±μ ν΄λ¦ν©λλ€.
3λΆ μ λ μ§λλ©΄ μνκ° 'μ±κ³΅'μΌλ‘ λ³κ²½λ©λλ€. κΈΈκ²λ 10λΆ μ λ μμλ λλ μμΌλ, λ°λμ§ μλλ€κ³ λ무 κ±±μ νμ§ μμΌμ λ λ©λλ€.
3-6. ELBμ HTTPS μ€μ βοΈ

ELBμμ 리μ€λ μΆκ° λ²νΌμ ν΄λ¦ν©λλ€.

νλ‘ν μ½μ HTTPSλ‘ μ ννκ³ , μ°λ¦¬κ° μ§μ ν λμ κ·Έλ£Ήμ μ νν λ€, λ°©κΈ μμ±ν μΈμ¦μλ₯Ό μ μ©νμ¬ λ¦¬μ€λλ₯Ό μΆκ°ν©λλ€.
κ·Έλ°λ° μ΄ μνμμλ λλ©μΈ μμ httpλ₯Ό μ μ©ν΄λ ν΅μ μ΄ κ°λ₯ν©λλ€.

HTTP:80μ ν΄λ¦ν λ€ λ¦¬μ€λ κ΄λ¦¬μμ ν΄λΉ 리μ€λλ₯Ό μμ ν©λλ€. κ·Έλ¦¬κ³ λ€μ μλ‘μ΄ λ¦¬μ€λλ₯Ό μΆκ°ν©λλ€.

μ¬μ©μλ‘λΆν° HTTP νλ‘ν μ½μ ν΅ν΄ μμ²μ΄ λ€μ΄μ€λ©΄ HTTPS URLλ‘ λ¦¬λλ μ νκ² λ€λ μ€μ μ λλ€. 리μ€λλ₯Ό μΆκ°ν©λλ€.
μ΄νμ urlμ httpλ‘ ν΅μ μ μλνλ©΄, μλμΌλ‘ httpsλ‘ λ³κ²½λλ κ²μ νμΈν μ μκ² λ©λλ€.
4. μ 리 π―
1. EC2λ₯Ό ν΅ν΄ μλ²μ© μ»΄ν¨ν°λ₯Ό μλ 2. EC2 μΈμ€ν΄μ€μμ ν¨ν€μ§λ€μ μ€μΉ ν μλ² νλ‘μ νΈλ₯Ό githubμμ clone 3. κ°λΉμμμ λλ©μΈμ ꡬ맀 4. Route 53μμ λλ©μΈμ κ΄λ¦¬νκΈ° μν΄ λ μ½λ μμ± ν λ€μ μλ² 4κ°μ μ£Όμλ₯Ό κ°λΉμμ λ±λ‘ 5. api.pullim.io.krμ μ°κ²°νκΈ° μν΄ 'A λ μ½λ' μμ± 6. ELB μ€μ ν μμ± 7. ELBλ‘ μμ²μ λ°κΈ° μν΄ 5λ²μμ μμ±νλ 'A λ μ½λ' μ κ±° 8. Route 53μμ ELBμ λλ©μΈ μ°κ²° 9. HTTPS μ μ©μ μν΄ ACMμμ μΈμ¦μ λ°κΈ 10. ELBμμ 리μ€λ μΆκ°λ₯Ό ν΅ν΄ μΈμ¦μ μ μ©
μΆκ°μ μΌλ‘, ELBλ μ¬μ©νλ κ² μμ²΄λ‘ λΉμ©μ΄ λΆκ³Όλλ€κ³ ν΄μ Nginxμ Certbotμ μ μ©ν μκ°μ λλ€.
λ€μ κΈμμλ Amazon RDSλ‘ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ΄λ¦¬νλ λ°©λ²μ μ 리νκ² μ΅λλ€.
μ΄μ κΈ 1: https://velog.io/@minkwan/Amazon-EC2-%ED%86%BA%EC%95%84%EB%B3%B4%EA%B8%B0
μ΄μ κΈ 2: https://velog.io/@minkwan/NestJS%EB%A1%9C-EC2-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0
More to read
Amazon VPC Architecture μ΄ν΄νκΈ°
μλ‘μ΄ νλ‘μ νΈλ₯Ό κΈ°ννλ©°, κ°λ°μμ 무μμ κ°μ₯ λ¨Όμ κ³ λ―Όν΄μΌ νλμ§ λ€μ λμλ³΄κ² λμμ΅λλ€.νλλ νλ‘ νΈμλκ° λͺ¨λ μ€κ³μ μΆλ°μ μ΄λΌκ³ λ―Ώμμ΅λλ€. μ μ κ° λ¬΄μμ λ³΄κ³ , μ΄λ€ νλ¦μμ 머무λ₯΄κ³ μ΄ννλμ§μ λν μ΄ν΄ μμ΄ μλΉμ€λ₯Ό λ§λ λ€λ 건 λΆκ°λ₯νλ€κ³ μκ°νκΈ°
'μμ¬μ΄νΈ'νλ‘ νΈμλ κ΄μ μΌλ‘ μκ³ λ¦¬μ¦ μ΄ν΄νκΈ°
μ€λλ§μ λ°©λ²λ‘ μ κ΄ν κΈμ μ°κ² λμμ΅λλ€. μ΅κ·Ό μν©μ μ΄λ μ΅λλ€. SSAFYμμλ ν루μ μμ²λ μμ μκ³ λ¦¬μ¦ λ¬Έμ λ€μ κ³Όμ λ‘ μννκ² λ©λλ€. κ·Έ κ³Όμ μμ, 'ꡬνλ ₯'μ΄ λ§€μ° λ¨μ΄μ§λ€λ μκ°μ΄ λ€μμ΅λλ€. μμ ν μ΄λ €μ΄ λ¬Έμ λΌλ©΄ 'μμ¬μ'μ΄λΌλ κ°μ μ‘°μ°¨ λλΌμ§
SubnetVPC μ€κ³μ μμ: IPμ Subnet
λ°λ³΅λλ λ£¨ν΄ μμμ μ»μ μμ κ°μ λ°ν μΌμ, μ΄μ λ κΈ°μ μ μ€ννΈλΌμ λνκΈ° μν κ°μΈ νλ‘μ νΈμ μ°©μνκ³ μ ν©λλ€.μ΄λ² νλ‘μ νΈμ λͺ©νλ λ¨μν ν¬νΈν΄λ¦¬μ€ ꡬμΆμ λμ΄, μ€μ μλΉμ€ μμ€μ λΈλ‘κ·Έ μμ€ν ꡬνκ³Ό λ€κ΅μ΄ μ²λ¦¬ μ μ© λ± μ€λ¬΄μ κ°κΉμ΄ μλμ ν λ¨κ³