반응형

aws 5

세번째 글 - 패키지 만들기

애플리케이션이 해야 할 일이 많아지고 규모가 커지게 되면 코드를 분리해야 하는 경우가 생깁니다. 우리가 지금까지 만들었던 것처럼 main.go라는 파일 안에 모든 로직들을 넣을 순 없게 됩니다. 그래서 패키지화라는 과정을 통해 애플리케이션의 로직을 비슷한 역할을 하는 코드들끼리 모아 둡니다. 파이썬에서는 디렉터리를 만들고 __init__. py라는 파일을 만들어서 패키지화를 할 수 있습니다. 비슷한 방법으로 Go 언어 역시 패키지화를 할 수 있습니다. 하지만 Go 언어에서의 패키지화는 개인적으로는 파이썬 보다 훨씬 편하다고 생각합니다. 그리고 Go 언어가 가지는 여러 가지 특징 중 하나가 손쉬운 패키지화라고도 생각합니다. 이번 글에서는 우리가 앞에서 다뤘던 애플리케이션을 패키지화해서 관리하는 방법에 대해..

IT/GoLang 2021.10.04

두번째 글 - 함수 사용하기

오늘은 Go 언어의 함수에 대해 살펴보겠습니다. 사실 언어를 공부하게 되면 제일 먼저 학습하게 되는 것이 변수 선언 같은 것일 텐데요, 여기서는 조금 다르게 함수를 먼저 살펴보겠습니다. 지난번에 만들었던 Hello Workd on API Gateway의 코드(https://fallwalker.tistory.com/4) 를 바탕으로 함수를 만들어서 여러 개의 Path를 처리할 수 있도록 해보겠습니다. URI 별로 분기 하기 우리가 만든 Go 애플리케이션은 람다로 실행되고 앞단의 HTTP 요청은 API Gateway가 처리해 주기 때문에 Header와 Path와 같은 HTTP와 관련된 데이터들은 인자로 받을 수 있습니다. handler() 함수에서 인자로 받고 있는 events.APIGatewayProxyR..

IT/GoLang 2021.09.25

패킷 덤프를 통해 확인하는 ALB와 NLB의 차이점 (2) - NLB 동작 원리

지난번 글에서는 패킷 덤프를 통해 ALB의 동작 원리에 대해 살펴봤습니다. 이번 글에서는 패킷 덤프를 통해 살펴보면서 NLB는 ALB와 어떻게 다르게 동작하는지 그 동작 원리에 대해서 살펴보겠습니다. NLB 생성하기 NLB도 ALB와 똑같이 80 포트로 받아서 8080 포트로 넘겨주도록 만들어 보겠습니다. 이번에도 테라폼을 이용해서 만들어 보겠습니다. NLB를 만들 때는 SecurityGroup을 지정하지 않는다는 것을 눈여겨 봐주시기 바랍니다. resource "aws_lb" "nlb" { name = "hello-jib-nlb" subnets = ["subnet-182c2954", "subnet-28fe2f43", "subnet-bb0230e7", "subnet-c2bf3db9"] internal =..

IT/DevOps 2021.08.08

AutoScalingGroup의 Scheduled action 활용하기

AWS 환경에서는 AutoScalingGroup은 통해서 간편하게 서버의 대수를 유지할 수 있습니다. 트래픽이 늘어나거나 줄어듦에 따라 EC2 인스턴스를 직접 늘리거나 줄이지 않아도 desired, min, max의 수를 변경하는 것만으로도 EC2 인스턴스의 대수를 조절할 수 있기 때문입니다. 만약 AutoScalingGroup이 없었다면, EC2 인스턴스를 하나하나 런칭 시키고 터미네이트 시켜야 했겠죠. 게다가 AutoScalingGroup에는 다양한 조건을 바탕으로 대수를 컨트롤할 수도 있습니다. CPU 사용량이 어느 정도 이상이 되거나, 네트워크 트래픽이 특정 수준 이상이 되면 서버를 늘리거나 줄이도록 설정해서 트래픽에 대한 대응을 자동으로 할 수 있게 도와줍니다. 그중에서도 오늘 살펴볼 Sched..

IT/DevOps 2021.08.06

패킷 덤프를 통해 확인하는 ALB와 NLB의 차이점 (1) - ALB 동작 원리

AWS에는 크게 세 가지 종류의 로드밸런서가 있습니다. CLB라 불리는 Classic LB, ALB라 불리는 Application LB, NLB라 불리는 Network LB 이렇게 세 가지 이죠. 그중 CLB는 사실상 deprecated 된 LB로 요즘엔 거의 사용하지 않습니다. ALB와 NLB가 용도에 맞게 각각 사용되고 있죠. 그래서 다들 궁금해합니다. 대체 ALB와 NLB의 차이점은 무엇인지, 그리고 각각 언제 사용해야 하는 건지. 그래서인지 구글링을 해보면 이 두 가지 LB의 차이점에 대해서 설명하는 글들을 많이 볼 수 있습니다. ALB와 NLB의 특징, 그리고 각각의 LB를 언제 사용하는 게 좋을지에 대한 자료들이 많이 존재하죠. 그래서 이번 글에서는 조금 색다르게 다들 알고 있는 그 차이점 말..

IT/DevOps 2021.08.05
반응형