λ°λΈŒμ½”μŠ€_λ°μ΄ν„°μ—”μ§€λ‹ˆμ–΄λ§

[Week7 AWS ν΄λΌμš°λ“œ] TIL 27일차 - AWS ν΄λΌμš°λ“œ μ•Œμ•„λ³΄κΈ°2

πŸͺ„ν•˜λ£¨πŸͺ„ 2023. 11. 21. 21:44
728x90

μ˜€λŠ˜λ„ μ–΄μ œμ— μ΄μ–΄μ„œ AWS ν΄λΌμš°λ“œ μ„œλΉ„μŠ€μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

1) Amazon Route53

κ°€μš©μ„±, ν™•μž₯성이 λ›°μ–΄λ‚œ DNS(도메인 이름 μ‹œμŠ€ν…œ) μ›Ή μ„œλΉ„μŠ€

도메인 등둝, DNS λΌμš°νŒ…(도메인 → IPμ£Όμ†Œ μ—°κ²°), μƒνƒœν™•μΈμ„ μ‹€ν–‰ν•  수 μžˆλ‹€.

Public host zone(μΈν„°λ„·μƒμ—μ„œ μ ‘κ·Ό κ°€λŠ₯), private host zone(VPC λ‚΄μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯)이 μ‘΄μž¬ν•œλ‹€.

 

μ—¬κΈ°μ„œ ν—·κ°ˆλ¦¬λŠ” 게 IPμ£Όμ†Œμ™€ λ„λ©”μΈμ˜ 차이인데,

 

IPμ£Όμ†Œ(1111.1111.1111.1111)λŠ” λ„€νŠΈμ›Œν¬μ—μ„œ 각 κΈ°κΈ°λ₯Ό μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” κ³ μœ ν•œ μ£Όμ†Œλ‘œ 컴퓨터, μ„œλ²„, λ„€νŠΈμ›Œν¬ κΈ°κΈ° 등에 λŒ€ν•œ 식별을 μœ„ν•΄ ν•„μš”ν•˜λ‹€. DHCP(Dynamic Host Configuration Protocol)λ₯Ό 톡해 μžλ™μœΌλ‘œ ν• λ‹Ήλ˜κ±°λ‚˜, μ •μ μœΌλ‘œ μˆ˜λ™μœΌλ‘œ 섀정될 수 μžˆλ‹€.

 

도메인(abc.example.com)은 μ‚¬μš©μžκ°€ κΈ°μ–΅ν•˜κΈ° μ‰¬μš΄ λ¬Έμžμ—΄λ‘œ, μ›Ή μ‚¬μ΄νŠΈλ‚˜ μ„œλΉ„μŠ€λ₯Ό μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©λœλ‹€. 도메인은 IP μ£Όμ†Œμ™€ μ—°κ²°λ˜μ–΄ 있으며, μ‚¬μš©μžλŠ” 도메인을 톡해 ν•΄λ‹Ή IP μ£Όμ†Œμ— μ•‘μ„ΈμŠ€ ν•  수 μžˆλ‹€. 보톡 도메인 등둝 업체λ₯Ό 톡해 λ“±λ‘λ˜λ©°, λ“±λ‘λœ 도메인은 μ „ 세계 DNS(Domain Name System)에 λ“±λ‘λ˜μ–΄ 도메인을 νŠΉμ • IP μ£Όμ†Œλ‘œ μ—°κ²°ν•œλ‹€.

 

abc.example.com 도메인 쑰회 μ‹œ

1. Local DNS μ„œλ²„μ—μ„œ 도메인 쑰회: ν•΄λ‹Ή 도메인에 λŒ€ν•œ 정보λ₯Ό 가지고 μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό 확인

 

( 둜컬 DNS μ„œλ²„κ°€ 도메인 정보λ₯Ό 가지고 μžˆμ§€ μ•Šκ±°λ‚˜ 만료된 경우 μ΅œμƒμœ„ 도메인 μ„œλ²„λ‘œ 쿼리λ₯Ό 전달)

 

2. Global DNS μ„œλ²„μ—μ„œ 도메인 쑰회: 

  • μ΅œμƒμœ„ 도메인 μ„œλ²„(DNS root name server)λŠ” ν•΄λ‹Ή λ„λ©”μΈμ˜ μ±…μž„ DNS μ„œλ²„(ex. .com λ„λ©”μΈμ˜ TLD μ„œλ²„)의 μ£Όμ†Œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • μ±…μž„ DNS μ„œλ²„λŠ” ν•΄λ‹Ή λ„λ©”μΈμ˜ κΆŒν•œ μžˆλŠ” DNS μ„œλ²„(ex. Amazon Route 53 name server)의 μ£Όμ†Œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • κΆŒν•œ μžˆλŠ” DNS μ„œλ²„λŠ” μ΅œμ’…μ μœΌλ‘œ ν•΄λ‹Ή λ„λ©”μΈμ˜ IP μ£Όμ†Œλ₯Ό 둜컬 DNS μ„œλ²„μ—κ²Œ λ°˜ν™˜

