2023.10.05일 AWS Cloud Clubs Sookmyung 오픈세션
'개발자가 클라우드를 알아야하는 이유' 발표 자료 입니다.

아마 대부분 클라우드에 대해서 한번씩은 들어보기도 하고 또는
클라우드 서비스를 프로젝트에 활용해보신 분들도 많을 거라고 생각합니다.
저도 되도록 제가 개발하는 프로젝트에 클라우드 서비스를 최대한 활용하려고 노력하고 있는데요.
제가 이렇게 클라우드에 관심을 가지게 된 여러 사건이 있었습니다.
발표 주제에 대해 이야기 하기 전에 그 중 하나에 대해 잠깐 이야기를 해볼게요.

제가 학부연구원으로 일을 잠깐 했었어요.
그때 연구가 학과 서버에 위치하는 즉, 온프레미스 환경으로 구축되어 있었습니다.
그 당시에 제가 가장 힘들었던 건 연구 자체를 진행하는 것도 있지만,
서버 자체를 다루는 일 또한 제게 엄청난 부담이었습니다.
“내가 혹시나 잘못건드려서 서버가 망가지면 어떡하지?” 이런 걱정이 제일 컸습니다.

이것 말고도 학교 내부에 위치한 서버라서 그런가 보안상의 이유인지, 어떤 이유인지 모르겠지만
어느 날 갑자기 원격 접속이 불가능했던 적도 많았습니다.
그러면 저는 항상 학교 서버실에 가서 원인을 해결해야 했는데요.
서버 관리자 분이 안계시면 아무 일도 하지못하고 돌아가야 했던 적도 많았습니다.
이렇게 온프레미스 서버에 대한 회의감을 가졌을 때 클라우드 수업을 듣고,
또 aws 자격증도 공부하게 되면서 클라우드를 공부하는 것이 중요하겠구나 라고 생각했습니다.

클라우드를 사용해야하는 이유를 알기 전에 먼저 시장을 살펴봅시다.
클라우드에 대해 정확히 알지 않더라도 지금 대세 중 하나가 클라우드라는 것을 짐작할 수 있는데요.
전 세계 클라우드 컴퓨팅 시장 규모는 2022년 4,465억 1천만 달러(600조원)로 평가되었으며,
2022년부터 2030년까지 연평균 성장률 17.43%로 성장하여
2030년까지 1조 6,141억 달러(2160조원)에 이를 것으로 예상됩니다.
이렇게 성장하는 이유는 요즘 잘나가는 생성형 AI, 데이터분석, 대규모 시스템 등과 같은 분야들이
대부분 클라우드를 바탕으로 이루어고 있기 때문입니다.
신기술들의 흐름 중심에 존재하는 것이죠

그 다음에 클라우드 서비스 시장 점유율에 대한 그래프입니다.
2022년도의 클라우드 시장 점유율을 확인하면
1위는 40.5%의 점유율을 가진 AWS, 2위는 마이크로소프트, 3위는 구글입니다.
그래프를 확인하면 AWS가 압도적으로 시장 점유율이 높은데요.
이런 이유는 AWS가 첫번째로 클라우드 서비스를 시작한 회시이기 때문입니다.

다음으로 클라우드를 내부에서 활용하는 회사들을 간단하게 모아봤는데요.
정확히는 AWS를 사용하는 기업들입니다. 한국 기업 위주로 한번 모아봤어요.
보시면 저희 학교도 있고요. IT 기업들은 물론이고 다양한 분야의 회사에서 AWS를 사용하고 있더라고요.
여기에는 없지만 정부에서도 AWS를 활용하고 있는 사례도 보았습니다.
왜 이렇게 많은 기업들이 클라우드를 사용하고 있을까요?
이제부터는 클라우드의 장점에 대해서 소개하겠습니다. 좀 교과서적인 내용일 수도 있어요.

속도 및 민첩성
클라우드 컴퓨팅 환경에서는 새로운 IT 리소스를 클릭 몇 번만으로 확보할 수 있습니다.
이는 개발자들이 리소스를 사용할 수 있게 하는 데 몇 주 걸리던 것이 단 몇 분으로 단축됨을 뜻합니다.
이에 따라 실험 및 개발에 드는 비용이 절감되고 시간이 단축되므로 조직의 민첩성이 크게 향상됩니다.

