• toc {:toc}

μ›Ήμ–΄μ…ˆλΈ”λ¦¬ μ‹œμŠ€ν…œμΈν„°νŽ˜μ΄μŠ€ wasm

  • Docker Services

  • μ„œλΉ„μŠ€λŠ” 생산적 μΈ‘λ©΄μ—μ„œμ˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ§ν•œλ‹€.

  • ν•˜μ§€λ§Œ 이미지가 λ™μž‘ν•˜λŠ” 방식을 μ½”λ“œν™”ν•œλ‹€.

    • μ‚¬μš©ν•  ν¬νŠΈκ°€ 무엇인지
    • μ–Όλ§ˆλ‚˜ λ§Žμ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ§Œλ“€μ–΄ μ‚¬μš©ν•  것인지
  • Docker Compose

  • 2개 μ΄μƒμ˜ μ»¨ν…Œμ΄λ„ˆ(μ„œλΉ„μŠ€)λ₯Ό ν•˜λ‚˜μ˜ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ²˜λŸΌ κ΅¬λ™ν•˜λ„λ‘ ν•œλ‹€.

  • 이미지λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄, 톡신을 μœ„ν•΄ μ—°κ²°ν•˜κΈ° μœ„ν•΄ 포트, ip μ£Όμ†Œκ°€ ν•„μš”ν•˜λ‹€.

  • λΉ„λ””μ˜€ 곡유 μ‚¬μ΄νŠΈλ₯Ό κ΅¬μΆ•ν•œλ‹€κ³  κ°€μ •

    • μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ λ°μ΄ν„°λ² μ΄μŠ€ μ„œλΉ„μŠ€
    • λΉ„λ””μ˜€ μ••μΆ•, λ³€ν™˜μ„ μœ„ν•œ μ„œλΉ„μŠ€
    • ν”„λ‘ νŠΈ μ—”λ“œ μ„œλΉ„μŠ€ λ“±λ“±
  • yaml νŒŒμΌμ„ μ‚¬μš©ν•œλ‹€.

  • docker-compose λͺ…λ Ή

    • docker-compose up : λ©€ν‹° μ»¨ν…Œμ΄λ„ˆ μ„œλΉ„μŠ€λ₯Ό μ‹œμž‘
    • docker-compose down : λͺ¨λ“  μ„œλΉ„μŠ€ 쀑지
    • docker-compose scale : νŠΉμ • μ»¨ν…Œμ΄λ„ˆκ°€ μ„±λŠ₯이 λΆ€μ‘±ν•˜λ‹€ μƒκ°λ˜λ©΄ scale을 톡해 μ„ νƒλœ μ„œλΉ„μŠ€μ— 더 λ§Žμ€ μžμ›μ„ ν• λ‹Ήν•œλ‹€.
  • docker compose file λ§Œλ“€κΈ°

    • μž‘μ—… 폴더 λ§Œλ“€κΈ°
    • μž‘μ—… ν΄λ”λ‘œ 경둜 이동
    • docker-compose.yml 파일 생성
    • νŒŒμΌμ„ μ±„μšΈ λ•Œ 탭을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • 두 개 μ΄μƒμ˜ 이미지λ₯Ό λ„μšΈ 수 μžˆλ‹€.
  • 3κ°€μ§€ λͺ¨λ‘ 넣을 수 μžˆλ‹€.

    • CPU
    • Disk Storage
    • Network
  • YAML 파일

    • Indentation-based둜 ꡬ성
    • 일반적인 λͺ¨λ“  νƒœμŠ€ν¬μ— 잘 μž‘λ™ν•œλ‹€.
    • 데이터 λ‚˜μ—΄ν™” μ–Έμ–΄
  • YAML μ‚¬μš© μΌ€μ΄μŠ€

    • configuration files
    • Log file
    • cross-language data sharing
    • λ³΅μž‘ν•œ 자료ꡬ쑰 디버깅
  • DNS μ„œλ²„

image

  • μ»¨ν…Œμ΄λ„ˆ μ„œλΉ„μŠ€ μ•ˆμ— DNS(Domain Name Service) μ„œλ²„λ₯Ό λ§Œλ“€μ–΄μ€€λ‹€.

    • docker-composeλ₯Ό 톡해 같이 μ‹€ν–‰λ˜κ³  μžˆλŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 이름을 μ„€μ •ν•œλ‹€.
    • μ΄λ¦„λ§ŒμœΌλ‘œ 접속이 κ°€λŠ₯ν•˜λ‹€.
  • μ»¨ν…Œμ΄λ„ˆ μ„œλΉ„μŠ€μ— λŒ€ν•΄ 이름을 μ§€μ •ν•  수 μžˆλ‹€.

  • worker1 / 2 둜 μ§€μ •ν•œ 경우 curl http://worker1:80 κ³Ό 같이 이름을 톡해 접속할 수 μžˆλ‹€.

  • curl : Client URL

  • λ‹€μ–‘ν•œ ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜λŠ” 데이터λ₯Ό μ „μ†‘ν•˜κΈ° μœ„ν•œ 라이브러리, μ»€λ©˜λ“œ 라인 도ꡬλ₯Ό μ œκ³΅ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ νŠΈμ΄λ‹€.

  • μ„œλ²„ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 띄웠을 경우 μ„œλ²„μ— 데이터λ₯Ό μš”μ²­ν•˜κ³  λ°›μ•„μ˜€λŠ” http ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•  수 μžˆλ‹€.

  • PAT (Port Address Transport)

  • Private ν¬νŠΈμ™€ Public 포트λ₯Ό μ—°κ²°ν•΄ 톡신이 κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“ λ‹€.

  • μ»¨ν…Œμ΄λ„ˆλŠ” ν˜ΈμŠ€νŠΈμ™€ λ–¨μ–΄μ Έ 독립적이기 λ•Œλ¬Έμ— λ‚΄λΆ€μ—μ„œ 80번 포트λ₯Ό μ—°κ²°ν•˜λ”λΌλ„ 호슀트 μž…μž₯μ—μ„œλŠ” 인식할 수 μ—†λ‹€. λ•Œλ¬Έμ— μ™ΈλΆ€μ™€μ˜ 톡신을 μœ„ν•΄ private λ„€νŠΈμ›Œν¬μ™€ public λ„€νŠΈμ›Œν¬λ₯Ό 포트λ₯Ό μ§€μ •ν•΄ μ—°κ²°ν•œλ‹€.