3. Private DNS μ„œλ²„μ—μ„œ 도메인 쑰회: νšŒμ‚¬λ‚˜ 쑰직의 프라이빗 DNS μ„œλ²„μ— λ“±λ‘λ˜μ–΄ μžˆμ„ 경우, 프라이빗 DNS μ„œλ²„μ—λ„ 쑰회

 

4. 도메인을 톡해 ν•΄λ‹Ή IP μ£Όμ†Œμ— μ•‘μ„ΈμŠ€: 둜컬 DNS μ„œλ²„κ°€ ν•΄λ‹Ή λ„λ©”μΈμ˜ IP μ£Όμ†Œλ₯Ό νšλ“ν•˜λ©΄, 이 정보λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λ°˜ν™˜ν•˜μ—¬ μ•‘μ„ΈμŠ€

 

μ‹€μŠ΅

1. 도메인 κ΅¬μž…

업체 등을 μ΄μš©ν•΄ 도메인을 κ΅¬μž…ν•˜λŠ”λ° 이번 μ‹€μŠ΅μ—μ„œλŠ” Amazonμ—μ„œ κ΅¬μž…ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

Route53을 κ²€μƒ‰ν•œ λ’€ 도메인 이름을 μž…λ ₯ν•˜κ³  확인 λ²„νŠΌμ„ λˆ„λ₯Έλ‹€.

 

도메인 등둝

μ‚¬μš©ν•  수 μžˆλŠ” 도메일 선택 ν›„ κ΅¬μž…ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

 

 

2. 도메인 등둝

κ΅¬μž…ν•œ 도메인 이름, μœ ν˜•μ„ μ„ νƒν•˜κ³  ν˜ΈμŠ€νŒ… μ˜μ—­μ„ μƒμ„±ν•œλ‹€.

ν˜ΈμŠ€νŒ… μ˜μ—­ 생성

 

μ„±κ³΅μ μœΌλ‘œ 도메인을 λ“±λ‘ν–ˆλ‹€.

도메인 λ ˆμ½”λ“œ 생성

 

μ™ΈλΆ€μ—μ„œ 도메인을 κ΅¬μž…ν•œ μ‚¬μ΄νŠΈμ—μ„œ λ„€μž„μ„œλ²„μ— 할당받은 κ°’/νŠΈλž˜ν”½ λΌμš°νŒ… λŒ€μƒ(보톡 DNS μ΄λ¦„μ΄λ‚˜ IP μ£Όμ†Œ)을 λ„£λŠ”λ‹€.

 

 

ν•˜μœ„ μ£Όμ†Œ λ“±λ‘ν•˜κΈ° ( www.example.com/auth)

www.example.comμ£Όμ†Œλ₯Ό ν• λ‹Ήλ°›μ•˜μœΌλ©΄ ν•˜μœ„μ˜ μ£Όμ†Œλ„ ν• λ‹Ήλ°›μ•„ 보자.

μœ„μ˜ κ²°κ³Όμ—μ„œ λ ˆμ½”λ“œ 생성을 μ„ νƒν•œλ‹€. 이후 subdomain에 이름과 μ—°κ²°ν•  λŒ€μƒμ„ μ„ νƒν•œλ‹€.

ν•˜μœ„ μ£Όμ†Œ 등둝

 

ν•΄λ‹Ή κΈ°λŠ₯의 경우 보톡 ν”„λŸ°νŠΈ -> μ„œλ²„λ‘œ μ—°κ²°ν•  λ•Œ 퍼블릭 IP5 DNS μ£Όμ†Œκ°€ λ„ˆλ¬΄ κΈΈκΈ° λ•Œλ¬Έμ— www.example.com/api둜 λ“±λ‘ν•΄μ„œ 많이 μ‚¬μš©ν•œλ‹€κ³  μš©ν•œλ‹€κ³  ν•œλ‹€.

 

 

2) DB

  • SQL(RDBMS-쀑볡 μ΅œμ†Œν™”, μ •κ·œν™” 진행): MSsql, oracle, mysql, postsql
  • NOSQL(λΉ„ μ •ν˜• 데이터 베이슀) : MongoDB, graphDB
    • key-value
    • Graph
    • Document
    • Column store

 

1. RDMNS

RDS

AWS의 RDMBSλŠ” RDSκ°€ μžˆλ‹€.

λ³„λ„μ˜ μ„€μΉ˜κ°€ ν•„μš” μ—†κ³  ν΄λΌμš°λ“œμ—μ„œ μ‹€ν–‰ν•˜λŠ” 격리된 λ°μ΄ν„°λ² μ΄μŠ€ ν™˜κ²½μ΄λ‹€.

