Connect to AWS via VS Code (2025 버전)

Page content

개요

  • VS Code가 설치가 되어 있다고 가정한다.
  • AWS 제품을 VS Code를 통해서 연결하도록 한다.

Prerequisites

  • VS Code requires a Windows, macOS, or Linux operating system.
  • The AWS Toolkit for Visual Studio Code requires you to work from VS Code version 1.73.0 or a later version.

AWS 회원가입

image.png

  • 이메일 인증절차 진행 후, PW 등록한다.

image.png

  • 연락처 정보를 입력한다.

image.png

  • 결제 정보를 기재한다.

image.png

  • 자격 증명 확인

image.png

  • Support 플랜 선택 여기서는 일단 무료로 시작한다.

image.png

  • 환영 메시지 확인

image.png

  • AWS Management Console로 이동한다. 다음과 같은 화면이 나오면 정상적으로 회원가입은 완료가 된 것이다.

image.png

AWS access key, Secret access key 생성

  • Local에서 접속 하려면 IAM 정책을 따라가야 한다.

image.png

  • 사용자 메뉴 선택 > 사용자 생성 버튼 클릭한다.

image.png

  • 사용자 세부 정보를 지정한다. 필자는 awsLecture라고 명명했다.

image.png

  • 여기에서는 Default로 권한 설정을 클릭한다.

image.png

  • 사용자 생성 버튼을 클릭한다.

image.png

  • 사용자 목록에서 awsLecture를 클릭한다.

image.png

권한 추가

  • 권한 정책에서 다음과 같이 정책을 추가한다.

image.png

  • 정책을 추가하려면 중간에 ‘권한 추가’ 버튼을 선택한다.

image.png

  • 직접 정책 연결을 선택하면 다양한 권한 정책을 확인할 수 있다. 여기에서 접근하고자 하는 정책명을 검색하여 선택한다.
  • 여기에서는 S3와 SageMaker를 선택하였다.
  • 선택이 완료되면 다음 버튼을 클릭한다.

image.png

image.png

image.png

  • 권한 추가 버튼을 클릭한다.

image.png

액세스 키 만들기

  • 액세스 키 만들기 버튼을 선택한다.

image.png

  • Command Line Interface(CLI)를 선택한다.

image.png

  • 설명 태그 설정은 선택사항이다. 액세스 키 만들기 버튼을 선택한다.

image.png

  • 액세스 키값과 비밀 액세스 키를 확인한다. CSV 파일로 다운로드 받을 수 있다.

image.png

보안 자격 증명 - 콘솔 액세스 활성화

  • 보안 자격 증명 > 콘솔 액세스 활성화 버튼을 선택한다.

image.png

  • 필자는 자동 생성된 암호를 선택했다.

image.png

  • 콘솔 로그인 URL, 사용자 이름, 콘솔 암호 등을 기억한다.
  • 향후 VS Code에서 로그인 할 때 사용해야 한다.

image.png

AWS Toolkit 설치

  • VS Code Extension에서 AWS 검색 ⇒ AWS Toolkit을 선택 ⇒ Install 버튼을 클릭한다.

image.png

  • 아래와 같은 화면이 나오면 Trust Publisher & Install 버튼을 클릭한다.

image.png

AWS Toolkit 설치 확인

  • VS Code에서 왼쪽 메뉴에 AWS 메뉴가 보이면 설치는 완료가 된 것이다.
  • 설치 완료를 위해 VS Code 재 시작을 한다.

image.png

IAM Identity Center

image.png

image.png

image.png

  • 대시보드 사용자를 추가하도록 한다.

image.png

  • 사용자 세부 정보를 지정한다.
  • 그룹 생성은 따로 하지 않았다.

image.png

image.png

  • 다음 버튼을 클릭하면 기입한 메일로 활성화 관련 메일이 도착했을 것이다.
  • 비빌번호를 설정하도록 한다.

image.png

image.png

  • 암호를 설정하면 MFA를 진행해야 한다. 필자는 인증 앱을 선택하였다.

image.png

  • Authenticator 앱에서 활성화를 한다.

image.png

  • 인증앱이 완료가 되었는지 확인한다.

image.png

로그인 방법

  • 로그인 방법은 크게 2가지가 있다. Workforce와 IAM Credentials를 활용한 방식

