[학습 목표]
0장에서는 AWS 회원 가입과 실습 환경을 구축하고 AWS를 사용하려면 알아야 하는 각종 도구를 알아봅니다. 리소스를 생성하고 관리하는 클라우드포메이션(Cloudformation)에 실습 템플릿을 업로드하여 AWS 리소스를 생성해봅시다.
[핵심 키워드]
AWS, 프리 티어, 루트 사용자, AWS 관리 콘솔, AWS CLI, AWS 클라우드포메이션, 비주얼 스튜디오 코드
[학습 코스]
➊ AWS 회원 가입하기 ➝ ➋ AWS 사용 방법 살펴보기 ➝ ➌ 비주얼 스튜디오 코드로 클라우드포메이션 템플릿 관리하기 ➝ ➍ 예제 코드 저장소 위치 ➝ ➎ 클라우드포메이션 사용해보기
0.1 AWS 회원 가입하기
AWS에서 제공하는 다양한 서비스를 다루려면 먼저 AWS 회원 가입을 해야 합니다. 신규 가입자에게 12개월 무료 평가판인 AWS 프리 티어를 제공하고 있습니다. 이 기간 동안 각 서비스마다 무료로 사용할 수 있는 시간과 용량에 대한 제한이 있어 서비스 사용량이 프리 티어 범위를 초과할 경우 사용량에 따라 요금을 지불해야 합니다. 그럼 다음을 과정을 따라 회원 가입을 진행해봅시다.
01 단계 ‘aws.amazon.com/ko/free’에 접속하여 AWS 회원 가입을 진행합니다. ➊ [무료 계정 생성]을 클릭하면 나오는 화면에서 ➋ 루트 사용자 이메일 주소를 입력하고 ➌ 사용할 AWS 계정 이름을 입력합니다. 입력한 ➍ [이메일 주소 확인] 버튼을 누릅니다.
02 단계 이메일 주소를 확인하는 인증 화면이 나옵니다. 입력한 이메일 주소로 날아온 ➊ 확인 코드를 확인한 다음 ➋ 확인 코드를 입력합니다. ➌ 그런 다음 [확인] 버튼을 눌러 인증을 합니다.
03 단계 이메일 인증에 성공했다면 본격적으로 사용자 정보를 입력합니다. 이메일 주소가 확인되면 비밀번호를 입력하는 암호 생성 화면으로 이동합니다. ➊ 로그인에 사용할 루트 사용자 암호를 입력합니다. 비밀번호 입력이 끝났다면 ➋ [계속] 버튼을 눌러 다음 단계로 이동합니다. ➌ 가입할 계정을 선택하고 이름과 휴대폰 번호,국가, 연락처 정보 등을 입력하고 ➍ [계속] 버튼을 눌러 다음 단계로 넘어갑니다.
04 단계 ➊ 결제 정보를 입력합니다. AWS 사용으로 발생한 서비스 이용료는 등록한 결제 정보의 카드를 통해 결제됩니다. 결제 정보를 입력했다면 ➋ [확인 및 계속] 버튼을 누릅니다. 다음으로 ➌ 카드 정보를 입력하여 AWS에서 결제가 가능한 카드인지 확인합니다. 이 과정을 완료하면 입력한 카드가 사용할 수 있는 카드인지를 확인하기 위해 100원이 자동으로 입출금됩니다.
05 단계 다음으로 자격증명을 확인합니다. ➊ 확인 코드를 받는 방법을 선택한 다음 국적과 휴대폰 번호를 입력하고 보안 검사를 위해 문자를 입력합니다. 문자 메시지로 확인 코드를 받는 방법을 선택하여 ➋ [SMS 전송] 버튼 누릅니다. 입력한 휴대폰 번호로 문자 또는 음성 전화를 통해 확인 코드를 확인한 다음 ➌ 코드 확인에 입력하고 ➍ [계속] 버튼을 눌러 다음을 진행합니다.
06 단계 AWS 서포트 플랜을 선택합니다. AWS는 다양한 서포트 플랜을 제공하고 있으며 각 서포트 플랜에 따른 지원과 혜택을 받을 수 있습니다. 이 책은 AWS에서 발생하는 과금 요소를 줄이고 최소한의 비용으로 AWS를 실습하는 환경을 구성할 수 있도록 ➊ 기본 지원을 이용합니다. ➋ [가입 완료]을 누르면 회원 가입이 완료되고, ➌ [AWS Management Console로 이동]을 누르면 AWS 로그인 화면이 나옵니다.
AWS 회원 가입 시 선택할 수 있는 지원 플랜은 AWS를 이용하면서 발생할 수 있는 기술적인 문제를 해결하고 지원을 받기 위한 플랜입니다. 각 지원 플랜에 따라 다양한 수준의 기술 지원과 보다 빠른 응답 시간을 제공하며, 이런 지원 플랜은 AWS 사용에 따른 기본 비용과는 무관합니다.
07 단계 [AWS Management Console로 이동] 버튼 또는 ‘aws.amazon.com/ko/console’로 이동하여 AWS 로그인을 합니다. ➊ 루트 사용자를 선택한 다음 가입할 때 사용한 이메일 주소를 입력하고 [다음] 버튼을 누릅니다. ➋ 비밀번호를 입력하고 [로그인] 버튼을 클릭합니다.
AWS 관리 콘솔AWS Management Console 화면이 나옵니다. 로그인에 성공했다면 AWS 콘솔 홈으로 이동하며, AWS 관리 콘솔을 이용해 다양한 AWS 서비스를 이용할 수 있습니다. 또한 레이아웃 설정과 위젯 추가를 통해 사용자 편리에 맞게 서비스 위치나 애플리케이션 정보를 바로 볼 수 있도록 조정할 수 있습니다.
0.2 AWS 사용 방법 살펴보기
AWS는 다양한 사용 방법을 제공하고 있습니다. 어떤 사용 방법이 있는지 살펴보고, 본격적인 AWS 실습에 앞서 필요한 도구에 대한 설명과 설치 방법을 알아보겠습니다.
0.2.1 AWS 루트 사용자
AWS 회원 가입과 로그인 화면에서 선택한 루트 사용자에 대해 알아봅시다. 루트 사용자는 AWS 계정 내 모든 AWS 서비스 및 리소스에 액세스할 수 있는 권한을 가지며 AWS 관리 콘솔에 접근할 수 있습니다. 루트 사용자는 AWS 계정 내 모든 권한을 가지고 있으므로 보안에 주의해야 합니다. 보안을 위해 AWS는 루트 사용자에게 추가 보안 계층 역할을 하는 다중 인증Multi-factor authentication을 활성화하는 것을 권장합니다. MFA 설정에 대해서는 03장 ‘AWS를 잘 쓰려면 알아야 하는 기본 서비스’에서 자세히 다루겠습니다.
0.2.2 레벨별 AWS를 사용하는 방법
AWS는 사용자가 다양한 레벨에서 AWS를 활용할 수 있도록 사용 방법을 제공합니다. 레벨은 1부터 4까지 나누어볼 수 있으며, 가장 낮은 레벨 1에서는 그래픽 UI를 통해 쉽게 접근할 수 있는 방법을 제공합니다. 가장 높은 레벨 4에서는 다양한 프로그래밍 언어를 사용하여 AWS 환경을 구축하고 관리할 수 있는 방법을 제공합니다. 다음 그림을 통해 각 레벨별 AWS 사용 방법을 알아봅시다.
레벨 1은 사용자 인터페이스(UI) 사용이 가능한 AWS 관리 콘솔입니다. AWS 관리 콘솔은 UI를 통해 직관적인 AWS 사용이 가능하지만 생성한 AWS 리소스가 늘어날수록 관리하기 힘들어진다는 단점이 있습니다. 레벨 2는 AWS SDK와 AWS CLI로 스크립트와 터미널을 이용하여 AWS를 사용할 수 있습니다. 여기서 AWS SDKSoftware Developement Kit는 자바Java, 자바스크립트JavaScript, 파이썬Python 등 자주 사용되는 언어를 바탕으로 AWS를 호출하여 웹, 모바일 웹 애플리케이션을 구축할 수 있도록 도와줍니다. 레벨 3에서는 IaCInfrastructure as Code 툴인 클라우드포메이션을 이용하여 JSON, YAML 형식으로 클라우드 인프라를 정의하여 다수의 AWS 리소스를 생성 및 관리할 수 있습니다. 레벨 4의 AWS CDKCloud Developement Kit는 사용자가 익숙한 프로그래밍 언어를 사용하여 클라우드 인프라를 정의할 수 있어서 더 직관적인 환경을 제공합니다. 하지만 AWS CDK는 프로그래밍 언어를 통해 클라우드 인프라를 정의하는 고급 도구이며 특정 프로젝트나 팀의 요구사항에 따라 프로그래밍 언어가 달라지기 때문에 이를 사용하려면 다양한 프로그래밍 경험이 필요합니다. 이 책에서는 여러 기능적 요구사항이 필요한 AWS CDK 대신 비교적 실무에서 보편적으로 다루고 AWS를 더 편리하게 이용할 수 있는 방법인 레벨 1, 2, 3을 이용하여 AWS 환경을 구축하겠습니다.
0.3 비주얼 스튜디오 코드로 클라우드포메이션 템플릿 관리하기
앞에서 알아본 AWS 사용 방법을 토대로 AWS 사용 환경을 구축하겠습니다. 0.1절의 'AWS 회원 가입하기'에서 AWS 관리 콘솔에 대해 간략히 알아봤으므로, 레벨 3의 클라우드포메이션 사용 환경을 구축하겠습니다. 레벨 2의 AWS CLI 환경 구축은 3장 ‘AWS 클라우드를 잘 쓰려면 알아야 하는 기본 서비스’에서 다루겠습니다.
먼저 AWS 클라우드포메이션 템플릿을 관리하는 데 사용할 비주얼 스튜디오 코드Visual Studio Code를 설치합니다. 비주얼 스튜디오 코드를 사용하면 클라우드포메이션 확장 프로그램인 클라우드포메이션 린터CloudFormation Linter를 설치할 수 있습니다. 클라우드포메이션 린터는 JSON과 YAML 문법을 검사하여 클라우드포메이션 템플릿 형식을 유지하도록 도와줍니다. 덕분에 코드를 효율적으로 관리하여 템플릿의 품질을 향상시킬 수 있습니다.
현재 맥OS을 이용하고 있다면 바로 이어지는 0.3.1절 ‘맥OS에서 클라우드포메이션 템플릿 관리하기’를 참고하고 윈도우를 이용하고 있다면 0.3.2절 ‘윈도우에서 클라우드 템플릿 관리하기’를 참고 바랍니다.
0.3.1 맥OS에서 클라우드포메이션 템플릿 관리하기
01 단계 https://code.visualstudio.com/download에 접속하여 ❶ 맥OS 파일을 다운로드합니다. 맥OS는 프로그램을 설치 후 애플리케이션(Applications) 폴더로 옮기면 됩니다. 설치 과정에 특별한 옵션 설정은 필요하지 않아 화면 캡처는 생략하고 다음으로 넘어가겠습니다.
02 단계 클라우드포메이션 린터를 macOS 로컬 환경에 파이썬Python 패키지인 pipPackage Installer of python를 이용하여 설치합니다.
▼맥OS 터미널에서 pip를 이용하여 클라우드포메이션 린터 설치
```
// ➊ 로컬 환경에 파이썬 설치 확인
python3 –version
// ➋ 파이썬 패키지인 pip를 최신 버전으로 업그레이드
python3 -m pip install --upgrade pip
// ➌ pip를 이용하여 클라우드포메이션 린터 설치
pip install cfn-lint
// ➍ 클라우드포메이션 린터 버전 확인
cfn-lint --version
```
맥OS에서는 기본적으로 파이썬이 설치되어 있기 때문에 별도로 파이썬 설치와 pip 설치는 불필요합니다. ➊ 맥OS에서 파이썬이 설치되어 있는지 버전을 확인합니다. ➋ pip 버전이 낮으면 클라우드포메이션 린터 설치가 안 될 가능성도 있기 때문에 pip를 최신 버전으로 업그레이드합니다. ➌ pip를 이용하여 클라우드포메이션 린터를 설치합니다. ➍ 클라우드포메이션 린터 버전을 확인합니다.
03 단계 비주얼 스튜디오 코드에 클라우드포메이션 린터 확장 프로그램을 설치합니다.
❶ 비주얼 스튜디오 코드에서 ‘Extensions’를 클릭하고 확장 프로그램 클라우드포메이션 린터를 설치합니다. ❷ 설치가 완료되면 클라우드포메이션 린터가 잘못된 클라우드포메이션 코드를 검사하는 것을 확인할 수 있습니다. 클라우드포메이션 린터는 클라우드포메이션 코드를 검사하여 문법 오류나 잠재적인 문제를 찾아내는 도구입니다. 이를 통해 사용자는 클라우드포메이션 템플릿의 품질을 향상시키고 실수를 방지할 수 있습니다. 클라우드포메이션 린터 설치가 끝났다면 JSON, YAML 형식으로 클라우드포메이션 코드를 사용할 기본적인 준비는 끝났습니다. 비주얼 스튜디오 코드는 다른 프로그램에 비해 가볍다는 장점도 있지만 클라우드포메이션 린터가 잘못된 코드를 표시하는 편리한 기능도 있기 때문에 코드를 수정하고 자신만의 클라우드포메이션 템플릿을 작성할 때는 비주얼 스튜디오 코드를 적극 활용하는 것을 권장합니다.
0.3.2 윈도우에서 클라우드포메이션 템플릿 관리하기
01 단계 https://code.visualstudio.com/download에 접속하여 윈도우 파일을 다운로드합니다. 윈도우는 설치 프로그램을 실행하여 [Next] 버튼을 클릭하면서 설치를 진행합니다.
02 단계 macOS와 달리 윈도우에서는 파이썬이 설치되어 있지 않기 때문에 별도로 파이썬을 설치해야 합니다. 파이썬 설치는 https://www.python.org/downloads/windows에 접속하여 다운로드를 진행합니다.
파이썬 설치 파일은 윈도우 인스톨러Windows Installer 형식으로 다운로드를 진행합니다. 비주얼 스튜디오 코드에서 파이썬을 사용해야 하므로 현재는 윈도우 로컬 환경에 파이썬을 설치하여 파이썬 경로를 지정할 필요가 있습니다. 파이썬 설치를 진행할 때는 파이썬 경로 추가에 체크를 하고 설치를 진행합니다. 그 외 설정은 기본값으로 [Next] 버튼을 클릭하면서 설치를 진행합니다.
03 단계 비주얼 스튜디오 코드에서 터미널을 열고 pip Package Installer of python를 이용하여 클라우드포메이션 린터를 설치합니다.
비주얼 스튜디오 코드를 열고 [View] → [Terminal]을 클릭하면 터미널이 활성화됩니다.
▼비주얼 스튜디오 코드 터미널에서 pip를 이용하여 클라우드포메이션 린터 설치
```terminal
// ➊ 로컬 환경에 파이썬 설치 확인
python –version
// ➋ 파이썬 패키지인 pip를 최신 버전으로 업그레이드
python -m pip install --upgrade pip
// ➌ pip를 이용하여 클라우드포메이션 린터 설치
pip install cfn-lint
// ➍ 클라우드포메이션 린터 버전 확인
cfn-lint --version
```
윈도우에서 파이썬 설치가 끝났다면 비주얼 스튜디오 코드 터미널에서 클라우드포메이션 린터 설치를 진행합니다. ➊ 윈도우에서 파이썬이 설치되어 있는지 버전을 확인합니다. ➋ pip 버전이 낮으면 클라우드포메이션 린터 설치가 안 될 가능성도 있기 때문에 pip를 최신 버전으로 업그레이드합니다. ➌ pip를 이용하여 클라우드포메이션 린터를 설치합니다. ➍ 클라우드포메이션 린터 버전을 확인합니다.
04 단계 비주얼 스튜디오 코드에 클라우드포메이션 린터 확장 프로그램을 설치합니다.
비주얼 스튜디오 코드에서 ‘Extensions’를 클릭하고 확장 프로그램 클라우드포메이션 린터를 설치합니다. 설치가 완료되면 클라우드포메이션 린터가 잘못된 클라우드포메이션 코드를 검사하는 것을 확인할 수 있습니다. 클라우드포메이션 린터는 클라우드포메이션 코드를 검사하여 문법 오류나 잠재적인 문제를 찾아내는 도구입니다. 이를 통해 사용자는 클라우드포메이션 템플릿의 품질을 향상시키고 실수를 방지할 수 있습니다. 클라우드포메이션 린터 설치가 끝났다면 JSON, YAML 형식으로 클라우드포메이션 코드를 사용할 기본적인 준비는 끝났습니다. 비주얼 스튜디오 코드는 다른 프로그램에 비해 가볍다는 장점도 있지만 클라우드포메이션 린터가 잘못된 코드를 표시하는 편리한 기능도 있기 때문에 코드를 수정하고 자신만의 클라우드포메이션 템플릿을 작성할 때는 비주얼 스튜디오 코드를 활용하는 것을 권장합니다.
0.4 예제 코드 저장소 위치
클라우드포메이션 예제 코드가 있는 깃허브 리포지터리 주소는 다음과 같습니다.
깃허브 url : https://github.com/classmethodjaewook/aws-developer
0.5 클라우드포메이션 사용해보기
이번에는 클라우드포메이션으로 간단하게 아마존 VPC를 생성하겠습니다. 아마존 VPCAmazon Virtual Private Cloud는 클라우드의 네트워크 환경을 구축하고 관리할 수 있는 서비스입니다. 아마존 VPC에 대해서는 2장 ‘AWS 클라우드를 잘 쓰려면 알아야 하는 네트워크 지식’에서 상세하게 다루겠습니다. 여기서는 클라우드포메이션을 이용하여 어떻게 AWS 리소스가 생성되는지 그 과정을 확인하겠습니다. VPC 생성을 위한 클라우드포메이션 코드는 깃허브 리포지터리의 chapter0에 있는 VPC 폴더를 참고하세요.
01 단계 AWS 관리 콘솔에서 ❶ 클라우드포메이션을 검색해 클릭합니다. 클라우드포메이션 콘솔 화면에서 스택 생성 화면으로 이동하며 스택 생성과 관리를 할 수 있습니다. 생성된 스택이 없다면 ❷ ‘스택 생성’을 클릭하거나 ❸ 오른쪽에 위치한 ‘스택 생성’ → ’새 리소스 사용(표준)’으로 스택을 생성할 수 있습니다.
02 단계 깃허브에서 받은 chpater 0의 VPC.yml 파일을 업로드할 차례입니다. 템플릿 준비에서 준비된 템플릿을 선택하고 템플릿 지정으로 넘어와 템플릿 파일 업로드를 선택합니다. 템플릿 파일 업로드 파일 선택에서 VPC.yml 파일을 선택하여 업로드합니다.
VPC.yml 파일은 AWS에서 네트워크를 생성하고 관리하는 코드를 담고 있습니다.
03 단계 스택 세부 정보 지정에서 스택 이름 등 정보를 입력합니다. ❶ 클라우드포메이션 템플릿은 AWS에서 스택이라는 이름으로 생성되어 관리됩니다. 클라우드포메이션은 템플릿에서 정의되며 ❷ 파라미터의 각 항목에서 사용자 지정 값을 입력할 수 있습니다. VPC의 CIDR 또는 비밀번호, 시스템 이름, 환경 이름과 같이 데이터를 코드에 직접 입력해야 하는 하드코딩이 필요한 값은 파라미터를 통해 관리함으로써 코드를 더 간결하게 구성할 수 있도록 합니다. ❸ [다음]을 눌러 스택 옵션 구성으로 넘어옵니다.
스택 옵션 구성의 각 항목은 기본값을 유지한 상태로 ➍ [다음]을 클릭합니다.
04 단계 생성할 템플릿을 확인하고 클라우드포메이션 스택을 생성합니다. 검토 및 작성에서 정보 확인을 거쳐 오른쪽 하단의 ➍ [전송] 버튼을 클릭하면 스택이 생성됩니다.
05 단계 클라우드포메이션 스택 생성을 확인합니다. 앞 그림에서 ➍ [전송] 버튼을 클릭하면 ‘CREATE_IN_PROGRESS’를 거쳐 ‘CREATE_COMPLETE’로 변경되는 스택 생성 과정을 확인할 수 있으며 이벤트 탭에서 생성된 리소스를 확인할 수 있습니다.
06 단계 생성된 리소스를 확인하기 위해 VPC 콘솔 화면으로 이동합니다. 왼쪽 카테고리에서 VPC, 서브넷, 라우팅 테이블 등 다양한 AWS 네트워크 서비스를 확인할 수 있으며 VPC를 클릭하면 클라우드포메이션으로 생성된 VPC를 확인할 수 있습니다.
07 단계 생성된 클라우드포메이션 스택을 삭제하는 방법을 살펴보겠습니다. 스택 삭제는 클라우드포메이션의 스택 화면에서 진행해야 합니다. 삭제할 스택을 선택하고 ❶ [삭제] 버튼을 누르면 ❷ 스택 삭제 팝업 창이 표시되고, 재차 [삭제] 버튼을 누르면 삭제가 시작됩니다. ❸ 상태가 ‘DELETE_IN_PROGRESS’로 변경되며, 삭제가 완료되면 목록에서 스택이 사라집니다.
실수로 인한 스택 삭제를 방지하기 위해 종료 방지 기능도 지원합니다. [스택 작업] → [종료 방지 편집]을 통해 설정할 수 있습니다.
0.6 AWS에서 생성형 AI 활용방안
2022년 출시된 ChatGPT가 세상에 모습을 드러낸 지 어느덧 3년이 흘렀습니다.
그동안 ChatGPT를 비롯해 다양한 생성형 AI와 AI를 탑재한 다양한 도구들이 등장하며, IT 엔지니어들뿐만 아니라 일반 대중들도 일상 속에서 생성형 AI를 활용해 삶의 질을 높이고 있습니다. 저 또한 면접에서 생성형 AI를 활용해 트러블슈팅을 하는 지원자들을 보고 있자면, 이제 생성형 AI는 IT 업계에서 단순한 "보조"가 아니라 "필수"가 된 것 같다는 생각이 듭니다. 이번에는 현직 솔루션 아키텍트가 실무에서 생성형 AI를 어떻게 활용하는지 소개해드리려고 합니다.
실무에서 생성형 AI를 활용하는 방법으로 크게 3 가지로 나눠볼 수 있습니다.
작업 관리
코드 작성
솔루션과 트러블 슈팅
0.6.1 작업 관리
먼저 작업 관리에서 자주 활용되는 도구는 노션입니다.
노션에는 AI 기능이 탑재되어 있어, 작업 내용을 요약하거나 회의록을 작성하고 핵심 정보를 추출하는 등의 작업을 자동으로 처리할 수 있습니다. 이처럼 입력한 정보를 효율적으로 정리해주기 때문에, 사용자는 필요한 정보를 보다 쉽게 확인하고, 정보 관리에 들이는 시간을 절약할 수 있습니다. 또한 노션은 다양한 템플릿을 제공해 작업과 일정 관리를 보다 체계적으로 할 수 있도록 도와주며, 사용자가 원하는 대로 템플릿을 만들어본인 스타일에 맞게 커스터마이징할 수도 있습니다.
▼노션에서 제공하는 프로젝트 템플릿
노션은 기존에 입력된 내용을 기반으로 요약하거나 문장을 작성하는 방식이라, 생성형 AI에 비해 상황에 따른 유연한 대응에는 한계가 있을 수 있습니다. 이에 반해 생성형 AI는 자연어로 지시만 해도 일정 생성, 요약, 자동 분류 등의 작업을 유연하게 처리할 수 있습니다.
생성형 AI는 오늘 할 일을 간략히 적어보내면, 이를 바탕으로 자동으로 작업과 일정을 정리해줍니다. ChatGPT의 경우, 자동화 기능을 통해 예약된 작업이 수행될 때 이메일이나 앱 푸시 알림을 받을 수 있습니다. 무엇보다도, 사용자가 큰 노력을 들이지 않고도 작업과 일정을 효율적으로 관리할 수 있다는 점이 생성형 AI의 가장 큰 장점입니다.
▼Perplexity에게 업무 및 일정 정리를 의뢰하고, 그 실행 결과가 반영된 상태
노션 AI는 비교적 제한된 범위에서 활용할 수 있고, 생성형 AI는 훨씬 더 유연하게 사용할 수 있습니다. 각 특징을 고려해, 본인에게 잘 맞는 도구를 선택해 사용하는 것이 좋습니다.
0.6.2 코드 작성
AWS에서는 인프라 구축을 위한 IaC 코드나 IAM 권한 설정을 위한 JSON 코드를 작성해야 하는 경우가 많습니다. 이를 위해 AWS는 클라우드포메이션에서 사용할 수 있는 각 서비스의 기본 예시 코드를 제공하고 있지만, 처음 AWS를 접하는 사용자에게는 공식 문서의 내용이 다소 어렵게 느껴질 수 있습니다. 특히, 하나의 서비스에 포함된 수많은 파라미터를 일일이 찾아가며 코드를 작성하는 일은 많은 시간과 노력을 요구합니다. 이런 상황에서 생성형 AI를 활용하면, 필요한 코드 조각을 빠르고 효율적으로 생성하거나 수정할 수 있어 업무 생산성을 크게 높일 수 있습니다.
IaC 코드를 생성형 AI에게 요청할 때는 어떻게 하면 좋을까요? ChatGPT를 활용해 IaC 코드를 작성하는 방법을 살펴보겠습니다. 먼저, 클라우드포메이션 코드를 YAML 언어로 작성해 달라고 요청하고, 각 리소스의 이름 규칙을 명확히 전달합니다. 그다음, 가용 영역(Availability Zone)을 하드코딩하지 않고 동적으로 설정하도록 부탁하며, 필요한 최소한의 파라미터(네트워크 CIDR)를 안내합니다.
돌아온 답변을 확인하면, 생각보다 훨씬 깔끔하게 클라우드포메이션 코드를 작성해줍니다. 제공된 코드를 기반으로 직접 클라우드포메이션 스택을 생성해보니, 네트워크 환경이 깔끔하게 구성되는 것을 확인할 수 있었습니다.
▼ChatGPT에게 클라우드포메이션 코드 작성을 부탁한 결과
물론, 사용자 요구에 맞춘 코드를 작성하려면 보다 구체적인 요구사항을 명확히 하는 것이 필요하지만 직접 코드를 작성하는 것에 비해 훨씬 편리한 것은 분명합니다. 단순한 네트워크 환경 구성뿐만 아니라, 난이도 높은 작업도 충분히 처리할 수 있을 것으로 보입니다. 다만, 실제로 코드가 제대로 동작하는지 테스트하고 검증하는 것은 결국 사람의 몫이며, 충분한 검토가 반드시 필요하다는 점도 잊지 말아야 합니다.
과거에는 직접 코드를 전부 작성했지만, 최근에는 실무에서 설계를 바탕으로 돌출된 주요 파라미터를 생성형 AI에게 제공하여 코드 작성을 요청하고, 충분한 테스트와 검증을 거쳐 환경을 구축하는 방식으로 변화하고 있습니다.
생성형 AI를 사용할 때는 실수로 개인 정보를 제공하지 않도록 주의해야 합니다.
0.6.3 솔루션과 트러블 슈팅
솔루션 아키텍트의 업무 중 대부분은 코드 작성보다 AWS 관련 솔루션 설계와 트러블슈팅에 더 많은 시간을 투자합니다. 인프라 환경에서는 ‘완벽한 상태’를 추구해야 하므로, 끊임없이 발생하는 트러블슈팅에 신속히 대응하고 문제를 최소화하는 것이 매우 중요합니다.
저자가 솔루션 설계나 트러블슈팅에 자주 활용하는 생성형 AI 중 하나가 바로 Perplexity입니다. Perplexity는 인터넷을 검색하여 최신 정보를 제공하며, 출처를 명확히 표시해 신뢰성을 높입니다.
테스트를 위해 RDS의 메인테넌스 시간을 UTC에서 JST로 변경 가능한지 질문을 던져봅시다. ➊ 인터넷 출처를 포함하고 있으며, ➋ 답변으로는 메인테넌스 시간을 변경할 수 없다는 정확한 답변을 내려주고 있습니다. 이메일이나 특정 도구를 통한 텍스트 기반 고객 솔루션의 경우, 과거에는 AWS 공식 문서를 일일이 확인하며 자료를 조사했지만, 최근에는 생성형 AI를 적극 활용해보다 효율적이고 신속하게 답변할 수 있게 되었습니다.
모든 생성형 AI가 정확한 답변을 제공하는 것은 아니므로, 반드시 검증 과정이 필요합니다.
그렇다면 트러블슈팅을 할 때도 생성형 AI를 활용하는 것은 어떨까요? AWS 환경을 점검하던 중, 디스크 권장 사항을 확인하려 했으나 ‘이 볼륨에 사용할 수 있는 권장 사항이 없습니다.’라는 메시지가 표시되었습니다. 이에 대한 원인 파악과 해결을 위해 생성형 AI에 질문해봅시다.
관련 AWS 공식 문서와 블로그를 소개해주고 있으며, 문제의 원인과 문제를 해결할 수 있는 정확한 방법을 제시하는 것을 확인할 수 있습니다.
예를 들어 AWS에서 특정 EBS 볼륨의 권장 사항이 없다는 메시지를 받았을 때, 생성형 AI는 관련 공식 문서뿐 아니라 커뮤니티 포럼, 최신 블로그 글 등을 참고해 문제의 원인을 신속히 분석합니다. 이후 적절한 조치 방법을 제시하여, 사용자는 보다 빠르게 문제를 해결할 수 있습니다 이처럼 생성형 AI는 방대한 공식 문서와 최신 블로그 내용을 신속하게 참고하거나 학습된 내용을 바탕으로 문제 해결에 필요한 핵심 정보를 간결하게 전달해줍니다. 덕분에 복잡한 트러블 슈팅 과정도 효율적으로 진행할 수 있으며, 실무자들의 부담을 크게 줄여줍니다.
생성형 AI는 지금도 꾸준히 발전하고 있으며, 수많은 새로운 모델들이 계속해서 등장하고 있습니다. 따라서 반드시 ChatGPT만을 사용해야 할 필요는 없으며, 다양한 생성형 AI를 직접 사용해보고 자신에게 가장 잘 맞는 도구를 선택하는 것이 바람직합니다. 이 중에서도 저자가 자주 활용하는 몇 가지 생성형 AI를 소개하겠습니다.
ChatGPT : OpenAI가 개발한 대표적인 생성형 AI로, 일상적인 대화뿐 아니라 코드 작성, 문서 요약, 기획 보조 등 다양한 작업에 폭넓게 활용되고 있습니다.
Claude Code : Anthropic에서 개발한 AI로, 긴 맥락 이해에 강점을 가지며, 윤리성과 안전성을 고려한 응답이 특징입니다. 특히 기술 문서 요약이나 구조적인 설명에 유용합니다.
Perplexity : 실시간 웹 검색 기능을 기반으로 정보를 제공하는 생성형 AI입니다. 검색 결과의 출처를 명확히 표시해주며, 트러블슈팅이나 정보 기반 질문에 매우 효과적입니다.
이처럼 다양한 생성형 AI는 저마다 고유한 강점과 특징을 가지고 있기 때문에, 상황과 목적에 따라 적절히 활용하는 것이 중요합니다. 하나의 도구에만 의존하기보다는 여러 AI를 조합해 사용해보고, 자신에게 가장 잘 맞는 생성형 AI를 선택하거나 상황에 따라 유연하게 활용해보길 권합니다.
