기타

CLOUDNET@ AWS네트워킹 강의 나눔이벤트

이번에 CLOUDNET@ 에서 인프런에 강의를 오픈했다.

https://inf.run/Xpv1

1호 영업사원으로 뛰기로 말한 전적이 있기에 추첨으로 강의 나눔 이벤트를 했

총 60분이 참여해주셨고, 간단하게 코드를 짰다.

import random

def select_random_winner(filename):
    with open(filename, 'r', encoding='utf-8') as file:
        names = file.readlines()

    winner = random.choice(names).strip()
    return winner

filename = "name_list.txt"
winner = select_random_winner(filename)
print(f"축하합니다! 상품 당첨자는 {winner}님입니다!")

랜덤으로 코드만들어서 돌렸다.

python3 select_random_winner.py
축하합니다! 상품 당첨자는 김신님입니다!

김신님께서 당첨되셨다.

축하합니다!

2022 회고

2022년은 나에게도 많은 일이 있었던 해이다.

나는 네이버클라우드 솔루션아키텍트에서 밀리의서재 인프라스트럭처 엔지니어로 이직했다.

그사이에 책도 출간했다. 차도 샀다. 이직 후에 ISMS인증 심사도 받았다.

네이버클라우드에서는 나는 주로 설계를하고 내부적문제를 분석하고 에스컬레이션하는 업무를 맡았다. 그리고 CSAP 인증관련 프로젝트를 하며, 기약없는 나날을 보내고 있었다. 성장에 목이 말랐고, 뭘해야할지 모르는 안타까운 날들이었다. 회사의 성장은 느껴지는데, 나의 성장은 멈춰있는 느낌이었다.

문제는 회사가 아니라 나에게 있었다.

일상에서의 자극들이 아이디어와 성장으로 이루어지는 나의 방식이 알맞지 않았다. 또 기술적 성장을 더욱 하고싶었다.

그래서 이직을 선택했다.
다양한 회사를 알아봤고, 그러다 밀리의서재로 오게되었다.

이력서를 제출전에 본부장인 리나와 커피챗을 했다.

밀리의 사용 스택과 필요한 부분등 여러가지가 나와 핏이 잘맞았다. 흔히 말하는 저스트핏. 바로 이력서를 작성했고 면접을 봤다. 1차면접부터 2차면접 합격까지 10일의 시간이 걸렸고, 바로 입사를 결정했다.

이렇게 빠른 결정이 가능했던건 정말 나와 밀리가 핏이 너무 잘맞았기 때문이라 생각한다.

인프라팀을 정돈해가며 스크럼에 적응하고, 내 서비스를 가지게 된 나는 서비스와 친해지기 위해 많은 정성을 쏟았다.

또 리더로서 다시 일하게 되어 더욱 동료의 생각에 공감하려 노력했고, 내가하는 일이 동료가 공감할수 있도록 노력했다.

기계처럼 일만하는게 아니라 동료의 신뢰를 얻고 싶었고, 내가 엔지니어로 같은 회사에 있을 때 느껴지는 든든함을 동료들이 가지길 원했다.

새로운 모니터링 시스템을 만들고 분석 플랫폼을 만들어서 이슈의 원인과 분석을 하는 속도를 높여갔다.

그 결과 동료들과의 유대는 깊어졌고, 나는 자리잡았다.

좋은 동료와 같이 일하는 즐거움을 13년차가 되어서야 배운다.

2022년은 항상 새롭고 즐거웠다.

2023년 또한 새롭고 즐겁도록 만들것이다.


시작하는 엔지니어를 위해-2

시작하는 엔지니어를 위해-1 적은지 두달이 지났습니다.
다음편을 써야겠다 여러번 마음을 먹었지만 쉽지 않았습니다.

이전 주제는 엔지니어의 방향성에 대해서 이야기를 했습니다. 시스템 엔지니어와 클라우드 엔지니어의 차이 그리고 근본적인 핵심을 다루어야 한다는 이야기 까지요.

엔지니어로서 어떻게 하면 클라우드가 쉬워질까? 그리고 클라우드가 대세인 요즘 어떤 방향성을 가져야 할까? 를 적어보려 합니다.

