λ°˜μ‘ν˜•

Devops/AWS 23

[AWS] API Gatewayλž€? (AWS Lambda 와 AWS API Gatewayλ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” 이유)

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” AWS API Gateway 에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. μš”κ·Όλž˜ API Gateway λ₯Ό 처음 접해봐 κ°œλ…μ„ ν•œλ²ˆ 더 κ³΅λΆ€ν•˜κ³  κ°€μ•Ό 쒋을 것 κ°™μ•„ μ •λ¦¬ν•΄λ΄…λ‹ˆλ‹€. API Gatewayλž€ AWS API GatewayλŠ” AWS의 κ΄€λ¦¬ν˜• μ„œλΉ„μŠ€ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžκ°€ κ°„λ‹¨ν•˜κ²Œ API (Application Programming Interface)λ₯Ό 생성, 관리할 수 있게 ν•΄μ£ΌλŠ” 도ꡬ라고 μƒκ°ν•˜λ©΄ λ©λ‹ˆλ‹€. API Gateway κΈ°λŠ₯ ν΄λΌμ΄μ–ΈνŠΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λ°±μ—”λ“œ μ„œλΉ„μŠ€ κ°„μ˜ 톡신을 κ΄€λ¦¬ν•˜κ³ , HTTP λ˜λŠ” RESTful APIλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. 인증 및 κΆŒν•œ λΆ€μ—¬, μš”μ²­ 및 응닡 λ³€ν™˜, μœ νš¨μ„± 검사 λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. API Gateway μ‚¬μš© ..

Devops/AWS 2023.05.16

[AWS] DynamoDBλž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ΄λ²ˆμ— μΉœκ΅¬λ“€κ³Ό ν•¨κ»˜ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜κ²Œ λ˜μ—ˆλŠ”λ°μš”, AWS DynamoDB λ₯Ό μ‚¬μš©ν•˜κΈ°λ‘œ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•˜κΈ°μ— μ•žμ„œ DynamoDB에 λŒ€ν•΄ κ°„λ‹¨νžˆ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. DynamoDB DynamoDBλŠ” Amazon Web Servicesμ—μ„œ μ œκ³΅ν•˜λŠ” ν˜ΈμŠ€νŒ… NoSQL DBμž…λ‹ˆλ‹€. μŠ€μΌ€μΌμ΄ 컀지더라도 reliable performance a managed experience, crypto libraries μ—…λ°μ΄νŠΈ ν•˜κΈ° μœ„ν•΄ μ„œλ²„μ— SSH둜 μ—°κ²°ν•  ν•„μš”κ°€ μ—†μŒ a small, μ‹¬ν”Œν•œ API allowing for μ‹¬ν”Œν•œ key-value access as well as more advanced query patterns. DynamoDB Features NOSQL 데이터..

Devops/AWS 2023.04.03

[AWS] ElasticBeanstalk λΉˆμŠ€ν†‘ μ‚­μ œ 였λ₯˜ ν•΄κ²° 방법 Stack deletion failed: The following resource(s) failed to delete: [AWSEBSecurityGroup]

Intro μ•ˆλ…•ν•˜μ„Έμš”. AWS ElasticBeanstalk λΉˆμŠ€ν†‘μ„ μ‚­μ œν•˜λ˜ 도쀑 μ•„λž˜μ™€ 같은 였λ₯˜ λ©”μ‹œμ§€κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Stack deletion failed: The following resource(s) failed to delete: [AWSEBSecurityGroup] Why? AWSEBSecurityGroup 이 μ‚­μ œκ°€ μ•ˆλ˜μ–΄ λ°œμƒν•œ λ¬Έμ œμž…λ‹ˆλ‹€. μ €λŠ” Security Group μ—μ„œ λΉˆμŠ€ν†‘μ—μ„œ μƒμ„±λœ λ³΄μ•ˆκ·Έλ£Ήμ„ μˆ˜μ •ν•œ 적이 μžˆλŠ”λ°μš”, μˆ˜μ •ν•œ λ³΄μ•ˆκ·Έλ£Ήμ΄ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— λ‹€μŒκ³Ό 같은 μ—λŸ¬κ°€ λ°œμƒν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. How to solve the problem λ³΄μ•ˆκ·Έλ£Ήμ—μ„œ μˆ˜μ •ν•œ 내역을 μ‚­μ œν›„, λ‹€μ‹œ Beanstalk ν™˜κ²½ μ’…λ£Œλ₯Ό μ‹€ν–‰ν•˜λ‹ˆ, 였λ₯˜ 없이 ν™˜κ²½ μ‚­μ œκ°€ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ˜ μ—λŸ¬κ°€ λ°œμƒ..