μžλ™μœΌλ‘œ 백업을 μˆ˜ν–‰ν•΄ μ£Όκ³ , μˆ˜λ™μœΌλ‘œ Snapshot을 생성할 μˆ˜λ„ μžˆλ‹€.

 

RDS → λ°μ΄ν„°λ² μ΄μŠ€ 생성을 톡해 생성할 수 μžˆλ‹€.

Amazon Aurora, MYSQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server의 엔진 μ˜΅μ…˜μ΄ μžˆλ‹€.

DB μ’…λ₯˜

 

μ™ΈλΆ€μ—μ„œ 연결을 ν•˜κ³  싢을 경우 ν•΄λ‹Ή 퍼블릭 μ•‘μ„ΈμŠ€μ— 예λ₯Ό λˆ„λ₯Έλ‹€.

public access

 

자격증λͺ…을 μ„€μ •ν•œλ‹€.

자격증λͺ…μ„€μ •

 

νŒŒλΌλ―Έν„° 그룹을 톡해 timestamp 등을 μ„ΈνŒ…ν•΄ 쀄 수 μžˆλ‹€.

이후, λͺ¨λ“  IPμ—μ„œ 접속할 수 μžˆλ„λ‘ λ³΄μ•ˆκ·Έλ£Ή → ν•΄λ‹Ή DB → μΈλ°”μš΄λ“œ κ·œμΉ™νŽΈμ§‘μ—μ„œ κ·œμΉ™μ„ μΆ”κ°€ν•œλ‹€.

μœ ν˜• : MYSQL

μ†ŒμŠ€ : μ‚¬μš©μž 지정 0.0.0.0/0

(보톡 κ°œλ°œν•˜λŠ” ν™˜κ²½μ— IPλ₯Ό μ§€μ •ν•œλ‹€.)

 

λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ„±κ³΅μ μœΌλ‘œ μƒμ„±λ˜λ©΄ μ•€λ“œν¬μΈνŠΈλ₯Ό μ΄μš©ν•΄μ„œ μ—°κ²°ν•  수 μžˆλ‹€.

 

mysql workbench에 μ—°κ²°ν•˜κΈ°

mysql workbench

 

mysql workbench의 +λ²„νŠΌμ„ λˆ„λ₯Έ λ’€,

Hostname에 endpointλ₯Ό λΆ™μ—¬ λ„£κΈ° ν•˜κ³ , μ•žμ„œ μ„€μ •ν•œ Username, Password에 μ•žμ„œ μ„€μ •ν•œ 자격 증λͺ…을 μž…λ ₯ν•œλ‹€.

cf) Private DB둜 μƒμ„±ν–ˆμ„ 경우 SSL λ“±μ˜ λ‹€λ₯Έ μš”μ†Œλ₯Ό λ”°λ‘œ μ„€μ •ν•΄ 두어야 ν•œλ‹€.

 

2. NoSql

Document DB와 Dynamic DBκ°€ μžˆλ‹€.

 

Document DB

Document 기반 λ°μ΄ν„°λ² μ΄μŠ€λ‘œ MongoDB API와 연계가 λœλ‹€.

λ³΅μ œλ³Έμ„ μ΅œλŒ€ 15κ°œκΉŒμ§€ μΆ”κ°€ν•΄ 읽기 μš©λŸ‰μ„ 늘릴 수 있고, 6개의 데이터 볡사본을 3개의 AZ(Amazon κ°€μš©μ˜μ—­)에 λ³΅μ œν•˜κΈ° λ•Œλ¬Έμ— κ°€μš©μ„±(μ„œλΉ„μŠ€ μ€‘λ‹¨μ΄λ‚˜ μž₯μ•  없이 μž‘λ™)이 λ†’λ‹€. 

기본적으둜 Json 데이터λ₯Ό μ œκ³΅ν•œλ‹€.

 

Table λŒ€μ‹  Collection을, Row λŒ€μ‹  Documentλ₯Ό, Column λŒ€μ‹  Field의 λͺ…칭을 μ‚¬μš©ν•œλ‹€.

ν΄λŸ¬μŠ€ν„° → ν•΄λ‹Ή DB → μ—°κ²° ν•­λͺ©μ„ 톡해 μ–΄λ–»κ²Œ μ—°κ²°ν•˜λŠ”μ§€ μ•Œ 수 μžˆλ‹€.

 

Dynamo DB

key-value 기반 λ°μ΄ν„°λ² μ΄μŠ€λ‘œ Autoscaling(μžλ™ μš©λŸ‰ 늘리기/쀄이기)을 μ œκ³΅ν•œλ‹€.

Tableκ³Ό, Row λŒ€μ‹  Itemsλ₯Ό, Column λŒ€μ‹  Partition Key, SortKeyλ₯Ό μ΄μš©ν•œλ‹€.

