
C/C++ κΈ°λ°μ νλ‘μ νΈλ₯Ό λΉλνλλ° μμ΄ λ³΄ν΅ cmake μ make λ₯Ό μ΄μ©ν΄μ λΉλλ₯Ό νκ² λ©λλ€. κ°λ΅νκ² cmake λ CMakeList.txt λ₯Ό κΈ°λ°μΌλ‘ Makefile λ₯Ό λ§λ€μ΄μ£Όκ³ , make λ Makefile λ₯Ό ν΅ν΄ νλ‘μ νΈλ₯Ό λΉλν©λλ€. cmake λ λΉλλ₯Ό μν νλ‘μΈμ€μ΄κ³ , make λ μ€μ λ‘ λΉλλ₯Ό ν΄μ£Όλ νλ‘μΈμ€μΈ μ μ΄μ£ . κ·Έλ°λ° C/C++ νλ‘μ νΈλ₯Ό λΉλνλλ°, λΉλ μκ°μ΄ λλ΅ 1μκ° μ λ μλͺ¨λ©λλ€. λ무 μ€λκ±Έλ €μ.. μ§νν runner λ 2GB Memory μ μΈμ€ν΄μ€μ λλ€. λΉλ μκ°μ λ¨μΆμν€κ³ μΆμ΅λλ€. λΉλ μκ°μ λ¨μΆμν€κΈ° μν λ°©λ²μΌλ‘ κ°μ₯ λ¨Όμ λ μ€λ₯΄λ κ²μ λ°λ‘ μΊμ± μ λλ€. λ§€λ² κ°μ΄ νμΌμ λΉλνμ§ λ§κ³ , λ°λ³΅λλ λΉλ νμΌμ μΊμ±ν΄λμΌλ©΄ μκ°μ΄..

μ§λ κΈμμ Cloudflare μμ μμ±ν λλ©μΈκ³Ό Let's Encrypt λ₯Ό μ΄μ©ν΄μ TLS λ₯Ό httpbin μ μ μ©νμμ΅λλ€. μ΄λ²μλ Cloudflare λ³΄λ€ λ λμ€μ μΈ Route53 μμ μμ±ν λλ©μΈμλ TLS λ₯Ό μ μ©ν΄λ³΄κ³ μ ν©λλ€. Route53 μμ ꡬ맀ν λλ©μΈμ λν΄μλ AWS ACM μ μ΄μ©ν΄μ 무λ£λ‘ TLS λ₯Ό λ°κΈλ°μ μ μμ΅λλ€. κ·Έλ¦¬κ³ λ°κΈλ°μ TLS λ₯Ό AWS ALB μ λ°λ‘ μ μ©νκ² λλ©΄ μμ£Ό μ½κ² TLS ν΅μ μ΄ κ°λ₯ν©λλ€. κ·Έλμ ALB μ Istio λ₯Ό μ΄μ©νκ² λλ©΄ λλ΅ μλ κ·Έλ¦Όκ³Ό κ°μ£ . νμ§λ§ μΈλΆλ§ TLS λ₯Ό ν΅μ μ΄ κ°λ₯νλ―λ‘ λ΄λΆμμ TLS ν΅μ μ΄ λΆκ°λ₯ν©λλ€. ACM μ ν΅ν΄ λλ©μΈμ λν Cert λ₯Ό λ°κΈλ°μ μ μλλ°, μ΄ κ°μ λ€μ΄λ°μμ μ¬μ©λΆκ°λ₯..