Workforce

  • Workforce를 선택하고 Continue 버튼을 클릭한다.

image.png

  • 계정ID를 입력한다.

image.png

https://계정ID.awsapps.com/start
  • Open 버튼을 클릭한다.

image.png

  • 사용자 이름을 입력한다.
  • 이 때의 Password는 IAM Identity Center 에서 만들었던 Password다.

image.png

image.png

  • 인증이 완료가 되면 다음 그림처럼 액세스 허용을 선택한다.

image.png

image.png

  • VS Code를 보면 연동이 잘 되고 있는 것을 확인할 수 있다.

image.png

IAM Credentials

  • IAM Credentials를 선택하고 Continue 버튼을 클릭한다.

image.png

  • 여기에서는 AWS access key, Secret access key 생성 에서 만든 키를 값을 가져온다.
  • 정상적으로 다운로드를 받았다면 아래 두개의 키값이 있을 것이다. 이 때, accessKeys.csv 에 접근하면 ID와 Password를 각각 입력하면 된다.

image.png

image.png

AWS CLI 설치

image.png

  • PowerShell이나 CMD를 검색하여 다음과 같이 출력이 되는지 확인한다.
$ aws --version
aws-cli/2.24.19 Python/3.12.9 Windows/11 exe/AMD64

Local PC에 Access Key 및 Security Key 설정

  • 로컬 컴퓨터에 AWS CLI를 설치하고 aws configure를 사용하여 빠르게 구성한다.

image.png

SageMaker 테스트

환경설정

  • 주요 라이브러리를 설치 한다. (파일명 : requirements.txt)
pandas
jupyterlab
seaborn
scikit-learn
keras
tensorflow
sagemaker
  • 가상환경 접속 후 라이브러리 설치
$ virtualenv venv # pip install virtualenv (미 설치시)
$ source venv/Scripts/activate # 윈도우
(venv) $ pip install -r requirements.txt

Sample 코드

import boto3
import numpy as np
import pandas as pd
from sagemaker.session import Session
from sagemaker.estimator import Estimator
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sagemaker.local import LocalSession

role = 'YOUR_ROLE'

# Configure AWS credentials
session = boto3.Session(
    aws_access_key_id='YOUR_ID',
    aws_secret_access_key='YOUR_PASSWORD',
    region_name='us-east-1'  # Change to your preferred region
)

# Create SageMaker LocalSession for local mode
sagemaker_session = LocalSession(boto_session=session)
sagemaker_session.config = {'local': {'local_code': True}}
bucket = sagemaker_session.default_bucket()
prefix = 'sagemaker/iris-model'

# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target

# Split the data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Combine features and target for SageMaker format
train_data = pd.DataFrame(np.column_stack([X_train, y_train]))
test_data = pd.DataFrame(np.column_stack([X_test, y_test]))

# Save data to CSV files
train_file = 'iris_train.csv'
test_file = 'iris_test.csv'
train_data.to_csv(train_file, header=False, index=False)
test_data.to_csv(test_file, header=False, index=False)

# Upload to S3
train_s3_path = sagemaker_session.upload_data(train_file, bucket=bucket, key_prefix=prefix+'/train')
test_s3_path = sagemaker_session.upload_data(test_file, bucket=bucket, key_prefix=prefix+'/test')

# Create SageMaker estimator for logistic regression
estimator = Estimator(
    image_uri='382416733822.dkr.ecr.us-east-1.amazonaws.com/linear-learner:latest',
    role=role,
    instance_count=1,
    instance_type='local',
    output_path=f's3://{bucket}/{prefix}/output',
    sagemaker_session=sagemaker_session
)

# Set hyperparameters for logistic regression
estimator.set_hyperparameters(
    feature_dim=4,  # Iris has 4 features
    predictor_type='multiclass_classifier',  # For classification
    num_classes=3,  # Iris has 3 classes
    epochs=1 
)

# Define data channels
train_channel = {'train': train_s3_path}
test_channel = {'test': test_s3_path}

# Train the model
estimator.fit(train_channel)

# Deploy the model to an endpoint
predictor = estimator.deploy(
    initial_instance_count=1,
    instance_type='local'
)
print("Iris classification model deployed successfully!")

5