전체 글
Apache Flink에 대해..
이번에는 회사에서 Flink를 구축하고 있어서 정리했던 내용을 조금씩 다시 블로그에 정리해보면서 공부하려고 합니다!! 그리고 슬프게도 한국에는 Flink에 대한 자료가 그렇게 많이 없더라구요.. 저 뿐만 아니라 많은 분들이 공유를 했으면 좋겠네요 ㅎㅎ Apache Flink는 Bounded나 Unbounded stream data를 처리하기 위한 상태 기반의 오픈 소스 분산 엔진입니다. 여기서 stream은 물 흐르듯 데이터가 흘러가기 의미를 가지고 있고 실시간 데이터 처리에서는 계속해서 데이터가 들어오기 때문에 stream이라는 단어를 쓰고 있다고 합니다! stream 데이터를 처리하는 데이터 처리 엔진으로 Flink 이외에도 Spark 같은 것도 있고 Kafka Streams으로도 실시간 데이터 처리..
2023 5회 OIDC 후기..
오늘은 이전 방학 때 했던 OIDC 참가했던 후기를 남겨보려고 합니다 ! https://www.oidc.co.kr/ 제5회 오픈 인프라 개발 경진대회 (OIDC 2023) 🎬 하이라이트 영상 www.oidc.co.kr 처음에 OIDC에 참가하려고 했던 이유는 Cloud Native 기술을 실제 프로젝트에 적용해보고 싶어서 참여하게 됐어요 :) 대회는 4월 3일부터 접수를 신청해서 그 전까지 서류를 내는 기간이었는데 저희는 이 기간 동안에 관련 기술들을 온보딩하고 서류 작성을 준비했어요! 저희 같은 경우는 지정주제를 선택하게 됐는데 관련해서 프로젝트 아이디어를 내는게 쉬운 일이 아니었습니다ㅠㅠ😭 아무래도 학생 입장에선 경험이 없다보니 클라우드 네이티브 기반해서 좋은 아이디어를 떠올리기도 어려웠고 생각을 해..
Go Fiber 간단한 예제
이번에는 go를 이용해서 웹서버를 만들어보려구 한다! go에는 기본적으로 `net/http`라는 내장 패키지가 존재하고 github의 여러 개의 웹프레임워크가 존재하는데 이쪽에 가면 go web framework를 잘 정리해놔서 참고하면 좋을 것 같다! 아래는 간단하게 net/http를 이용해서 http req를 처리하는 코드이다. `http.HandleFunc`을 이용해서 새로운 핸들러를 등록할 수 있고 `ListenAndServe`를 통해 몇번 포트로 listen할지 정할 수 있다. `http.Request`는 request와 파라미터에 대한 정보를 담고 있다. GET 요청에 대한 파라미터를 받으려면 `r.URL.Query().Get("test")`를 이용하면 되고 POST에 대한 데이터를 가져올 경..
CI / CD 에 대해서..
오늘은 CI / CD가 무엇을 의미하고 tool은 어떤 것들이 있는지 알아보고자 한다!! 일단 CI / CD란 일련의 소스 코드 빌드부터 배포까지의 자동화 과정을 통틀어서 말한다. CI(Continuos Integration)은 지속적 통합을 의미하며 build의 자동화, 유닛 및 통합 테스트의 과정을 말하고 CD(Continuos Delivery)는 지속적 배포를 의미하며 build된 코드를 release하고 production으로 deploy하는 과정을 말한다. 현재 CNCF에 등록된 CI/CD를 위한 tool들이 jenkins, github actions, argoCD등 여러 종류의 도구들이 존재한다. 그 중에서 오늘은 github action이랑 aws의 code series에 대해 알아보고자 한..
AWS Lambda 내용 정리
AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스입니다! 보통 이벤트 기반 서버리스 컴퓨팅 서비스를 언급할 때 람다를 언급하게 되는 것 같아요 AWS Lambda를 사용하면 애플리케이션 코드를 실행하기 위해 인프라를 프로비저닝하거나 관리할 필요가 없기 때문에 코드를 더욱 빠르게 배포하고, 확장성 있는 애플리케이션을 빌드하고, 더욱 높은 가용성을 제공하는 데 집중할 수 있어요 그리고 람다는 사용한 만큼만 비용을 지불하고 함수 요청 수와 코드를 실행하는 데 걸리는 기간에 따라 요금이 청구돼서 만약 서버를 계속 띄워놓는 상황보다 필요할 때마다 처리하는 인프라가 필요하다면 람다가 비용적으로도 선택이 합리적이어서 어플리케이션을 람다로 구성하는 경우도 있더라..
AUSG 6기 후기!!
AUSG 6기로 활동을 시작하고 벌써 1년이 다 되어가서야 후기를 남기게 됐다! 🥹 https://ausg.me/ AUSG AUSG는 대학생 개발자를 위한 클라우드 커뮤니티입니다. ausg.me 처음엔 Devops 엔지니어를 꿈꾸며 클라우드를 다같이 공부하려고 동아리를 찾다가 우연히 AUSG라는 커뮤니티를 알게 됐다.. 군대에 있었던 시절이라서 고민을 많이했었는데 진짜 다행히도 전역이 앞당겨져서 지원이 가능할 것 같아서 지원을 했다,, 근데 운좋게도 합격이 됐고 🫢 6기로 활동을 시작하게 되었다!!!!! 하지만 군대 때문에 OT는 참여하지 못했다,....,.,ㅠㅠㅠㅠ 그래도 나중에 스터디를 하거나 커뮤니티 데이를 통해 사람들이랑 많이 친해지게 되었던 것 같구 지금은 적응을 잘해서 활동을 꾸준히 하고 있다..
Go 맛보기
관심 있었던 컨테이너 기술들이 go라는 언어로 이루어져있고 devops 쪽을 공부하다보니까 관련 기술들이 go로 이루어지는것들이 좀 있어서 go라는 언어에 대해 평소 배우고 싶기도 했고 그래서 golang을 시작!! 일단 언어에 대한 기본적인 지식을 쌓기 위해서 해당 사이트들 참고를 했어요 https://gobyexample.com/ http://golang.site/Go/Basic https://gowebexamples.com/ go build를 하면 exe 실행파일로 만들어주고 go run하면 실행!! 예전에 수업에서 듣기론 go가 다른 python이나 js와 다르게 pip npm으로 패키지를 설치하는걸 go라는 커맨드로 다 할 수 있다고 했던 것 같아요,, go를 실습해보기 위해선 goland를 이..
카오스 엔지니어링이란 ?
AWSKRUG devops 소모임과 AWS Summit Seoul에서 정영진님이 발표하신 카오스 엔지니어링에 대해 흥미가 생겨 카오스 엔지니어링에 대해 알아보기 위해 조사를 했다! 먼저 카오스 엔지니어링이란 production의 오류에 대한 서비스를 강화하여 일관된 안정성을 얻을 수 있도록 도와주는 방법론이다. 즉, 분산 시스템에서 예측치 못한 상황에도 견딜 수 있도록 실험을 통해 신뢰성을 확보하는 방법론이라고 볼 수 있다. 정영진님께서는 AWS EKS 환경에서 오토스케일링을 위해 Karpenter를 쓰는 경우 노드 그룹이 죽거나 DB 연결에 문제가 생기거나 네트워크가 끊기는 등 장애 상황을 미리 검증하기 위해 카오스 엔지니어링을 적용하셨고 테스트로는 AWS Fault Injection Service를 ..
테라폼이란?
[ https://github.com/hashicorp/terraform](https://github.com/hashicorp/terraform) [ https://developer.hashicorp.com/terraform/intro](https://developer.hashicorp.com/terraform/intro) 테라폼은 HashiCorp에서 만든 코드형 인프라 도구인데 이걸 이용해서 클라우드 및 온프레미스 리소스를 모두 정의할 수 있고 버전화나 재사용 및 공유도 가능하다 테라폼을 이용하면 워크플로를 사용해서 수명 주기 동안 모든 인프라를 프로비저닝하고 관리할 수 있다. 그리고 컴퓨팅, 스토리지, 네트워크 리소스와 같은 low-level의 리소스 뿐만 아니라 DNS나 SaaS 기능과 같은 hi..
AWS Cloudtrail & EventBridge를 이용해서 s3 작업에 대한 컨테이너 작업
AWS CloudTrail은 AWS 리소스에 대한 api 활동을 추적해서 기록하는 역할을 해주는 서비스에요. CloudTrail 이벤트를 사용하면 AWS 리소스에서 발생하는 이벤트에 대한 세부 정보를 수집하고, 이를 통해서 리소스의 보안을 강화할 수도 있다고 해요! 그러면 이제 AWS CloudTrail에 들어가서 추적을 하나 생성해주면되는데 이때 s3 버킷은 기존에 있는걸 사용해도 새로 만들어도 돼요! 친절하게 hint로 어디에 로그가 저장되는 곳까지 알려줘요 그리고 추적을 만드는거 외에 이벤트 기록을 보거나 쿼리도 제공을 해주더라구요! 이제 EventBridge로 가서 규칙 하나를 생성해주면 돼요! 저는 다음과 같이 이벤트 소스는 s3를 선택했고 타입은 아래처럼 cloudtrail을 통한 api 호출..