μ΄ κΈμ TLS μ λν κΈ°μ΄μ μΈ κ°λ μ΄ νμν©λλ€. μ΅μν HTTPS κ° μ΄λ»κ² λμνλ©°, CA, CSR, tls.cert λ±κ³Ό κ°μ κ²μ΄ 무μμΈμ§ μμμΌ ν©λλ€. λ―Έλ PC μμ μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν°λ₯Ό ꡬμ±νμ¬ μ΄κ²μ κ² ν΄λ³΄κ³ μλλ°, λ νλ λ§μμ 걸리λ κ²μ΄ μμμ΅λλ€. λ°λ‘ λλ©μΈκ³Ό TLS μ λλ€! λλ©μΈ κ°μ κ²½μ° λ§₯ /etc/host μ μΆκ°ν΄μ μ¬μ©νκ³ μμκ³ , TLS κ° μ μ©λμ§ μλ€λ³΄λ λ μ£Όμ μν¨μ λ¬κ³ μμμ£ . AWS ALB λ₯Ό μ¬μ©νλ©΄ Route53 κ³Ό ACM μ ν΅ν΄μ TLS μ μ©νκΈ° μ½μ§λ§, AWS μμ΄ TLS λ₯Ό μ μ©νλ €λ©΄ κ²°κ΅ TLS λ₯Ό ꡬ맀ν΄μΌ ν©λλ€. TLS λ λ³΄ν΅ μ λ£μΈλ°, Let's Ecrypt λ 무λ£λ‘ TLS μ μ 곡ν΄μ£ΌκΈ° λλ¬Έμ μ΄λ² κΈμμλ λ‘컬 νκ²½μμ ..

μ§λ κΈμμ Istio mTLS μ λν΄ μμ보μκ³ , μ μ©λ ν΄λ΄€μ΅λλ€. λ Kiali λ₯Ό ν΅ν΄μ μ€μ mTLS κ° μ μ© λμλ μ§λ μμλ΄€μ£ . Kiali μμ mTLS κ° μ μ©λλ€κ³ μμ΄μ½μΌλ‘ νμλ₯Ό ν΄μ£ΌκΈ΄ νλλ° μ λμΌλ‘ μ§μ μνΈνκ° λλμ§ νμΈνκ³ μΆμ΅λλ€. κ·Έλμ μ΄λ² κΈμμλ Istio 곡μ λ¬Έμμμ μ 곡ν΄μ£Όλ μμ μ tcpdump λ₯Ό μ΄μ©ν΄μ νλ² νμΈν΄λ³΄μ£ ! λ μΈ λλμ½λ~ λ€μ΄κ°κΈ° μμ μ£Όμν μ μ΄ μμ΅λλ€! istio-proxy container μμ tcpdump λ₯Ό μ¬μ©νλ €λ©΄ sudo λ₯Ό κΆνμ κ°μ§ μ μλλ‘ privilege λ₯Ό true λ‘ μ£Όμ΄μΌ ν©λλ€. λ°λΌμ μλ λͺ λ Ήμ΄λ₯Ό ν΅ν΄ istio λ₯Ό μ€μΉν©λλ€. $ istioctl install --set values.global...

EKS μ λ°°ν¬λ νλλ€μ AWS μ μ κ·ΌνκΈ° μν λ°©λ²μΌλ‘λ ν¬κ² 2κ°μ§κ° μμ΅λλ€. EC2 Instance Profile IAM Role for Service Account EC2 Instance Profile μ μ컀 λ Έλμκ² AWS μ μ κ·Όν μ μλ μ격 μ¦λͺ μ ν΄μ£Όμ£ . μ ν΄μ§ EC2 μΈμ€ν΄μ€μ μ ν΄μ§ μ ν리μΌμ΄μ μ λ°°ν¬νλ€λ©΄ μ λ°©λ²μ μμ£Ό μ’μ λ°©λ²μ΄μμ. νμ§λ§, μΏ λ²λ€ν°μ€ νκ²½μ λ°°ν¬λλ νλλ€μ νλμ νΉμ ν λ Έλμ λ°°ν¬λμ§ μμμ. NodeAffinity μ Label μ ν΅ν΄μ λ Έλλ₯Ό μ ννκΈ΄ νμ§λ§ λμ¨νκ² κ·Έλ£Ήνμ νμ£ . λ§μ½ μΏ λ²λ€ν°μ€ νκ²½μμ App μ΄ Replica 3 κ°λ‘ λ°°ν¬λκ³ , Hard PodAffinity λ₯Ό μ£Όμ΄ νλλ₯Ό μ λΆ λ€λ₯Έ λ Έλμ λ°°ν¬λκ²λ νλ€λ©΄, λ λ€..

