클라우드 환경 만들기
준비 흐름
로컬에서 Kiro에게 시켜보는 것까지 해봤습니다. 이제 그 결과물을 남이 볼 수 있는 곳으로 옮길 차례입니다. 여기서 만드는 클라우드 환경이 Lab 02부터 마지막까지 작업하는 자리가 됩니다.
Step 1: 내 자원 확인하기
오늘 쓸 자원은 이미 여러분 앞으로 준비되어 있습니다. 새로 만드는 게 아니라 내 것이 무엇인지 확인하는 단계입니다. 아래 값을 오늘 내내 씁니다.
| 항목 | 내 값 |
|---|---|
| IAM 사용자명 | summer-ht-__ |
| Kiro 로그인 계정 | IAM 사용자명과 동일 |
| 보안그룹 | kiro-handson-summer-ht-__ — 이미 만들어져 있습니다 |
| EC2 퍼블릭 IP | Step 2에서 EC2를 만들면 나옵니다 |
| S3 버킷 이름 | summer-ht-__-app |
이름이 전부 내 사용자명으로 시작합니다. 내 이름이 붙은 자원만 만질 수 있기 때문입니다. 규칙에서 벗어난 이름을 쓰면 생성이나 수정이 거부됩니다.
사용자명이 헷갈리면 EC2 터미널에서 아래를 실행하면 나옵니다.
aws sts get-caller-identity Step 2: EC2 만들기
만든 것을 남이 볼 수 있게 하려면 항상 켜져 있고 인터넷에 주소가 있는 컴퓨터가 한 대 필요합니다. 내 노트북은 덮으면 꺼지고, 자리를 옮기면 주소가 바뀝니다. 그래서 그런 컴퓨터를 한 대 빌립니다. 그게 EC2입니다.
빌린다는 말 그대로입니다. 원하는 사양을 고르면 컴퓨터 한 대가 생기고, 다 쓰면 지웁니다. 서버를 사다 놓고 직접 관리하던 일이 클릭 몇 번으로 바뀐 것, 이게 클라우드의 출발점입니다.
오늘 이 한 대가 작업실이면서 동시에 서버입니다. Kiro도 여기서 돌고, 만든 앱도 여기서 돌고, 데이터베이스도 여기에 설치합니다. 내 노트북은 Lab 01까지만 쓰고 그다음부터는 브라우저로 이 EC2에 접속해 작업합니다.
리전부터 확인합니다
AWS 콘솔은 리전마다 화면이 따로입니다. 오른쪽 위가 미국 (버지니아 북부) 인지 먼저 확인합니다. 다른 리전에 들어가 있으면 오늘 준비된 자원이 아예 보이지 않고, 만들어도 목록에서 찾을 수 없습니다.
리전을 확인했으면 EC2 대시보드에서 인스턴스 시작 을 누릅니다.

정해진 설정으로만 만듭니다
조직 정책이 걸려 있어서 다른 값을 고르면 생성 자체가 거부됩니다. 아래 표대로 그대로 선택합니다.
| 항목 | 값 |
|---|---|
| 리전 | us-east-1 (버지니아 북부) |
| AMI | nxtcloud-ami-v1.0.2 |
| 인스턴스 유형 | m5.large |
| 인스턴스 프로파일(IAM 역할) | SafeInstanceProfile-내사용자명 |
| 보안그룹 | kiro-handson-내사용자명 — 새로 만들지 말고 기존 것을 선택 |
인스턴스 유형은 빌린 컴퓨터의 사양입니다. 오늘 m5.large 를 쓰는 건 수업이라 정해둔 것입니다. 한정된 시간 안에 여러 사람이 동시에 설치와 빌드를 돌려야 해서, 성능이 일정하게 나오는 쪽을 골랐습니다.
실제로 무언가를 처음 올릴 때는 t3 계열로 시작하는 편이 낫습니다. 평소에는 적게 쓰다가 필요할 때 성능을 끌어 쓰는 방식이라, 부하를 아직 모르는 초기 구성 단계에 잘 맞고 비용도 훨씬 낮습니다. 쓰다 보면 얼마가 필요한지 보이고, 그때 올리면 됩니다.
주의: 보안그룹을 직접 만들면 나중에 포트를 못 엽니다. 내 태그가 붙은 그룹만 수정할 권한이 있기 때문입니다. 반드시 목록에서
kiro-handson-내사용자명을 고릅니다.
만들어졌는지 확인합니다
초록색 성공 화면이 뜨면 인스턴스가 만들어진 것입니다. 문구 안의 i- 로 시작하는 링크를 누르면 방금 만든 인스턴스로 바로 넘어갑니다.