먼저 클라우드는 마케팅 적 용어라 생각 합니다.

클라우드라 정의하고 이야기하지만 본질적으로는 컴퓨팅리소스를 임대하는 범주에서 벗어날수 없습니다. 물론 여기에는 많은 생략이 들어가 있기는 합니다. 하지만 클라우드가 대량의 컴퓨팅파워를 재 가공해서 판매하는 개념은 달라지지 않습니다.

이전에는 서버를 사용하려했다면 서버를 구매하고 서버를 랙에 입고하여 OS를 설치하고 IP를 할당받아 부여해서 사용하는 방식을 사용했습니다. 시작하려면 고정적인 금액이 발생했던 거죠. 그런데 클라우드에서는 구매 입고 설치 이런 과정들이 생략되게 됩니다.

편해 졌는데 이상하게 접근 장벽이 높습니다. 클라우드를 공부 하려는 동료 엔지니어들 만봐도 어려워합니다.

왜 일까요?

제 생각은 포장이 너무 잘되어 있기 때문입니다.

근본적으로 그냥 가상화 위에 네트워크를 제공한다. 이렇게 접근하면 아주 쉬운데 우리는 VPC / EIP / EC2 이런 용어들에 별 세계의 새로운 기술인것처럼 포장되어 있는 바람에 접근이 어렵다 생각됩니다.

물론 퍼블릭 클라우드를 구현하기위해선 진짜로 어렵고 많은 기술들이 사용 되었습니다. 그러나 사용자가 무조건 알아야지만 쓸수있는것은 아니라는 것입니다. 애초에 퍼블릭 클라우드의 제공 목적도 쉽고 간편하게 사용 이니까요.

그래서 말하고 싶은바는 포장지를 볼게 아니라 무엇을 제공하냐? 입니다.

VPC는 Virtual Private Cloud 으로 사설망을 제공합니다. EC2는 가상 머신입니다. 서버라고도 하죠. EIP는 공인 IP 입니다.

이정도 연관하여 이야기하면, 느낌이 딱 올 겁니다. 어려운건 아니었구나.

그럼 어려운건 무엇일까요?

잘 사용하는 것, 입니다.

VPC는 망분리 디자인을 얼마만큼 해야하는지 퍼블릭과 프라이빗의 차이는 뭔지, 어떻게 하면 더 보안적인 측면을 강화할수 있는지. 이떤 패턴이 가격이 싼지 등을 궁리하고, 더 편하고 빠르고 무결 한 방법을 고민하는것이 어려운것이죠.

그렇다면 이제 구분에 대해서 이야기 하겠습니다.
이 구분은 클라우드를 이야기할때 빼놓을 수 없는 이야기입니다.

IaaS / SaaS / PaaS 가 그것입니다. 이 구분은 관리 영역이 누구에게 있는지로 구분을 합니다. 그럼 여기서 다시 포장의 개념을 가져와 봅시다. 클라우드 벤더가 어디까지 포장해서 판매하는지, 그 포장의 개념이 여기 여러가지의 구분입니다.

IDC - Network - Server - virtualzation - OS - DB - App - Data

그럼 IDC에서 부터 관리해야 하면 뭘까요? Hosting 입니다.

그럼 부터 OS는요? IaaS 입니다.

App 부터는 PaaS 입니다.

Data 부터는 SaaS 입니다.

이제 예를 들어 보겠습니다.

인스턴스에 CentOS를 사용한다면 IaaS 입니다.

PaaS는? EB, EKS ECS 등이 PaaS입니다.

SaaS는? AWS에서 자랑하는 대부분의 서비스는 SaaS입니다 RDS가 그렇습니다.

이 구분을 어느정도 해내는 단계에 오면 이제 클라우드 서비스가 어느정도 익숙해진것입니다. 제공자와 나의 경계범위를 확인할수 있는 것 이니까요.

이 구분법은 간단하게 클라우드 벤더에서 제공하는 단계에따라 비용의 상승을 불러일으킵니다. 책임과 관리의 범위를 클라우드 벤더가 가져가는 만큼 비용의 상승이 발생하는 것입니다.

