GDG Devfest 참여 후기

KakaoTalk_Photo_2022-11-20-01-40-40 002 이번에 한국공학대 GDSC 1기로 참여하면서 여러 행사를 접할 수 있었는데, 그 중 하나의 큰 행사가 바로 Devfest이다.
장소는 송도 스타트업파크에서 진행하였고 집에서도 1시간 반 거리였지만 지하철편이 괜찮아서 잘 다녀왔다.

[해당 세션]

KakaoTalk_Photo_2022-11-20-02-04-10

나는 4층에 있는 ServerSide & ML의 4개의 세션을 들었고 모두 클라우드, 빅데이터 등에 대한 내용이었다.
각 세션은 50분으로 진행되었고, 해당 세션들의 내용과 듣고 느낀점을 간략하게 써보고자 한다.

  • What’s in New : GCP
  • GCP 조금 더 안전하게 사용하기 (feat. AWS)
  • 스타트업 온프레미스 클러스터 도입기
  • BigQuery 도입 후 4년

첫번째 세션 : GCP의 새로운 기능들

사실 AWS만 RDS나 R3 때문에 조금 다뤄보았고 GCP는 사용하지 않았다. 그리고 최근 GCP 사용량이 증가하고 있긴 하지만 아직도 AWS가 부동의 1위이기 때문에 여기서 GCP를 처음 접한 것과 마찬가지이다.
ai나 인프라, 보안등 다양한 기능들이 업데이트 되었다고 설명해주었지만 무엇보다 데이터 분석 서비스에 제일 눈에 띄었다.
데이터 분석에 클라우드에서 많이 사용되고 있는 Big Query가 업데이트 되었는데, 모든 유형들을 작업하는 비정형 데이터를 지원해주고, 비공개 프리뷰를 사용하는 것은 물론 SQL 파이프라인을 설정할 수 있다고 한다.
또한 JSON파일도 이제 분석이 가능하고 비디오, 전화 대화내용 등 다양한 형식의 문서도 분석이 가능해진다고 한다.
추가로 타사 데이터베이스를 사용할때 간단한 클릭으로 Big Query을 통해 데이터베이스 스트림으로 쉽게 데이터를 복제하거나 분석할 수 있다고 한다.
Big Query에 대해 더 공부해보고 이를 유용하게 써보면 좋을 것 같다.

두번째 세션 : GCP 안전하게 사용하기

이 세션이 제일 이해가 잘 되었고 유익하게 들었던 것 같다. 클라우드 서비스를 이용하려면 IAM을 필수적으로 알아야 한다고 하는데,
IAM은 클라우드 서비스의 인증 및 권한 관리 서비스라고 한다. (각자 ID, 권한을 부여해주는 느낌)
GCP IAM은 누구에게 무슨 리소스에 대한 액세스 권한이 있는지 정의하여 액세스 제어를 관리해주는 서비스인데 여기서 외부 서비스 (AWS EC2 등)에서 GCP을 사용할 경우에는 기본적으로 서비스 account의 Private key을 사용하여 인증하는 방식이다.
그런데 여기서 키가 노출되었을 때 매우 큰 문제가 발생하는데 이를 해결하기 위해 identity federation을 제시해주었다.

권한 키를 이용하면 제일 쉽고 간단하게 세팅을 완료해서 끝낼 수 있지만 보통 키를 발급받을 때 평생 사용하며 보안의 문제가 발생할 수 있다.
Identity Federation은 외부에서 권한 키 없이 사용할 수 있고, 리소스에 대한 액세스 권한을 부여하여
private키에 대한 정보가 전혀 없어서 유출이 되어도 보안문제가 발생하지 않는다.
그리고 logging을 통해 외부 서비스 인증에 대한 감사 로그를 확인할 수 있다고 하여 유용하다고 한다.

사전 준비 :

  1. 워크로드 아이덴티디 풀 관리자 및 서비스 계정 관리자 역할 있는지 확인 -> 2. API IAM, STS 사용 설정, 3. 제휴를 허용하도록 조직의 조직 정책 업데이트

GCP는 비쿼리, API에 대해 사용할때만 거의 사용하는 경우만 많다고 하는데 여기서 보안에 대한 고민을 잘 안하게 된다고 한다.
보안에 대한 고민을 조금 더 하면서 이용하면 좋을 것 같다고 한다.

세번째 세션 : 스타트업 온프레미스 클러스터 도입기

