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 회원가입
- 회원가입이 되어 있다면 이 부분은 생략한다.
- 회원가입을 진행한다.
- 이메일 인증절차 진행 후, PW 등록한다.
- 연락처 정보를 입력한다.
- 결제 정보를 기재한다.
- 자격 증명 확인
- Support 플랜 선택 여기서는 일단 무료로 시작한다.
- 환영 메시지 확인
- AWS Management Console로 이동한다. 다음과 같은 화면이 나오면 정상적으로 회원가입은 완료가 된 것이다.
AWS access key, Secret access key 생성
- Local에서 접속 하려면 IAM 정책을 따라가야 한다.
- 사용자 메뉴 선택 > 사용자 생성 버튼 클릭한다.
- 사용자 세부 정보를 지정한다. 필자는 awsLecture라고 명명했다.
- 여기에서는 Default로 권한 설정을 클릭한다.
- 사용자 생성 버튼을 클릭한다.
- 사용자 목록에서 awsLecture를 클릭한다.
권한 추가
- 권한 정책에서 다음과 같이 정책을 추가한다.
- 정책을 추가하려면 중간에 ‘권한 추가’ 버튼을 선택한다.
- 직접 정책 연결을 선택하면 다양한 권한 정책을 확인할 수 있다. 여기에서 접근하고자 하는 정책명을 검색하여 선택한다.
- 여기에서는 S3와 SageMaker를 선택하였다.
- 선택이 완료되면 다음 버튼을 클릭한다.
- 권한 추가 버튼을 클릭한다.
액세스 키 만들기
- 액세스 키 만들기 버튼을 선택한다.
- Command Line Interface(CLI)를 선택한다.
- 설명 태그 설정은 선택사항이다. 액세스 키 만들기 버튼을 선택한다.
- 액세스 키값과 비밀 액세스 키를 확인한다. CSV 파일로 다운로드 받을 수 있다.
보안 자격 증명 - 콘솔 액세스 활성화
- 보안 자격 증명 > 콘솔 액세스 활성화 버튼을 선택한다.
- 필자는 자동 생성된 암호를 선택했다.
- 콘솔 로그인 URL, 사용자 이름, 콘솔 암호 등을 기억한다.
- 향후 VS Code에서 로그인 할 때 사용해야 한다.
AWS Toolkit 설치
- VS Code Extension에서 AWS 검색 ⇒ AWS Toolkit을 선택 ⇒ Install 버튼을 클릭한다.
- 아래와 같은 화면이 나오면 Trust Publisher & Install 버튼을 클릭한다.
AWS Toolkit 설치 확인
- VS Code에서 왼쪽 메뉴에 AWS 메뉴가 보이면 설치는 완료가 된 것이다.
- 설치 완료를 위해 VS Code 재 시작을 한다.
IAM Identity Center
- IAM Identity Center은(는) AWS 관리형 애플리케이션에 대한 액세스를 간소화하여 인력 사용자 및 그룹에 대한 공통된 보기를 제공한다.
- 또한 한 곳에서 여러 AWS 계정에 대한 인력 액세스를 관리할 수 있다.
- 참고 : https://docs.aws.amazon.com/ko_kr/singlesignon/latest/userguide/howtochangeURL.html
- Region 확인 후, 활성화 버튼을 클릭한다.
- 대시보드 사용자를 추가하도록 한다.
- 사용자 세부 정보를 지정한다.
- 그룹 생성은 따로 하지 않았다.
- 다음 버튼을 클릭하면 기입한 메일로 활성화 관련 메일이 도착했을 것이다.
- 비빌번호를 설정하도록 한다.
- 암호를 설정하면 MFA를 진행해야 한다. 필자는 인증 앱을 선택하였다.
- Authenticator 앱에서 활성화를 한다.
- 인증앱이 완료가 되었는지 확인한다.
로그인 방법
- 로그인 방법은 크게 2가지가 있다. Workforce와 IAM Credentials를 활용한 방식
Workforce
- Workforce를 선택하고 Continue 버튼을 클릭한다.
- 계정ID를 입력한다.
https://계정ID.awsapps.com/start
- Open 버튼을 클릭한다.
- 사용자 이름을 입력한다.
- 이 때의 Password는
IAM Identity Center
에서 만들었던 Password다.
- 인증이 완료가 되면 다음 그림처럼 액세스 허용을 선택한다.
- VS Code를 보면 연동이 잘 되고 있는 것을 확인할 수 있다.
IAM Credentials
- IAM Credentials를 선택하고 Continue 버튼을 클릭한다.
- 여기에서는
AWS access key, Secret access key 생성
에서 만든 키를 값을 가져온다. - 정상적으로 다운로드를 받았다면 아래 두개의 키값이 있을 것이다. 이 때, accessKeys.csv 에 접근하면 ID와 Password를 각각 입력하면 된다.
AWS CLI 설치
- SageMaker 테스트를 하려면 Local CLI MSI를 설치해야 한다.
- 링크 : https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html
- 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를 사용하여 빠르게 구성한다.
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