GCP - gksrlfw/study GitHub Wiki
Cloud Function
ꡬ쑰
aws lambda ꡬ쑰μ λλ€.
Front Env Invoke
λκΈ°, λΉλκΈ° νΈμΆμ λͺ¨λ κ΄μ₯ν©λλ€.
Counting Service
μ¬μ©μκ° μΌλ§λ λ§μ API μμ²μ νλμ§ λͺ¨λν°λ§νκ³ κ²½μ°μ λ°λΌμ μλΉμ€λ₯Ό μ ννλ κΈ°λ₯μ μ 곡ν©λλ€.
Worker
κ³ κ° ν¨μ(μ½λ)κ° μμ νκ² μ€νλλ μ€μ 컨ν μ΄λ νκ²½μΌλ‘, OS, Host system λ±μ κ°κ³ μλ νΈμ€νΈμμ λμν©λλ€. λ 립λμ΄μλ 곡κ°μ λλ€.
Worker Manager
μ€μ 컨ν μ΄λμ μνλ₯Ό κ΄λ¦¬νκ³ API μμ²μ κ°μ©κ°λ₯ν 컨ν μ΄λλ‘ μ€κ³ν©λλ€.
μ컀 λ§€λμ κ° λμμ μ€μ§νλ©΄ μ΄λ ν μμ²λ μ컀μκ² κ° μ μμΌλ―λ‘ μ¬λ¬κ°μ μ컀 λ§€λμ κ° μ‘΄μ¬ν μ μμ΅λλ€.
Placement Service
Worker μ sandbox ꡬμ±μ μμ νμ©λ₯ μ΄ λκ³ κ³ κ° μλΉμ€ μν₯μ΄ μλλ‘ κ΄λ¦¬ν©λλ€.
κΈ°λ₯
Load balancing

κ°μ© μμμΌλ‘ νΈλν½μ λΆμ°ν΄μ€λλ€.
Auto scaling

μ»΄ν¨ν μμμ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ°μν΄ νμ₯ λ° μΆμλ₯Ό μλννμ¬ κ΄λ¦¬ν΄μ€λλ€.
worker manager κ° μ§μ worker μκ² μ€κ³νλκ² μλ, μ΄λ worker λ₯Ό μ°λκ² ν¨μ¨μ μΈμ§ placement μ λ¬Όμ΄λ΄ λλ€.
Handling failures

Availability zone μ λ¨μ΄μ Έμλ μ΄λ ν λ°μ΄ν°μΌν°λΌκ³ μκ°ν μ μμ΅λλ€. region μμ μ΄λ € κ°μ©μμμ΄ μ‘΄μ¬ν©λλ€.
μ컀λ νΈμ€νΈμμ λμνλλ°, ν΄λΉ νΈμ€νΈμ νλμ¨μ΄κ° κ³ μ₯λλλΌλ κ°μ©μμμ μλ λ€λ₯Έ νΈμ€νΈμμ λμν μ μλλ‘ ν μ μμ΅λλ€.
λν κ°μ©μμμ λ¬Έμ κ° μκΈ°λλΌλ λ€λ₯Έ κ°μ©μμμμ λμν μ μμ΅λλ€.
Isolation
κ³ κ°μ μν¬λ‘λ(ν¨μ = μ½λ)λ νμ λ 립λ νκ²½μμ μ€νλ©λλ€.
μ΄μ
μ΄λ²€νΈ μ¬μλ μ΄μ
pub/sub μ ν΅ν΄ νΈλ¦¬κ±°λλ cloud function μ΄ μ¬μλλλ νμμ΄ λ°μνμ΅λλ€. (cloud function μ¬μλ μ μ± λ° timeout, pub/sub ack μ νμκ° νμΈ νμ)
νλ‘κ·Έλλ°μμ λ©±λ±μ±μ μ΄ν리μΌμ΄μ μ΄ λ°λ³΅λλ μ΄λ²€νΈλ₯Ό μλ³νκ³ μ€λ³΅, λ°μ΄ν° μμ€ λ±μ λ°©μ§νλ κΈ°λ₯μ λλ€. μ΄λ²€νΈμ κ³ μ κ°μ μλ³νκ³ , ν΄λΉ μ΄λ²€νΈκ° λ€μ λ€μ΄μμ λ ν¨μλ₯Ό μ’ λ£ν΄μ£Όμ΄ ν΄κ²°ν μ μμ΅λλ€. (https://aws.amazon.com/ko/premiumsupport/knowledge-center/lambda-function-idempotent/)
cloud function μμλ μ΄λ²€νΈ λ©νλ°μ΄ν° μ 보λ₯Ό κ°μ§κ³ μλ context κ°μ²΄λ₯Ό μ 곡ν©λλ€.
{
"eventId": "2924206311060957",
"timestamp": "2021-08-25T15:12:22.251Z",
"eventType": "google.pubsub.topic.publish",
"resource": {
"service": "pubsub.googleapis.com",
"name": "projects/projectName/topics/topicName",
"type": "type.googleapis.com/google.pubsub.v1.PubsubMessage"
}
}
λ§λ€μ΄μ Έμλ cloud function μ λμμ μ€νλ μ μλ μ΅λ μΈμ€ν΄μ€μ μλ 1000κ° μ λλ€. ν΄λΉ function μ db λ₯Ό μ°κ²°νμ¬ μ΄λ―Έ μ€νλ μ΄λ²€νΈμΈμ§ μλ³νλ κ²μ λΆλ΄μ€λ¬μ΄ μμ μ λλ€. μλ λκ°μ§ λ°©λ²μ μλν΄λ³Ό μ μμ΅λλ€.
λ°©λ² 1. cloud storage μ νλκ·Έλ₯Ό λμ΄ κ°μ μ΄λ²€νΈμ λν΄ μ¬μλλ₯Ό λ°©μ§ν©λλ€.
λ°©λ² 2. μΌλ° μλ²μ κ΄λ ¨ API λ₯Ό λ§λ€μ΄ νΈμΆνλ μμΌλ‘ μ΄λ²€νΈ ID λ₯Ό κ²μ¦ν©λλ€.