이 분은 처음부터 끝까지 6개월동안 스타트업의 흐름을 설명해주셨는데 엄청 복잡했다. 그리고 갈수록 기술스택이 늘어나는 과정을 세세히 설명해주셨고, 해당 문제들과 불편함으로 인해 이런 스택을 도입했다를 논리적으로 설명해주셨다.
간단하게 문제와 해결점들을 나열한다면

  • 대량 납품을 위해 진행해야되는 것들 (docker compose up 등등 불편한 점들이 한둘이 아님) -> ANSIBLE 도입 (한번의 명령어로 동일한 명령 보장)
  • 서버가 여러개, 자원관리를 하나로 묶어서 도입 -> 쿠버네티스 도입 (여러 노드 자원을 효율적으로 관리 ,어플리케이션 관리까지)
  • 배포, 설치 문제 (K8s native app 설치?, manifest 너무 많음) -> HELM 도입 (manifest중에 설정을 위한 값을 따로 빼서 편하게 만든 패키지 매니저)
  • local-path-privisioner의 에러 (대부분 서비스 volume이 node에 종속되는 문제로 스토리지를 제공해야 하는 문제) -> Rook Ceph 도입 (Ceph : 하나의 스토리지 클러스터에 Object storage, Block device, NetWork filesystem등을 모두 제공 & 추가로 디스크 장애시 복구 기능까지 모두 제공 / Rook : 클라우드 네이티브 스토리즈 오케스트레이션, 스트리지에 필요한 요소들을 k8s 클러스터 내에 배포)

이 밖에도 많은 얘기를 해주셨고 확실히 스타트업을 하면서 시작부터 배포하고 대량 납품까지 다양한 이야기를 들을 수 있었다.
그리고 작업하시는 곳이 하드웨어 부분도 존재하여 전체적인 시스템 아키텍처가 하드웨어 부분까지 확장된 것을 볼 수 있어 다양한 지식을 얻은 것 같다.

네번째 세션 : BigQuery 도입 후 4년

회사에 데이터 엔지니어로 일하시는 분이 BigQuery를 운영하면서 겪은 문제, 해결했던 경험, 여러 팁을 제공해주셨는데 사실 BigQuery에 대해 잘 알고 있는 상황이 아니다보니 이해한 부분이 많지는 않았다.
하지만 제일 중요했던 것은 빅데이터에서 제일 큰 세가지가 빅쿼리, 레드쉬프트, 스노우 플레이크라고 하는데, 빅쿼리의 다양한 기능들로 인해 사용하였다고 한다.
빅쿼리는 조금 더 공부해야 될 부분이기 때문에 발표자께서 빅쿼리를 하면서 사용할때 겪은 것과 문제점 등을 정리하겠다.

  • 사용할때 겪는것 >
    1. Amplitude -> s3 -> Bigquery 파이프라인
    2. 하루에 한번 수집하는 스케쥴
    3. 스케쥴 변경 : 하루에 한번 -> 한 시간에 한번
    4. Amplitude -> S3 통합에 10분 딜레이가 있음
    5. 모든 시간에 10분정도 데이터 유실 (s3에 다 안떨어지는 현상, 데이터가 비어있음)
이게 천천히 문제가 발생하므로 미리 해야됨.
    6. 보통 3개월 뒤 발견되는 데이터 이상 현상
  • 문제점 >
    1. 보통 이런 히스토리는 담당자만 알고 있다.
    2. 사람은 실수를 한다
    3. 인수인계나 입/퇴사 거쳐 히스토리 유실
    4. 왜 문제 일어나는지 모름
    5. 서드 파티 툴 탓을 하다
    6. 새로운 툴을 도입
    7. 기존 데이터는 신뢰가 안된다 버리자
    8. 1로 돌아감

그리고 프로젝트를 하면서 백엔드와 데이터 팀의 소통을 매우 중요하게 강조하셨다. 아무래도 보는 관점이 많이 다른거 같다.
대표적인 예로는 개발자 입장에서는 Raw 데이터는 필요하지 않다고 생각할 수 있다. (굳이 용량만 많이 차지하는 거 아닌가? 이걸 왜 s3, db에 넣지?) 데이터 입장에서는 이걸 사용하면 프로그램의 민첩함이 달라진다고 보기에 서로 소통이 중요하다고 한다.

여담으로 만약 이제와서 고민을 하면 빅쿼리 도입을 안할 수도 있다고 한다. 이는 상황을 봐가면서 도입 추천하는데
웨어하우스 툴이 현재 노드 관리를 하지 않은 서비리스로 가는 추세이기 때문에 이제는 데이터 종류에 따라 선택해야 된다고 한다.

마치며

처음으로 참여한 개발행사였고 클라우드와 빅데이터 관련이다 보니까 전체적인 내용을 이해 못한것은 맞지만 해당 분야에 대한 유익한 정보들을 얻어갈 수 있었던 것 같다.
최근 GO언어나 블록체인 공부 등으로 다양한 개발지식을 넓히고 있는데 이런 분야도 있다는 것을 깨닫고 공부할 가치가 충분히 있다는 것을 알았다.
거기에 학생들 뿐만 아니라 실제로 일하시는 개발자 분들과 관련 높은 직급분들이 오셔서 수준 높은 질문을 하시는 걸 보면 아직 배울게 한참 남았고 이런 내용을 공부하기 위해 인턴을 하거나 다양한 활동을 더 많이 해야되는 것을 느꼈다.

Categories:

Updated:

Comments