Devops/AWS 2023.03.08

[AWS] AWS IP λŒ€μ—­ ν™•μΈν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” AWS IP λŒ€μ—­μ„ ν™•μΈν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. AWS IP λŒ€μ—­ AWS λŠ” IP λŒ€μ—­μ„ json ν˜•νƒœλ‘œ μ œκ³΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. (https://ip-ranges.amazonaws.com/ip-ranges.json) { "syncToken": "1675316588", "createDate": "2023-02-02-05-43-08", "prefixes": [ { "ip_prefix": "3.2.34.0/26", "region": "af-south-1", "service": "AMAZON", "network_border_group": "af-south-1" }, { "ip_prefix": "3.5.140.0/22", "region": "ap-northeast..

Devops/AWS 2023.02.02

[AWS] S3λž€? S3 κ΅¬μ„±μš”μ†Œμ™€ 버킷(Bucket), 폴더(Folder) 그리고 객체(Object) 에 λŒ€ν•΄ μ•Œμ•„λ³΄μž

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이 글은 μƒν™œμ½”λ”©μ˜ AWS μ•„λ§ˆμ‘΄ μ›Ή μ„œλΉ„μŠ€(Amazon Web Services) 책을 λ°”νƒ•μœΌλ‘œ μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. 일전에 S3 κ΄€λ ¨ ν¬μŠ€νŒ…μ„ ν•œ 적이 μžˆλŠ”λ°μš”, λ‚΄μš©μ΄ λΆ€μ‹€ν•˜κΈ°λ„ ν•˜κ³  ν•œλ²ˆ 더 μ΄ν•΄ν•˜κΈ° μœ„ν•΄ λ‹€μ‹œ μž‘μ„±ν•΄λ³΄λ € ν•©λ‹ˆλ‹€. ☺ S3λž€? S3λŠ” Simple Storage Service의 μ€„μž„λ§μž…λ‹ˆλ‹€. κ°„λ‹¨ν•œ μ €μž₯ μ„œλΉ„μŠ€λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λΉ„μœ ν•˜μžλ©΄, S3λŠ” ν•˜λ“œλ””μŠ€ν¬λ‚˜ SSD 와 같은 μ €μž₯ μž₯μΉ˜μž…λ‹ˆλ‹€. S3λŠ” ν•˜λ‚˜μ˜ S3 region λ‚΄ μ΅œμ†Œ 3개의 물리적 κ°€μš©μ˜μ—­(AZ)에 걸쳐 μ—¬λŸ¬ λ””λ°”μ΄μŠ€μ— 객체λ₯Ό 쀑볡 μ €μž₯ν•©λ‹ˆλ‹€. 즉 객체 μ—…λ‘œλ“œ μ‹œ ν•˜λ‚˜μ˜ 컴퓨터에 μœ„μΉ˜ν•˜λŠ” 게 μ•„λ‹ˆλΌ μ—¬λŸ¬ λŒ€μ˜ 컴퓨터에 μ΅œμ†Œ 3개 이상 λ³΅μ œλœλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„±μ„ 내ꡬ성이라고 ν•©λ‹ˆλ‹€. ..

Devops/AWS 2023.01.31

[AWS] CloudFront + S3 + git actions 배포 였λ₯˜ Invalidate CloudFront Cache

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” CloudFront + S3 + git actions 배포 였λ₯˜μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. κΈ°μ‘΄ μ„œλΉ„μŠ€μ— λŒ€ν•œ μˆ˜μ • μš”μ²­μ‚¬ν•­ 업무가 듀어와, ν•΄λ‹Ή 업무 처리 ν›„ λ‹€μ‹œ git actions 을 μ‚¬μš©ν•΄ 개발 μ„œλ²„ 배포λ₯Ό μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. 참고둜 개발 ν™˜κ²½μ€ " CloudFront + S3 + git actions" μž…λ‹ˆλ‹€. 그런데..! κ°‘μžκΈ° μ•„λž˜ git actions deploy.yml μ—μ„œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. κΈ°μ‘΄μ—λŠ” 본적이 μ—†λ˜ 였λ₯˜λΌ λ°”λ‘œ ꡬ글링을 ν•΄λ΄€μŠ΅λ‹ˆλ‹€. - name: Invalidate CloudFront Cache run: aws cloudfront create-invalidation --distribution-id ${{secrets.DEV_DISTRIBUT..

Devops/AWS 2023.01.31

[AWS] 지역(Region)κ³Ό κ°€μš©κ΅¬μ—­(avaliability zone)μ΄λž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이 글은 μƒν™œμ½”λ”©μ˜ AWS κ°•μ’Œλ₯Ό λ°”νƒ•μœΌλ‘œ μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. 지역(Region) 지역(Region)μ΄λž€ AWSκ°€ κ°–κ³  μžˆλŠ” 컴퓨터가 어디에 μœ„μΉ˜ν•΄ μžˆλŠ”κ°€λ₯Ό λœ»ν•©λ‹ˆλ‹€. μ‹€μ œλ‘œ μ†ŒλΉ„μžκ°€ μœ„μΉ˜ν•˜κ³  μžˆλŠ” κ³³κ³Ό, 컴퓨터가 λ©€λ©΄ λ©€μˆ˜λ‘ λ„€νŠΈμ›Œν¬λŠ” λŠλ €μ§€κΈ° λ•Œλ¬Έμ— 지역은 μ€‘μš”ν•œ μ΄μŠˆμž…λ‹ˆλ‹€. 이 μš©μ–΄λŠ” μ€‘μš”ν•˜κΈ° λ•Œλ¬Έμ— 잘 μ•Œμ•„λ‘λ©΄ μ’‹μŠ΅λ‹ˆλ‹€. 제일 λ¨Όμ € 생긴 곳은 뢁미 (ex. μΊ˜λ¦¬ν¬λ‹ˆμ•„ λ“±) μž…λ‹ˆλ‹€. 2015λ…„ 12μ›” 말 κΈ°μ€€ ν•œκ΅­ 지역은 μƒμ„±λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. (μ‹ κΈ°ν•˜λ„€μš”! πŸ’­ ν•œκ΅­ 리전이 μ—†μ—ˆλ˜ μ‹œκΈ°λ„ μžˆμ—ˆκ΅°μš” , feat. 23/01/29 λ…„ ν˜„ κΈ€ μž‘μ„± μ‹œμ ) 거리가 λ©€λ©΄ λ©€μˆ˜λ‘ κ²½μœ μ§€κ°€ 많이 생기기 λ•Œλ¬Έμ— 느렀질 κ°€λŠ₯성이 λ†ν›„ν•©λ‹ˆλ‹€. μ›Ήμ‚¬μ΄νŠΈμ— 주둜 μ ‘μ†ν•˜λŠ” μ‚¬μš©μžλ“€μ΄ 어디에 μœ„μΉ˜ν•˜κ³  ..

Devops/AWS 2023.01.30

[AWS] μ•„λ§ˆμ‘΄ μ›Ή μ„œλΉ„μŠ€(Amazon Web Services)와 ν΄λΌμš°λ“œ 그리고 IAM(Identity & Access Management)λž€ λ¬΄μ—‡μΌκΉŒ?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이 글은 μƒν™œμ½”λ”©μ˜ AWS μ•„λ§ˆμ‘΄ μ›Ή μ„œλΉ„μŠ€(Amazon Web Services)와 ν΄λΌμš°λ“œ κ°•μ’Œλ₯Ό λ°”νƒ•μœΌλ‘œ μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. Amazon Web Services and Cloud μ²˜λ¦¬ν•΄μ•Ό ν•  데이터가 μžˆλ‹€κ³  ν•©μ‹œλ‹€. ν•˜μ§€λ§Œ κ·Έ μž‘μ—…μ΄ λ³΅μž‘ν•΄μ„œ λ‚΄κ°€ κ°–κ³  μžˆλŠ” μ»΄ν“¨ν„°λ‘œλŠ” 1λ…„ κ±Έλ¦°λ‹€κ³  ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ €ν¬λŠ” 1λ…„ λ™μ•ˆ 기닀릴 수 μ—†μŠ΅λ‹ˆλ‹€. 뢄석해야 ν•  데이터λ₯Ό ν΄λΌμš°λ“œ μ»΄ν“¨ν„°λ‘œ μ „μ†‘ν•˜κ³ , κ·Έ μ»΄ν“¨ν„°μ—μ„œ μ‹€μ œλ‘œ μ²˜λ¦¬ν•˜κ³  κ·Έ 처리된 κ²°κ³Όλ₯Ό 인터넷을 톡해 λ‹€μš΄λ°›μ•„μ„œ μ‚¬μš©ν•˜λŠ” 것이 κ·Έ 사둀 쀑에 ν•˜λ‚˜λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ»΄ν“¨νŒ… νŒŒμ›Œκ°€ ν­νŒ”μ μœΌλ‘œ λ“±μž₯ν•˜κ³ , μ—¬λŸ¬κ°€μ§€ λ§₯λ½μ—μ„œ ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ΄λΌλŠ” μš©μ–΄κ°€ μƒκ²¨λ‚¬μŠ΅λ‹ˆλ‹€. ν΄λΌμš°λ“œ μ»΄ν“¨νŒ…μ˜ 핡심적인 μ•„μ΄λ””μ–΄λŠ” 인터넷이고, 인터넷에 μ—°κ²°λœ κ±°λŒ€..

Devops/AWS 2023.01.29

[AWS] S3 버킷 생성 A conflicting conditional operation is currently in progress against this resource 였λ₯˜

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ΄λ²ˆμ‹œκ°„μ—λŠ” S3 버킷 μ‚­μ œ ν›„, λ‹€μ‹œ μƒμ„±ν–ˆμ„ λ•Œ 마주친 였λ₯˜μ— λŒ€ν•΄ 말해보렀 ν•©λ‹ˆλ‹€. A conflicting conditional operation is currently in progress against this resource Why? ν•΄λ‹Ή 였λ₯˜ λ©”μ„Έμ§€λ‘œ ꡬ글링을 ν•΄λ³΄λ‹ˆ, μ΄μœ κ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 버킷 μ‚­μ œ μ‹œμ— AWS S3λŠ” ν•΄λ‹Ή 버킷 이름을 μ‚­μ œ waiting line에 λ„£λŠ”λ‹€κ³  ν•©λ‹ˆλ‹€. AWS S3λŠ” λŒ€κ·œλͺ¨ λΆ„μ‚° μ‹œμŠ€ν…œμ΄μ—¬μ„œ 버킷 μ‚­μ œμ™€ 같은 변경사항이 AWS region μ—μ„œλŠ” λ‹€μ†Œ μ‹œκ°„μ΄ κ±Έλ¦°λ‹€κ³  ν•˜λ„€μš”. 즉 μ™„μ „νžˆ ν•΄λ‹Ή 버킷을 μ‚­μ œν•˜κΈ° μ „κΉŒμ§€λŠ” λ™μΌν•œ μ΄λ¦„μœΌλ‘œ 버킷을 μ‚¬μš©ν•  수 μ—†λ‹€κ³  ν•©λ‹ˆλ‹€. How to solve the problem 해결방법은 κΈ°λ‹€λ¦Όμž…λ‹ˆλ‹€. μ €..

Devops/AWS 2023.01.29

[AWS] github action + Elastic Beanstalk + Kotlin SpringBoot 배포 cp: cannot stat './build/libs/*.jar': No such file or directory 였λ₯˜

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ €λŠ” Kotlin SprinBoot 3.0 으둜 github action을 톡해 AWS의 Elastic Beanstalkλ₯Ό μ‚¬μš©ν•΄ API Server κ°œλ°œν™˜κ²½ ꡬ성해야 ν–ˆμŠ΅λ‹ˆλ‹€. Elastic Beanstalk μ„ΈνŒ…κ³Ό, githb action κ΄€λ ¨ 섀정을 λͺ¨λ‘ 마치고, github push λ₯Ό 톡해 배포가 정상 μž‘λ™ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈ ν•˜λ˜ 도쀑 μ•„λž˜μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. cp: cannot stat './build/libs/*.jar': No such file or directory Why? λ°”λ‘œ ν•΄λ‹Ή μ—λŸ¬λ₯Ό ꡬ글링 ν•΄λ΄€μŠ΅λ‹ˆλ‹€. ꡬ글링을 ν•΄λ³΄λ‹ˆ, μŠ€ν”„λ§ λΆ€νŠΈ 2.5.0 이상 버전은 λ”°λ‘œ μ„€μ • 없이 Gradle λΉŒλ“œν•  경우, BootJar와 Jar κ°€ λͺ¨λ‘ μƒμ„±λ˜μ–΄ build/li..

Devops/AWS 2023.01.28
λ°˜μ‘ν˜•