μ‘°νšŒμ—λŠ” μŠ€μΊ”κ³Ό 쿼리 방식이 μžˆλ‹€.

단, νŠΉμ • μ§€μ—­μ—μ„œλ§Œ μ‚¬μš©κ°€λŠ₯ν•˜κ³ , DocumentDB에 λΉ„ν•΄ λΉ„μ‹Ό νŽΈμ΄λ‹€.

 

 

3) Certification Manager (HTTPS μ‚¬μš©ν•˜κΈ°)

μ‚¬μš©ν•  TLS/SSL μΈμ¦μ„œλ₯Ό AWS κ³„μ •μœΌλ‘œ μš”μ²­ν•˜κ±°λ‚˜ κ°€μ Έμ˜¨λ‹€.

DNS λ˜λŠ” 이메일 검증을 톡해 μš”μ²­λœ μΈμ¦μ„œμ˜ 

SSL μΈμ¦μ„œλž€?

κ³΅κ°œν‚€μ™€ κ°œμΈν‚€ μŒμ„ 가지고 μžˆλ‹€. 

 

μΈμ¦μ„œ μ‹ κ·œ λ°œκΈ‰

μΈμ¦μ„œ → μΈμ¦μ„œ μš”μ²­ → 퍼블릭 μΈμ¦μ„œ μš”μ²­

μ•žμ„œ κ΅¬λ§€ν•œ 도메인, μ„œλΈŒλ„λ©”μΈμ— λŒ€ν•΄ μΈμ¦μ„œλ₯Ό λ°œκΈ‰λ°›λŠ”λ‹€.

ꢌμž₯ν•˜λŠ” 방식은 DNS 검증 방식이닀.

 

μ™ΈλΆ€ SSL μΈμ¦μ„œ μ΄μš©ν•˜κΈ°

AWS certificate Manager → μΈμ¦μ„œ → μΈμ¦μ„œ κ°€μ Έμ˜€κΈ°λ₯Ό 톡해 등둝할 수 μžˆλ‹€.

μ΄λ ‡κ²Œ λ°œκΈ‰λ°›μ€ SSL μΈμ¦μ„œλŠ” HTTPS μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λ €λ©΄ EC2-λ‘œλ“œλ°ΈλŸ°μ„œμ—μ„œ HTTPSλ₯Ό μ„ νƒν•΄μ„œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

 

 

4) CloudFront

CDN(μ½˜ν…μΈ  전솑 λ„€νŠΈμ›Œν¬) μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€

 

데이터 μ‚¬μš©λŸ‰μ΄ λ§Žμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ›Ή νŽ˜μ΄μ§€ λ‘œλ“œ 속도λ₯Ό λ†’μ΄λŠ” μƒν˜Έ μ—°κ²°λœ λ„€νŠΈμ›Œν¬μ΄λ‹€.

 

ν”„λŸ°νŠΈλ‘œ κ΅¬μ„±λœ S3에 λŒ€ν•΄ Cloud Frontκ°€ μž‘μ„±μ„ ν•΄μ„œ CDNμ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•  수 μžˆλ‹€.

μ‚¬μš©μž → DNS → CDN → S3 μˆœμ„œμ΄λ‹€.

 

λŒ€κΈ°μ‹œκ°„ κ°μ†Œ/λ³΄μ•ˆ ν–₯상/λΉ„μš©μ ˆκ°/μ‚¬μš©μž μ •μ˜

 

CloudFront → 배포 → create

μ•žμ„œ λ§Œλ“  도메인을 μ„ νƒν•˜κ³  κΈ°λ³Έ μΊμ‹œ λ™μž‘μ„ μ„ νƒν•œλ‹€.

WAF : IP 차단 κΈ°λŠ₯(νŠΉμ • IPλŠ” 접속을 ν•˜μ§€ λͺ»ν•˜κ²Œ)

 

 

5) ELB(Elastic Load Balancing)

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ§€μ›ν•˜λŠ” λ¦¬μ†ŒμŠ€ 전체에 λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ κ· λ“±ν•˜κ²Œ λ°°ν¬ν•˜λŠ” 방법

  • L4 λ‘œλ“œ λ°ΈλŸ°μ„œ(λ„€νŠΈμ›Œν¬)
  • L7 λ‘œλ“œ λ°ΈλŸ°μ„œ(μ• ν”Œλ¦¬μΌ€μ΄μ…˜)

 

1. λŒ€μƒκ·Έλ£Ήμ— λŒ€μƒμ„ 등둝

EC2 → λŒ€μƒ κ·Έλ£Ή

2. λŒ€μƒμ„ λ‘œλ“œλ°ΈλŸ°μ„œμ™€ μ—°κ²°

EC2 → λ‘œλ“œλ°ΈλŸ°μ„œ

728x90