비용 절감
어떤 클라우드 서비스 모델을 선택하든 실제로 사용하는 리소스에 대한 비용만 지불하면 됩니다.
따라서 데이터 센터를 과도하게 빌드하거나 오버프로비저닝하는 것을 방지할 수 있고,
필요한 인프라 용량을 추정할 필요가 없습니다.

애플리케이션을 배포하기 전에 용량을 결정하면
고가의 리소스를 구입하여 유휴 상태로 두게 되거나
한정된 용량으로 작업하게 되는 경우가 자주 발생합니다.
클라우드 컴퓨팅을 사용하면 IT팀이 보다 전략적인 작업에 집중할 수 있는 소중한 시간을 확보할 수 있습니다.

탄력적 운영 및 확장
클라우드 컴퓨팅은 비즈니스의 유연성을 높여줍니다.
물리적 인프라에 투자하지 않고도 비즈니스 수요에 맞게 리소스와 스토리지를 빠르게 확장할 수 있습니다.
회사는 최대 부하 수준을 지원하는 데 필요한 인프라를 구축하거나 관련 비용을 지불할 필요가 없습니다.
마찬가지로 리소스를 사용하지 않는 경우에도 빠르게 규모를 축소할 수 있습니다.

글로벌 확장
클릭 몇 번으로 세계 곳곳의 여러 리전에 애플리케이션을 손쉽게 배포할 수 있습니다.
이는 곧 대기 시간을 줄이고 최소 비용으로 고객에게 더 나은 사용 환경을 제공할 수 있음을 뜻합니다.
클라우드가 이렇게 좋다는 것은 알고 있지만 직접적으로 클라우드는 개발자에게 어떤 영향을 끼칠까요?

첫번째, AWS 안에는 어마어마하게 다양한 서비스들이 존재합니다.
흔히들 사용하는 EC2, S3부터 심지어는 인공위성과 연관된 서비스도 있더라구요

개발자들에게 가장 익숙한 Compute 관련 서비스 중 2개를 비교하겠습니다.
AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서비스입니다.
사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.
AWS Elastic Beanstalk은 손쉽게 AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있는 서비스입니다.
애플리케이션을 업로드하기만 하면 자동으로 용량 프로비저닝, 부하 분산, Auto-Scaling, 애플리케이션 상태 모니터링
등의 배포 세부 정보를 처리합니다.

그 다음으로 다양한 인공지능 관련 서비스도 있는데요.
Polly는 딥러닝 기반 텍스트를 생생한 음성으로 변환하는 서비스이며,
Lex는 딥러닝 기반 자연어 대화형 챗봇입니다.
Amazon Rekognition는 딥러닝 기반 자동화된 이미지 및 비디오 분석 서비스입니다.
안면 생체 감지, 얼굴 비교 및 검색, 유명인사 인식, 텍스트 탐지, 얼굴 탐지 및 분석 등의 사전 훈련된 기능을 제공합니다.
이외에도 생성형 AI를 구축할 수 있는 Bedrock이 있습니다.

두번째, AWS는 매니지드 서비스를 제공합니다.
Amazon EC2 기반 운영은 사용자가 Application 최적화, 확장/증설 (scaling), 고가용성 구성, 백업 및 복구,
소프트웨어 패치 및 업그레이드, OS 패치 및 업그레이드를 직접 관리해야합니다.
하지만 완전관리형 서비스는 대부분 AWS에서 관리해주기 때문에
사용자가 직접 관리해야하는 것들이 현저히 줄어들게 됩니다.
개발자 입장에서는 기능 개발에 집중할 수 있겠죠.

하지만 이러한 클라우드의 장점을 다르게 접근하자면,
클라우드로 인해 인프라 접근성이 쉬워지고 이로인해 개발자에게도 인프라 관리 역할이 부여된다는 것입니다.
대부분의 회사가 클라우드를 도입 중입니다.
과거 서버를 개발하고 구축하는 일을 엔지니어가 담당했지만,
클라우드를 도입하고 나서는 어느정도 개발자에게도 인프라에 대한 일들이 주어지고 있습니다.
즉, 이제는 클라우드를 공부하는 것이 선택이 아닌 필수라는 것이죠.
이렇게 개발자들이 클라우드에 대해 알아야하는 이유에 대해 적어봤는데요.
아직 클라우드를 사용해보지 않은 분들에게는 처음 시도를 할 수 있는 용기를 얻어가셨으면 좋겠고,
이미 사용하신 분들이라면 더욱더 클라우드에 관심을 가지는 계기가 되었으면 좋겠습니다.
감사합니다.