클라우드에 선 기회와 시간에 대해서 이야기합니다.

비즈니스에 집중하세요.

이 말입니다. 비즈니스에 집중하는 것은 인프라나, 플랫폼이나, 서비스의 관리를 벤더 에서 해주니 그 기회 비용을 비즈니스에 사용 하라는 말이죠.

저는 엔지니어의 길이 이곳에 있다 생각합니다.

IaaS,PaaS,SaaS를 기회와 비용을 적절하게 섞어서 사용하는것 말이죠. 무조건 관리형 서비스를 쓰는게 능사가 아니라, 관리포인트가 적은 서비스라면 직접구축해서 쓰는것또한 필요하다는 이야기 입니다.

정리하겠습니다.

좋은 엔지니어라면 칼을 가리지 않아야 합니다.. -키보드는 가립니다-

무조건 써야하는것은 없습니다. 필요한 부분에 적재적소로 사용해야 합니다. 한가지만 고집하는것은 결국 시대에 도태 될수있습니다. 그렇기에 온 프레미스도, 클라우드도 IaaS도 SaaS도 적절하게 사용하는것. 이것이 엔지니어로 가져야할 필수 마인드라 생각합니다.

언제든지 쓸수있도록 준비하세요. 그 준비가 더 나은 기회를 잡을수 있도록 도울것입니다.

긴글 읽어주셔서 감사합니다.

terraform-provider-ncloud-review

오늘 하시코프x네이버클라우드 웨비나에서 terraform 과 Vault 에 대한 웨비나를 청취했습니다.

https://github.com/NaverCloudPlatform/terraform-provider-ncloud

이전에 방과후(?) meetup에서 네이버클라우드가 테라폼의 프로바이더로 있다는것을 알았습니다. 그 덕분에 네이버클라우드에서 terraform은 이미 경험이 있는 상태고, Vault도 경험이 있었습니다. 오늘의 주제 중 Secrets Engines이 궁금했습니다.

https://www.vaultproject.io/docs/secrets

Secrets engines are components which store, generate, or encrypt data.

시크릿엔진은 데이터를 저장또는 생성하고 암호화하는 구성요소.

AWS 의 Parameter Store / Secrets Manager 와 비슷한 기능을 한다고 생각이 들었습니다. 다른 벤더에서도 비슷한 서비스들이 있습니다.

https://hackernoon.com/aws-secrets-manager-vs-hashicorp-vault-vs-aws-parameter-store-bcbf60b0c0d1

https://www.cloudjourney.io/articles/security/aws_secrets_manager_vs_hashi_vault-su/

가장 일반적인 사용예라 생각되는것은, access key의 암호화라 생각됩니다. 일반적으로 aws-vault 같은 명령어로 지원합니다.

아직 ncp-vault 가 만들어진게 아니라, ncp 내에서 사용하기엔 좀 불편한 부분이 있으리라 생각됩니다. 현재 npc 는 provider로 등록된 상태고 cli 를 지원하므로 차차 지원하리라 생각됩니다.

https://www.44bits.io/ko/post/securing-aws-credentials-with-aws-vault#%ED%85%8C%EB%9D%BC%ED%8F%BCterraform%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

aws 에서의 vault 사용예입니다.

https://www.vaultproject.io/docs/secrets/databases/mysql-maria

mysql-maria db의 user 암호화입니다.

이런 방법이 필요한 이유는 결국 어플리케이션 소스의 탈취로 문제를 방지하기 위함입니다. key의 자동로테이션이나, expire time 을가진 key 발급등을 할 수 있습니다.

Vault 는 근래에 들어서 굉장히 핫한 오픈소스라 테스트 해보시는게 좋을것 같습니다.

마무리를 하자면..

템플릿 소스들이 점점 쌓이고 사용예가 늘면 IaC는 점점 더 일반화 될것입니다.

미리미리 IaC를 준비하고 사용방법을 익히는것도 좋을것 같습니다.

조만간 Secrets Engines 사용하기 위해 자동화 스크립트를 적용하는 고민을 한번 해보려 합니다. 시간이 나면 한번 테스트 해봐야겠습니다.

읽어주셔서 감사합니다!