0. AWS Summit 2023 신청
개발바닥 유투브를 구독하여 보고 있던 도중, AWS Summit 컨퍼런스가 열린다는 사실을 알게 되었다.
평일이었지만.. 일단 갈지 말지는 당일에 결정하기로 하고, 신청을 하였다.
회사이름이랑 본인이름, 직위 등등 쓰는 칸이 있었고, 회사 메일을 기입했기 때문에 신청 후 다음과 같은 메일이 왔다.
5월 3일은 산업 업종별 강연, 5월 4일은 기술 주제별 강연이었다.
나는 5월 2일까지 고민하다가.. 5월 4일에 가기로 했다.
나의 경우 AWS를 사용하여 뭘 해본적이 없기 때문에.. 거의 백지의 상태로 참여하여
입문기술 위주로 들으려고 Day 2( 5/4) 에 참여하였다.
1. 강연 전 네임택 받기 / 이벤트홀과 강연홀
나의 경우 봉은사역에서 내려서 코엑스를 가게 되었고, 파란색 별마당 길을 따라 걷다 보면 1층으로 올라가는 곳이 보인다. 거기서 올라가서 안내 스태프 분을 따라 가다보니 .. 이런 곳을 발견했다
두근두근🤗 AWS 행사장으로 가는길이다.
코엑스가 너무 넓어서 길을 잃지 않도록 조심해야함..
나는 첫째날에 참여하지 않고 둘째날에만 참여했는데, 늦게 참여해서 그런건지 아니면 AWS 멤버십이 아닌 회사여서 그런건지.. 다른 분들과 다른 모양의 네임택을 받았다
행사장 어디를 가든, 네임택은 필수로 체크하기 때문에 목에 걸고 다녀야 한다!
행사장의경우 이벤트홀(B)는 각종 IT회사들이 부스를 차려 이벤트도 하고, 회사의 서비스에 대한 각종 설명을 들어볼 수 있 다! (솔루션 및 제품 상담도 가능하나, 나는 일개 회사의 사원으로.. 그런건 할 수가 없었다)
네임택 받고 바로 B홀로 돌진했더니, 내가 생각한 강연장이 아닌 이벤트홀이여서 굉장히 당황함 ㅋㅋㅋ
들어가자마자 왼쪽은 SK쉴더스, 오른쪽은 롯데정보통신이었다.
다시 물어물어 나왔더니, B홀에서 더 가야 강연을 들을 수 있는 곳이 나왔다.
바로이곳! 여기서 각 강연 홀로 이동하면 된다.
왼쪽은 설문 코너 같은거였고, 오른쪽은 이벤트였다.
출퇴근시간, 코로나이후 일상 등등 우리가 일상에서 한번쯤 생각해봤을법한 질문들이었다.
진짜 신기한건 7시출근 4시퇴근이 11시출근 8시퇴근보다 훨씬 많았다는 사실이다.
다들 아침형 인간인건지, 아니면 출퇴근시간대를 피하고싶어서인지 궁금..ㅎㅎ
나도 회사에서 7시 출근이 가능만 하다면 무조건 하고싶다 (완전 아침형인간 그자체)
오른쪽 이벤트는 AWS Summit에 몇번째 참가인지 물어보고, 그에 맞는 공을 뽑아 내용물을 주는거였다.
난 사실 1번째였지만.. 1번째가 비워져있어서 2번째라고 하고 받았다 🙄
AWS 스티커 두장과, 오트밀 과자가 들어있었다.
2. 본격 강연
2-1. 가격은 저렴, 성능은 최대로! 달라진 Amazon EC2 알아보기
내가 처음 들은 강연은 Amazon EC2 알아보기 였다.
AWS 서비스에대해 아는게 거의 없다시피 하기 때문에 입문 강의중에서 선택했다.
Amazon EC2란?
Amazon Elastic Compute Cloud 의 줄임말으로, AWS 클라우드에서 확장이 가능한 컴퓨팅 용량을 제공하는 서비스이다.
물리적인 서버를 두고 애플리케이션을 배포할 필요 없이, 가상 서버를 구축하여 사용량 만큼 금액을 내면 되는 편리한 서비스라고 볼 수 있다. 가벼운 경량 애플리케이션이나, 초기 스타트업 같은 경우에 사용량 만큼만 요금을 지불하면 되기 때문에 합리적인 선택이라고 볼 수 있다.
EC2는 카테고리, 성능, 옵션 등을 선택할 수 있는데 아래의 표 내용에서 선택할 수 있다.
카테고리 | 기능 | 옵션 |
M : 범용 T : 버스팅 가능 C : 컴퓨팅 집약적 R : 메모리 집약적 I : 스토리지(높은 I/O) D : 고밀도 스토리지 P : GPU 컴퓨팅 G : 그래픽 집약적 |
프로세서 선택 g: AWS Graviton i : Intel a : AMD 빠른프로세서 높은 메모리 공간 인스턴스 스토리지 가속 컴퓨팅 네트워킹 베어메탈 크기 |
Elastic Block Store(EBS) Elastic Fabric Adapter Elastic Inference Elastic Graphics Linux, Unix, Windows, macOS |
이렇게나 인스턴스에 대한 선택권이 많다.. 이 모두를 조합하면 600가지 이상의 인스턴스 유형이 나오며,
웬만한 비즈니스 요구사항에는 적합한 조건으로 선택할 수 있다.
인스턴스를 표기하는 방법은 다음과 같다.
C5d.2xlarge
C : 인스턴스 패밀리
5 : 인스턴스 세대
d : 추가기능
2xlarge : 인스턴스 크기(size)
인스턴스 패밀리의 경우 위의 표에 있는 카테고리 중에 하나이다. (인스턴스의 타입을 의미)
인스턴스 세대는 말그대로 인스턴스의 세대를 의미한다. 아마존 EC2의 경우 무조건 "최신세대" 가 가성비가 좋다.
추가기능의 경우, 표의 기능 중에 하나를 의미하게 되는데 종류는 다음과 같다.
d : 로컬 NVMe SSD 스토리지
e : 동급 저렴한 메모리
n : 네트워크 특화
z : 동급 최강 CPU
g: AWS Graviton
i : Intel
a : AMD
Mac : 맥 인스턴스
인스턴스 크기는 말그대로 크기를 의미하는 것으로, 티셔츠의 개념과 유사하다고 한다.
AWS Nitro 시스템
Nitro 시스템은 클라우드에서 전용 하드웨어 및 경량 하이퍼바이저의 조합으로 강력한 보안, 성능 및 혁신을 제공한다.
하드웨어에 Nitro를 적용하여 고성능, 보안이 중요한 프로그램에서 사용하기 적합하다.
Card : vpc네트워킹
보안칩 : 가상화 , 보안
하이퍼바이저 : 메모리 및 cpu할당관리. 베어메탈 수준의 성능을 제공
* 15%이상의 성능 향상을 보임
그외에도최신 인스턴스 모델에 대한 설명 등 을 들었다.
삼성전자의 x86 -> ARM 기반 Graviton 으로 전환 사례
EKS+EC2(x86)모델, Java 8, Spring, Alpine Linux를 사용하고 있었던 삼성전자에서 Graviton (AWS에서 개발) 을 적용한 사례에 대해 들을 수 있었다.
도입한 이유는, 다음과 같다.
1. 비용절감
2. ARM 기반 프로세서 약진
3. ESG경영 동참(Graviton은 저전력 인스턴스)
4. 같은 가격이면 최신 EC2를 사용하는것이 가성비 👍
등등..
어플리케이션 용 EC2를 x86에서 ARM으로 바꾸려면 해야할 단계들이 많았다.
1. 호환성 확인 - 수동 소프트웨어의 경우 설치 내용을 확인해야하고, 자동 소프트웨어는 설치 시 알아서 체크해준다.
2. 멀티빌드 - 도커 buildx 사용하면 x86과 ARM기반을 한번에 빌드할 수 있다.
QEMU emulator를 이용한다. 이미지 빌드 후 ECR에 업로드한다. 하드웨어와 상관 없이 다양한 플랫폼을 제공한다.
3. 트러블 슈팅 - open JDK의 버전을 up, Alpine Linux의 버전도 최신으로 up. 하지만 오류가 또 발생했다고 한다. jdk 버그 리포트에 따르면 ARM64와 관련된 것이 많았다고 하며, k8s POD Dependency를 최신으로 업데이트 한다.
이로 인해 얻을 수 있는 효과는, API 서버 응답 속도가 개선되고, 인스턴스 비용이 15%정도 절감되었다고 한다.
2-2. AWS의 개발자를 위한 신규 서비스 소개 - Amazon CodeCatalyst & Amazon CodeWhisperer
두번째 강연은 aws의 솔루션 서비스에 대한 소개였다.
개발자들이 "개발" 자체에 몰입하기 위해 편리성을 추구하는 솔루션들이라고 보면 된다.
Amazon CodeCatalyst
1. 블루프린트
프로젝트에 필요한 통합 도구 몇분만에 설정 가능 / AWS 모범 사례 사용하여 바로 배포, CI·CD 파이프라인과 샘플코드 제공 / 기존 프로젝트를 가져와 다양한 3rd Party 도구들로 교체 가능
2. 워크플로우
Visual Editor 통한 시각적 파이프라인 제공, yaml코드로 구성 가능 / AWS관리형 컴퓨트 사용한 유연한 동작 / 테스트, 리포트, CI·CD, 인프라 등 구축에 필요한 구성 자동화 하여 파이프라인 생성 가속
등의 기능을 가지고 있는 어플리케이션 관리,배포 를 위한 통합 솔루션
Amazon Code Wisperer
ML(머신러닝) 기반 개발자도구로, 주석과 주변 코드를 기반으로 코드를 추천해주는 개발자의 협업 도우미IDE에 코드를 작성하면 자동으로 Code Wisperer에 전송된다. 기능1. 코드 제안 - 1줄부터 완전한 함수까지, 개발자의 코드를 분석하여 코드 스타일대로 적용하고, 테스트코드도 작성 가능2. AWS API의 경우 더 강력한 기능 제공3. 책임감 있는 AI/ML (일자리를 위협하지 않는.. 뭐 이런 뜻인듯)
세상이 정말 많이 발전했다는 생각이 들었다.. 개발자의 코드 스타일까지 분석해준다니.
코드 위스퍼러의 경우 개인 개발자에게 무료로 제공되고 있으니, 사용법을 검색해서 사용해보면 너무 좋을 것 같다.
2-3. 성공적인 AWS RDS 마이그레이션을 위한 여정과 필수 고려사항
이번 강연의 경우 ETEVERS 라는 회사에서 설명하게 되었다. 이번에는 대기를 잘해서 앞자리에 앉았다 ㅎㅎ
에티버스라는 그룹을 몰랐는데, 알고보니 천명이 다되는 큰 IT회사이고, 영우디지탈 에서 이름을 바꿨다고 한다.
1. Amazon의 DB 서비스
Amazon RDS와 Aurora를 비교해주셨다.
Amazon RDS의 경우 RDBMS들에 대해 지원을 한다. (MySQL, PostgreSQL, MariaDB, MSSQL, Oracle..)
스토리지의 확장성은 64TiB까지 가능하다고 한다. (mssql은 16TiB)
가격은 인스턴스의 유형과 스토리지의 볼륨 크기에 따라 결정된다.
vs
Aurora의 경우 MySQL, PostgreSQL에 대해 지원하고, Amazon RDS에 비해 더좋은 성능과 안정성을 보장한다.
스토리지 확장성도 128 TiB까지 가능하다.
가격은 인스턴스 유형과 스토리지의 실사용크기, IO요청에 따라 결정된다.
이렇게만 봤을 때 Amazon RDS는 할당된 DB크기만큼 요금을 책정하기 때문에 설계를 잘 해야하지만, Aurora는 DB의 실사용크기에 따라 가격을 책정하기 때문에 더 합리적이라고 볼 수 있다.
Amazon RDS CUSTOM for Oracle의 경우 추가 OS와 DB의 커스텀 설정이 필요한 경우에 사용할 수 있는 옵션이다.
2. DB Migration Step
마이그레이션이란, DB를 옮기는 것을 말한다. DB에서 DB로 옮기는 것도, 코드로 작성한 클래스를 DB 테이블로 옮기는 것도 모두 포함된다.
여기서는 기존의 온프레미스 DB -> Amazon RDS로의 마이그레이션을 의미한다.
1. Assess
- 소스 DB 환경에 대한 분석 (인프라환경, 데이터용량·종류, 연계환경, 요구 조건, 영향, 리스크)
- 타겟 AWS DB 환경 분석
* 가장 중요한 단계
2. Plan
- 데이터 용량, 이관 기간, 다운타임, 실행 난이도 등을 전체적으로 고려하여 계획을 수립한다.
(이관 전략·기술, 테스트·검증 계획, 이행 계획, 롤백 계획)
3. Test
- 실제 데이터로 이관 테스트를 진행한다. (검증, 시간 측정, 튜닝 요소 점검, 2~3회 테스트 권장)
4. Execute
- 계획에 맞추어 DB 이관을 진행한다. (이관 진행, 상황 모니터링, 검증 진행, 시스템 오픈, 모니터링, 운영 모드 진입)
3. DB Migration시 고려사항
백업(필수!) , 호환성 점검 , 이관방법 제약사항 숙지, 라이선스 As-Is -> To-be 변화 준비 , 3rd파티 SW이관 대체방안 마련, 충분한 시간 확보
4. DB Migration 툴
1. OS COMMAND - OS, DB 버전이 동일하고 데이터 크기가 크지 않은 경우 쉽게 이관이 가능한 방법
장점 : 간단한 OS명령 (scp, sftp) 만 사용한 이전 가능, 쉬운 사용법
단점 : 파일 복사에 필요한 서비스 중단 시간은 파일 용량에 비례, OS/플랫폼·DB버전·설정 등의 환경이 일치해야함,
중간에 끊김을 대비해야함
2. DBMS PROVIDED TOOLS - DBMS자체에서 제공해주는 도구로 버전이 다른 환경으로 이관이 가능한 방법
장점 : OS/플랫폼·DB버전이 다른 환경에서 이전 가능, 특정 대상 테이블만 선별하여 이전 가능
단점 : 시간이 많이 소요되며 이에 따른 서비스 중단 필요 , 타 DB로의 이전은 사용 불가, 버전차이 심하면 실패확률 증가
ex ) Oracle Data Dump / MySQL Dump
3. CHANGE DATA CAPTURE TOOLS - CDC도구는 동일 또는 이기종 DB간 실시간 복제 기능 제공
장점 : OS/플랫폼·DB 달라도 이전 가능, 대용량 이전 가능, 제품에따라 선별 이전 가능, 실시간에 가까운 Ongoing복제 가능(다운타임 최소화)
단점 : 상용 제품일 경우 도입 비용 발생, 제품별로 지원되지 않는 DB 있음
ex ) Oracle golden gate / Shareplex Quest / AWS Database Migration Service
5. DB Migration 케이스 (예시)
1. 온프레미스 MSSQL -> AWS MySQL RDS (AWS도구-SCT,DMS 사용)
AWS 스키마 툴을 사용하여 이전. 이기종 DB 전환이므로 쿼리에 대한 튜닝과 로직 수정 진행
MSSQL의 경우 'DBO.테이블명' 이런식으로 쓰이기 때문에 테이블명에 DBO를 일일이 빼주어야 한다.
프로시저의 경우 메뉴얼 작업이 필요했다.
2. 온프레미스 Oracle -> AWS Oracle RDS (CDC 도구 사용)
버전을 12->19로 업데이트 하였고, GoldenGate 허브를 이용하였다. RDS를 없애고 HA로 가다보니 Active 인스턴스는 기존 RAC환경의 모든 처리를 처리할 수 있어야 하고, 로직에서도 타깃 DB에 대한 수정이 필요했다.
버전 업그레이드에 따른 쿼리 튜닝이 필요했으며, CDC도구가 만능이 아니기에 오류 발생시 수작업으로 수정해야 했다.
이 강연의 경우 AWS에서 다루고 있는 DB에 대해서도 알게 되었고, 이관 방법이나 주의사항을 직접 경험해보고 사례를 들어 설명해주어 이해가 쏙쏙 됐다. DB이관은 아무래도 인프라 담당자가 하게 될 것 같지만, 유익한 시간이었다.
3. 점심
첫 강연을 들으러 갔을때, Lunch라고 써있는 팔찌를 주셨다. 첫 강연이 끝난 후에 자리에 앉아있으면 알아서 나눠주신다.
팔찌를 다시 가져가면서 런치키트(도시락)을 나누어 주었다.
뭔가 학회에서 나눠줄 것 같은 도시락이다. 샌드위치가 3종류나 있어서 대식가도 배부를 수 밖에 없는 양이다..
하지만 전형적인 한국인 입맛을 가진 나에겐 샐러드 빼고는 다 느끼했다 ㅠ
그래도 그저 컨퍼런스를 들으러 신청한 사람들에게 모두 빠짐없이 이정도의 식사를 대접하다니.. 이게 바로 미쿡 대기업인가 싶었다.
4. 이벤트홀 - 부스
처음에 명찰을 나눠주고 다짜고짜 들어갔던 이벤트홀에 강연 3개만 듣고 다시 갔다.
갔더니 각종 이벤트로,, 부스별로 회사의 에코백, 스티커 등등을 나눠주고 있었다.
나는 처음에 뭣도 모르고 있는대로 다 받아서 가방을 5개나 받아버렸다..
어쩌다가 부스에서 네이버페이 만원권이 당첨됐는데, 월요일에 문자로 발송해준다고했는데 6시인데도 안왔다 흑
안주려나,,?
베라 아이스크림도주고,, 소프트콘도 주고 ,, 별별거 다 나눠줘서 재밌었다
개인적으로 이 컵이 제일 이쁘고 맘에든다 :) ㅋㅋ
혼자 갔을때도 이렇게 재밌었는데, 다음 해에는 개발자 동료와 함께 가고싶다는 생각을 했다 !
나의 비루한 개발자 인맥.. 어떻게든 더 만들어내고말겠어,,😏
마지막은 모르는사람에게 찍어달라고 한 나 로 마무리 !