μΏ λ²λ€ν°μ€μμ 컨νΌκ·Έλ§΅κ³Ό μν¬λ¦Ώμ ν΅ν΄ νκ²½λ³μλ νμΌμ μ λ¬ν΄μ€ μ μμ΅λλ€. νΉν λ―Όκ°ν μ λ³΄μΈ κ²½μ° μν¬λ¦Ώμ ν΅ν΄ λ°°ν¬νκ² λ©λλ€. νμ§λ§ μν¬λ¦Ώμ λ¬Έμ κ° νλ μμ΅λλ€. μ΄λ¦μ μν¬λ¦ΏμΈλ°.. μΈμ½λ©λ§ ν΄μ€λΏ μ ν μν¬λ¦Ώμ€λ½μ§ λͺ»ν©λλ€. λ°λΌμ μν¬λ¦Ώμ μ¬μ©νλ Helm Chart μ μμ±ν ν, κΉνλΈμ μ¬λ¦¬κ² λλ€λ©΄ κ²°κ΅ κ·Έ μν¬λ¦Ώ κ°μ κ·Έλλ‘ λ ΈμΆλ©λλ€. νλΌμ΄λΉ λ ν¬μ§ν λ¦¬λΌ ν΄λ, λ―Όκ°ν μ 보λ κΉ νλΈμ μ¬λ¦¬λ©΄ μλλ€κ³ , κΉν μ체μμλ κ°μ΄λν©λλ€ κ·ΈλΌ μ΄λ° μν¬λ¦Ώμ μ΄λ»κ² μν¬λ¦Ώμ€λ½κ² μ¬μ©ν μ μμκΉμ? λ€νν μ΄λ―Έ μ’μ μ루μ μ΄ μ‘΄μ¬ν©λλ€. λ°λ‘ HashiCorp μ Vault μ λλ€. Vault λ Secret Manager μμ€ν μΌλ‘ μ΄λ¦ κ·Έλλ‘ μν¬λ¦Ώμ κ΄λ¦¬ν΄μ£Όλ μμ€ν μ λλ€...

μ€ν 리μ§μ κ΄λ ¨λ μΏ λ²λ€ν°μ€ 리μμ€μλ StorageClass, PersistentVolume μ΄ μμ΅λλ€. λ³΄ν΅ λμ μΈ μ€ν 리μ§λ μνλ€λ©΄ StorageClass (μ΄ν SC) λ₯Ό, μ μ μΈ μ€ν 리μ§λ₯Ό μνλ€λ©΄ PersistentVolume (μ΄ν PV) μ μ¬μ©ν©λλ€. ννΈ, νλμμ μ€ν λ¦¬μ§ μ°κ²°μ νλ €λ©΄ PersistentVolumeClaim (μ΄ν PVC) μ μ΄μ©ν΄μ SC λ PV λ₯Ό Bound ν΄μ£Όμ΄μΌ ν©λλ€. AWS EBS λ₯Ό μ¬μ©νκ² λ ν λ°, EBS λ§μΌλ‘λ νκ³κ° μμ΅λλ€. λ°λ‘ νλμ EBS λ λ€μ€ μΈμ€ν΄μ€ μ°κ²°μ΄ λμ§ μλλ€λ μ μ΄μ£ . μλ₯Ό λ€μ΄ EBS μ λ°μ΄ν°λ₯Ό μ μ₯νλ μ ν리μΌμ΄μ μ Deployment Replica 2 λ‘ λ°°ν¬νλ€κ³ κ°μ ν΄λ³΄μ£ . κ·Έλ¦¬κ³ νλλ€μ μλ‘ λ€λ₯Έ μ..