인스턴스 상태가 실행 중 이 될 때까지 기다립니다. 그다음 퍼블릭 IPv4 주소 왼쪽의 복사 아이콘을 눌러 IP를 복사해둡니다. 다음 Step에서 이 주소로 접속합니다.

퍼블릭 IP는 인스턴스를 껐다 켜면 바뀝니다. 오늘은 계속 켜둔 채로 진행하지만, 중간에 재시작했다면 이 화면에서 주소를 다시 확인합니다.
- us-east-1 리전에서 만들었다
- 인스턴스 프로파일과 보안그룹을 목록에서 골라 붙였다
- 인스턴스가 생성되어 실행 중이다
Step 3: 브라우저로 접속하기
방금 노트북에서 쓴 것과 같은 IDE를 클라우드 환경에도 준비해뒀습니다. 따로 설치할 것도, SSH로 접속할 것도 없습니다. 브라우저 주소창에 EC2 퍼블릭 IP와 9080 포트를 입력하면 바로 들어갑니다.
http://내-EC2-퍼블릭-IP:9080Welcome to code-server 로그인 화면이 나옵니다. 비밀번호를 넣고 SUBMIT 을 누릅니다. 비밀번호는 수업 중에 안내됩니다.

브라우저가 안전하지 않은 연결이라고 경고해도 그대로 진행합니다.
로그인하면 브라우저에서 도는 VS Code(code-server)가 열립니다. 화면 구성은 Lab 01에서 본 것과 같습니다. 여기서 Kiro를 쓰고, 터미널을 열고, 저장소를 내려받습니다.
- 브라우저에서 code-server 화면이 열렸다
- 터미널을 열 수 있다
Step 4: 저장소 내려받고 Kiro에게 첫 질문
터미널을 여는 방법은 노트북에서와 같습니다. 오른쪽 위의 Toggle Panel(⌘J / Ctrl+J) 을 누르고 TERMINAL 탭을 고릅니다. 여기서 실습 저장소를 내려받습니다.
git clone https://github.com/nxtcloud-edu/kiro-on-cloud.git
받아온 폴더를 편집기에서 엽니다. 왼쪽 맨 위의 Explorer(⇧⌘E / Ctrl+Shift+E) 를 누르면 Open Folder 버튼이 나옵니다. 경로에 /home/ec2-user/kiro-on-cloud/ 를 넣고 OK 를 누릅니다. 목록에 1.basic-game · 2.single-app · 3.structured-quote-app 가 보이면 제대로 찾은 것입니다.

Kiro CLI에 로그인합니다
폴더를 열면 화면이 새로 뜹니다. 터미널도 함께 닫히니 Toggle Panel 로 다시 열고 아래를 실행합니다.
kiro-cli login --use-device-flow
로그인 방식을 고르는 화면이 나오면 Use with Pro license 를 고릅니다. 이어서 Start URL과 리전을 묻습니다. 두 값 모두 수업 중에 안내됩니다. 브라우저에서 승인하면 로그인이 끝납니다.
노트북에서는 IDE 화면에서 로그인했고 여기서는 터미널에서 합니다. 같은 실습 계정으로 들어가는 같은 절차입니다.
CLI를 실행합니다
kiro-cli
KIRO 로고와 함께 입력 프롬프트가 뜨면 준비된 것입니다. Lab 01에서 편집기 옆 채팅창에 적던 것을 이제 이 자리에 적습니다.
이제 아래를 그대로 붙여넣습니다. 오늘 다룰 두 폴더가 어떤 관계인지 직접 물어보는 것이 첫 작업입니다.
이 저장소에 `2.single-app`와 `3.structured-quote-app` 폴더가 있어.
각각 뭐고 어떤 관계인지 설명해줘.
Kiro가 폴더를 읽고 답하는 과정을 지켜봅니다. 명령어를 받아 실행하는 도구가 아니라 의도를 코드로 바꾸는 에이전트라는 걸 여기서 확인합니다. 우리는 앞으로도 무엇을 원하는지만 말합니다.
- 저장소를 내려받았다
- Kiro CLI에 로그인하고 실행했다
- Kiro가 두 폴더의 관계를 설명해줬다
다음 단계
작업할 자리가 생겼습니다. Lab 02에서는 이 EC2 위에 한 덩어리 앱을 띄우고, 막힌 포트를 열어 밖에서 닿게 만듭니다. 첫 배포입니다.
NxtCloud Workshop