본문 바로가기

DEVOPS7

[Serverless With Golang] 4. Golang TABLE OF CONTENTS 1. Why Golang?k8s가 Go로 만들어졌으므로 Cloud환경에서는 Go가 굉장히 많이 쓰이게 된다. 또한 Go를 알면 실제로 k8s 아키텍쳐가 어떻게 돌아가고 동작하는지를 Code Level로도 파악할 수 있다. Golang(구글에서 개발)의 장점을 알아보자.Golang은 일단 Compile Language로서 C언어처럼 Machine Language로 Compile 과정을 통해 컴파일이 되어 Executable file로 생성이 되게 되어 Interpreter 언어에 비해 실행 속도가 빠르다.또한 Golang은 Java와는 다르게 Runtime이 필요없이 Binary file로 곧바로 배포가 되기 때문에 배포 속도도 빠르게 된다. 뿐만 아니라 Golang은 Go.. 2024. 7. 3.
[Serverless With Golang] 3. AWS Services for Serverless Service TABLE OF CONTENTS 1. What is the example of serverless web application?Serverless Framework로 만들어지는 Lamda와 함께 사용되는 AWS 서비스들이 어떻게 구성되는 케이스가 있는지 살펴보자.우선 Web Application을 Serverless로 구현했을 때를 생각해보자.백엔드의 경우 가장 먼저 Router53 즉 Domain이 있는 이 Route53 서비스를 이용해서 User가 이 특정 주소로 접근을 하게 되면 뒤에 있는 API Gateway를 통해서 Lambda가 수행이 되게 되고 이 Lambda는 DynamoDB에서 Data를 가지고 와서 User에게 전달하는 형식으로 구현하게 된다.또한 Frontend같은 경우에는 Cloud.. 2024. 7. 3.
[Serverless With Golang] 2. Serverless Framework TABLE OF CONTENTS  1. Can I use framework to make serverless architecture? 우선 서버리스를 배포하기 위한 Framework가 어떤게 있는지 확인을 해주자. python 진영에서는 Zappa라는 프레임워크를 사용한다.Terraform은 IaC를 하기 위해서 만든 것이고, Serverless 프레임워크를 사용하도록 하자.Serverless Framework는 서버리스 서비스(ex, AWS Lambda)와 연결되는 서비스들(가령, AWS EventBridge나 SNS나 API Gateway)을 구성하고, 각 환경에 맞게 작성한 작성한 코드를 쉽게 배포하고 관리하기 위한 프레임워크이다.Serverless framework의 plugin으로는 python.. 2024. 7. 3.
[Serverless With Golang] 1. Serverless Architecture TABLE OF CONTENTS 1. Which skills do DevOps engineer need? 아래는 DevOps 엔지니어가 반드시 갖추어야 하는 세가지 역량이다. 업무 / 개발 과정에서 불편한 부분을 어떻게 하면 효율적이고 편하게할 자동화할 아이디어를 생각해내서 자동화를 구현까지 하는 능력Third Party SaaS Solution과 연계를 해내는 구조를 만들어서 좀 더 효율적으로 개발할 수 있는 구조를 만드는 능력. 가령, 슬랙이나 모니터링에는 Datadoc 사용DevOps 엔지니어라고 해서 단순히 인프라를 구축하고 모니터링하고 트러블 슈팅하고 배포만 하는게 아니라 자동화를 하기 위해서는 실제로 개발의 영역까지 손댈 수 있어야 한다. 즉, DevOps 엔지니어는 개발이 가장 기본적인 소양.. 2024. 7. 2.
[Cloud Architecture] 3. AWS ECS(Elastic Container Service) TABLE OF CONTENTS 1. What is ECS?ECS가 무엇이냐? 멀티 컨테이너를 오케스트레이션 하도록 하여 Container Cluster를 구성할 수 있게 한다. ECS Cluster 안에는 ECS Container instance가 존재하게 되는데 이것은 EC2 내부에 ECS Container Agent가 설치된 상태로 생성이 된 것이고, 이것은 자동으로 ASG로 묶여서 생성이 되게 되고, 이러한 ECS Container instance 안의 Container들은 Task로 실행이 되고, 이는 Task Definition이라고 하는 설정 값에 의해서 배포가 되게 되고 이러한 Task들은 Service에 의해서 생성이 되고, Service는 ELB와 연동을 해서 외부에서 접근이 가능하도록.. 2024. 6. 26.
[Cloud Architecture] 2. CDN with AWS CloudFormation TABLE OF CONTENTS 1. What is CDN and CloudFront?Cloudfront와 S3를 연동해서 기존에 Cloudfront에 Caching되어있던 것을 invalidation시킨 후 S3를 새롭게 Cloudfront의 Origin으로 둬서 이 S3에서 Contents를 가져와서 제시하도록 해보자일단 S3 Bucket(Public Access 허용)을 만들어두자. 그리고 이 S3 Bucket에 Static Contents(HCJ나 .jpg 같은 것처럼 브라우저에 그냥 바로 뿌려지는 것들)를 업로드 해주자. 그 후 Cloudfront를 생성해주고 Origin은 내가 만든 S3 Bucket으로 해주자. 그리고 Cloudfront에서만 이 S3 버킷에 액세스할 수 있도록 Origin .. 2024. 6. 26.