2023λ 07μ 17μΌ κΈ°μ€μΌλ‘ μμ±λμμΌλ©°, μν λ²μ μ SAA-C03 μ λλ€. λ²μ μ μ΄ λλ©΄ λ¬λΌμ§ μ μμΌλ μ½κΈ° μ κΌ λ²μ νμΈ λΆνλ립λλ€. 첫 AWS μ격μ¦μ νλνμ΅λλ€. μμ μΆλ°μ SAA λ‘ νλ κ²μ΄ κ΅λ£°μ΄μ£ ! μλλ AWS μ격 μ’ λ₯μ λλ€! λμ΄λλ κΈ°μ΄ > ASSOCIATE > PROFESSIONAL > μ λ¬Έ λΆμΌ μμ λλ€. SAA λ ASSOCIATE λ 벨μ Solutions Architect μ λλ€. κ·ΈλΌ λ°λ‘ νμ 곡μ νκ² μ΅λλ€! Tips 첫λ²μ§Έ λ€λ₯Έ μ격μ¦κ³Ό λ§μ°¬κ°μ§λ‘ λΉμ©μ΄ κ½€ λΉμλλ€. λ 벨λ§λ€ λΉμ©μ μμ΄νμ§λ§ ASSOCIATE λ 150$ μ λλ€. μνλ‘ μΉλ©΄ λλ΅ 20λ§μμ λλ€. μΏ λ²λ€ν°μ€μ λΉνλ©΄ μΈκΈ΄ νμ§λ§.. μ¬μ ν λΆλ΄μ€λ¬μ΄ κ°κ²©μ λλ€..!! (μΏ λ²λ€ν°μ€..

μΏ λ²λ€ν°μ€ μμλ λ€μν μλΉμ€λ€μ΄ μ‘΄μ¬ν©λλ€. μ΄ μλΉμ€λ€μ΄ νλνλ μ겨λλ€ λ³΄λ©΄ μ΄λ μ λͺ λ°±κ°, λͺ μ²κ°μ μλΉμ€λ€μ΄ μ‘΄μ¬νκ² λ©λλ€. μ΄λ° μλΉμ€λ€μ μ½κ² κ΄λ¦¬νκΈ° μν΄μ μ΄μ€ν°μ€λ₯Ό μ¬μ©ν©λλ€. μ΄μ€ν°μ€λ μλΉμ€ λ©μ¬ μλΉμ€ λΌλ νμ΄νμ κ±Έλ§κ² λ€μν κΈ°λ₯λ€μ μ 곡ν΄μ£Όλλ° μ΄λ² κΈμμλ κ·Έ μ€ ν΅μ¬ κΈ°λ₯ μ€ νλμΈ mTLS (Mutual TLS) μ λν΄ μμλ³΄κ³ μ ν©λλ€. λ¨Όμ mTLS κ° λ¬΄μμΈμ§ μμ보기 μ μ μ νμνμ§ λΆν° μμλ³΄μ£ . μ΄μ€ν°μ€ μΈκ·Έλ μ€ κ²μ΄νΈμ¨μ΄λ₯Ό ν΅ν΄ μ°λ¦¬λ μΏ λ²λ€ν°μ€ λ΄λΆμ μ κ·Όμ΄ κ°λ₯ν©λλ€. ν΄λΌμ΄μΈνΈκ° λ°μ΄ν°λ₯Ό μ μ‘ν λ μνΈνλ₯Ό ν ν μ μ‘νκ² λλλ° (HTTPS), λ¬Έμ λ μΈκ·Έλ μ€ κ²μ΄νΈμ¨μ΄ κΉμ§λ§ λ°μ΄ν°κ° μνΈνκ° λκ³ μΏ λ²λ€ν°μ€ λ΄λΆμμλ HTTPS κ°..

Karpenter λ AWS μμ μ§ν μ€μΈ μ€ν μμ€ νλ‘μ νΈλ‘ μΏ λ²λ€ν°μ€μμ AWS ASG λ³΄λ€ ν μ°¨μ λμ μμ€μ μ€μΌμΌλ§μ μ 곡ν΄μ€λλ€. Karpenter κ° λ¬΄μμΈμ§ λͺ¨λ₯΄κ² λ€λ©΄ μ¬κΈ°λ₯Ό μ°Έκ³ ! Karpenter λ₯Ό μ΄μ©νλ©΄ CPU μΈμ€ν΄μ€ λΏλ§ μλλΌ GPU μΈμ€ν΄μ€ λν μ λ§μ λ§ μ λμ μΌλ‘ νλ‘λΉμ λ ν μ μμ΅λλ€. Karpenter λ₯Ό μ°λ©΄ μΈ μλ‘ "μ μ΄κ±° μ§μ§ μ§±μΈλ°?" λΌλ μκ°μ΄ λ§μ΄ λλλ€. μμ£Ό μ μ©ν νλ‘μ νΈμΈκ±° κ°μμ. CPU μΈμ€ν΄μ€ κ°μ κ²½μ°μλ Karpenter λ§ μ€μΉνλ©΄ νλ‘λΉμ λ, λνλ‘λΉμ λ λͺ¨λ μ λμν©λλ€. νμ§λ§ GPU μΈμ€ν΄μ€ κ²½μ° νλ‘λΉμ λμ μλμ§λ§, λνλ‘λΉμ λμ λμνμ§ μμμ. μ²μμλ μμ§ λ©μ΄μ λ²μ μ΄λΌμ GPU κ΄λ ¨ν κΈ°λ₯μ΄ κ°λ°μ΄ μλ ..

μ§λ κΈμμλ Action Controller Runner (μ΄ν ARC) λ₯Ό μ¬μ©ν λ AWS EFS λ₯Ό λ§μ΄νΈν΄μ νΉμ κ²½λ‘μ build μ νμν λ°μ΄ν°λ₯Ό μΊμ±νμ΅λλ€. κ·Όλ° λ§μ½ AWS EFS μ κ°μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ μ€ν 리μ§κ° μλ€λ©΄ μ΄λ¨κΉμ? λ€νν μΆ©λΆν μ’μ λμ± μμ΄ μμ΅λλ€. λ°λ‘ Github Action μμ μ 곡ν΄μ£Όλ Action Cache μ΄λΌλ λ μμ λλ€. Github Action μ μ¬μ©νλ€λ©΄ μλ§ μ΄λ―Έ λ€λ€ μ μμ€ μλ μκ² κ΅°μ. Action Cache λ μ’μμ 3.7k λ₯Ό λ°μ λ§νΌ λ§μ μ¬λ?μ λ°κ³ μλ μ‘μ μ€μ νλμ λλ€. λνλ¨ΌνΈλ₯Ό 보면 κ½€ μμΈνκ² μ€λͺ μ΄ λμ΄μμ΅λλ€. μμ μ½λλ μ‘΄μ¬νλ©°, κ° νμν with μ λν΄μλ μΉμ νκ² μ€λͺ ν΄μ£Όκ³ μμ΅λλ€...

Istio (μ΄ν μ΄μ€ν°μ€) λ μΏ λ²λ€ν°μ€μ λνμ μΈ μλΉμ€ λ©μ¬ μμ€μ λλ€. λΏλ§ μλλΌ μ΄μ€ν°μ€λ μΈκ·Έλ μ€ μ»¨νΈλ‘€λ¬λ μ 곡ν΄μ£ΌκΈ° λλ¬Έμ Nginx μ κ°μ λ³λμ μΈκ·Έλ μ€ μ»¨νΈλ‘€λ¬κ° νμ μμ΄μ. μ΄λ² κΈμμ Istio μ ν΅μ¬ μμμΈ IngressGateway μ TLS λ₯Ό μ μ©μμΌ λ³΄κ³ μ ν©λλ€! Istio λ₯Ό μ€λͺ νλ κΈμ΄ μλκΈ° λλ¬Έμ Gateway, VirtualService μ κ°μ 리μμ€μ λν μ€λͺ μ νμ§ μκ² μ΅λλ€. κ·ΈλΌ λ μΈ λλμ½λ~ μ€μ΅ νκ²½μ μλμ κ°μμ. μΏ λ²λ€ν°μ€ v1.26.2 μ΄μ€ν°μ€ v1.17.2 곡μ λ¬Έμμ λμμλ μμ λ λΆνμν λ΄μ©μ΄ λ§μμ λ± νμν λΆλΆλ§ μ€μ΅νλ €κ³ ν©λλ€. λ§μ½ λ μμΈν μ λ³΄κ° κΆκΈνλ€λ©΄ μ¬κΈ°λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ. TLS λ₯Ό μ μ© ν κ²μ΄κΈ° λλ¬Έ..

λ§€μ°λ§€μ°λ§€μ° μ€μ! Karpenter v0.32 λ²μ λΆν° 리μμ€ μ΄λ¦λ€μ΄ λ³κ²½λμ΄ μ°Έκ³ λ°λλλ€. κ°λ μ λκ°μ΅λλ€. (ex. Provisioners -> NodePools) Karpenter μ κ°λ μ μκ³ μΆλ€λ©΄ μ¬κΈ° μ°Έκ³ ! Karpenter λ₯Ό νλ©΄ νμλ‘ μ λ§ μ μ©ν μ€νμμ€μΈκ±° κ°μμ. ASG λ₯Ό λμ΄μ ν¨μ¬ ν¨μ¨μ μ΄κ³ μ λμ μΌλ‘ λ Έλμ νλλ₯Ό κ΄λ¦¬ν μ μκ² ν΄μ£Όκ±°λ μ. μ€μΌμ€λ§ μμ€ν μ κ°λ°νκ³ μλλ°, Karpenter κ° μμλ€λ©΄ λ§μ΄ νλ€μμ κ²λλ€... μ΄λ² κΈμμλ Karpenter μ Deprovisioning μ λν΄ μμλ³΄λ €κ³ ν©λλ€. κ°μ₯ ν΅μ¬μ΄λΌκ³ λ³Ό μ μμ£ . Deprovisioning κ΄λ ¨ μ΅μ μ ν¬κ² 2κ°μ§λ‘ λλ μ μμ΄μ. - ttlSecondsAfterEmpty ..

μΏ λ²λ€ν°μ€μμ λ―Όκ°ν λ°μ΄ν°λ μν¬λ¦Ώμ ν΅ν΄ κ΄λ¦¬λ©λλ€. μμ±λ μν¬λ¦Ώμ mount fs λλ env var μ ν΅ν΄μ νλμ μν¬λ¦Ώ λ°μ΄ν°λ₯Ό λκ²¨μ€ μ μμ£ . μν¬λ¦Ώμ μμ±ν ν, kubectl create secret generic secret1 --from-literal user=admin kubectl create secret generic secret2 --from-literal user=12345678 μλμ κ°μ΄ yaml μ μμ±ν΄μ μ¬μ©ν μ μμ£ . apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: pod name: pod spec: containers: - image: nginx name: pod resourc..

μΏ λ²λ€ν°μ€μμ μ€ν μ€μΈ νλμ λ΄μ©μ μμ νλ €λ©΄ kubectl exec -it pod -- ... λ₯Ό ν΅ν΄ μμ ν©λλ€. λ§μ½ nginx λ₯Ό μ€ν μ€μΈ νλκ° μκ³ , nginx μ index.html μ μμ νκ³ μΆλ€λ©΄, μλμ κ°μ΄ μ§νμ ν κ²μ λλ€. # pod λΌλ μ΄λ¦μ κ°μ§ νλλ₯Ό nginx μ΄λ―Έμ§λ₯Ό μ΄μ©ν΄μ μμ± kubectl run pod --image nginx # bash λ₯Ό ν΅ν΄ 컨ν μ΄λ λ΄λΆ μ μ kubectl exec -it pod -- bash # index.html μ κ²μ find ./ -type f -iname "*.html" # μμΉλ₯Ό μ°Ύμ ν vim μ ν΅ν΄ μμ vim ./usr/share/nginx/html/index.html index.html μ I'm kingbj..