AWS 개발환경 설정 - WSL2 & S3 & RDS

Page content

개요

  • 윈도우 WSL2에서 AWS 개발을 위한 기본 개발환경 설정을 진행한다.

WSL2 설치

Restart WSL2

  • WSL2 처음 작업할 때, 실행한다.
exec $SHELL

WSL2 주요 필수 패키지 설치

  • Python 3.8 버전을 설치한다.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7
  • Python 버전은 다음과 같다.
$ python3 --version
Python 3.8.10
  • 만약 Python 버전 변경이 안되면 전체 삭제하고 진행한다.

(옵션) Python 삭제

  • 현재 설치된 모든 파이썬 버전을 보여줌
ls /usr/bin/python* 
  • python3 버전과 관련된 모든 파일을 삭제함
sudo apt-get purge --auto-remove python3.8

awsebcli 설치 및 AWS CLI Configuration

  • awscli를 설치한다.
sudo apt install awscli
  • 버전은 다음과 같다.
$ aws --version
aws-cli/1.18.69 Python/3.8.10 Linux/5.10.16.3-microsoft-standard-WSL2 botocore/1.16.19

IAM 사용자 추가

  • AWS 회원가입은 완료된 상태에서 시작한다.

  • [보안, 자격 증명 및 규정 준수] - [IAM]을 클릭한다.

  • [액세스 관리] - [사용자] - [사용자 추가]를 클릭한다.

  • 아래와 같이 사용자 세부 정보 설정을 진행한다.

  • 권한설정 여기 부분이 중요하다. 기존 정책 직접 연결을 선택하고, 각 사용하고자 하는 서비스를 선택한다.

    • 독학할 때는 FullAccess를 선택한다.
    • 필자가 선택한 건 다음과 같다.
      • AdministratorAccess
      • AdministratorAccess-AWSElasticBeanstalk
      • AmazonEC2FullAccess
      • AmazonS3FullAccess
  • 사용자를 만들고 나면 액세스 키 ID와 비밀 액세스 키는 반드시 기억해야 한다.(csv 파일을 다운로드 받도록 한다. )

    • Access Key : your_key
    • 비밀 액세스 키 : your_secret_key

AWS Configuration

  • 이제 aws에 코드를 각 WSL2에 등록한다.
    • AWS 지역 : ap-northeast-2
$ aws configure
AWS Access Key ID [None]: your_id
AWS Secret Access Key [None]: your_key
Default region name [None]: ap-northeast-2
Default output format [None]: json
  • 실제 설정된 config 파일을 확인한다.
$ cat .aws/config
[profile eb-cli]
aws_access_key_id = your_id
aws_secret_access_key = your_key

[default]
region = ap-northeast-2
output = json

Github SSH with WSL2

  • RSA를 생성한다.
$ sudo ssh-keygen -t RSA
Generating public/private RSA key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:TPWfl2lrr/DgzAaMnceRnyqo0D6sGRLYpzl+MwdHsb4 root@evan
The key's randomart image is:
+---[RSA 3072]----+

.
.
+----[SHA256]-----+
  • 생성된 Key 값을 복사한다. ssh-rsa 부터 복사하면 된다.
$ sudo cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3Nz....Zgi8= root@yourname
  • 복사한 Key값을 Github Github SSH and GPG keys에 붙여 넣는다.
    • 각 계정 프로필 - Settings - Github SSH and GPG keys 순차적으로 클릭한다.
  • Github Repo를 생성하고, 해당 Repo를 Git Clone으로 쉽게 가져올 수 있다.
    • 실제 git clone, git add/commit/push를 진행해본다.
  • Git clone 시, 처음에 비밀번호가 맞지 않을 수 있다.
    • 아래와 같은 에러가 나타난다면, Personal Access tokens를 발급 받아서 해당 Token 값을 입력 비밀번호로 입력한다. (Settings - Developer Settings - Personal Access Tokens)
$ git clone https://github.com/your_name/your_repo.git
Cloning into 'your_repo'...
Username for 'https://github.com': yourname
Password for 'https://yourname@github.com':
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/your_name/your_repo.git/'

그 외 주요 패키지 설치

  • Jupyter Notebook에서 어떻게 사용되는지 보여주기 위해 가상환경을 우선 설치하고, 필수 라이브러리를 추가로 설치 할 것이다.
  • virtualenv를 설치하고 가상환경에 접속한다.
$ pip3 install virtualenv
$ virtualenv venv
created virtual environment CPython3.8.10.final.0-64 in 11197ms
  creator CPython3Posix(dest=/mnt/c/Users/human/Desktop/aws-lectures-wsl2/venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/human/.local/share/virtualenv)
    added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
$ source venv/bin/activate # 가상환경에 접속

Python 모듈 Boto 설치

pip3 install boto3 juypterlab
  • Jupyterlab은 터미널에서 다음과 같이 실행한다.
jupyter lab --no-browser

S3 생성

  • 먼저 아래 화면처럼 [서비스]-[스토리지]-[S3]를 선택한다.

  • 버킷 만들기를 선택한다.

  • 버컷 이름과 AWS 리전만 각자 선택하고, 나머지는 기본 Default 값으로 놔둔채 생성한다.

  • S3에 대한 자세한 설명은 관련 글을 참조한다.

  • 우선 임의의 이미지 파일을 하나 업로드 한다.

  • 업로드 시, 스토리지 클래스에서 옵션을 선택할 수 있다.

  • 업로드가 된 후, 이미지 파일명을 클릭하면 아래와 같은 객체 개요가 나타날 것이다.

  • ACL 개요

  • 객체 삭제는 삭제 탭을 이용해서 진행한다.

MySQL RDS 생성

  • [데이터베이스] - [RDS] 순차적으로 선택한다.

  • 아래 메뉴에서 데이터베이스 생성을 클릭한다.

  • 다음 그림을 참조하여 순차적으로 선택한다.

    • DB 인스턴스 식별자 : human-mysql
    • 마스터 사용자 이름 : admin
    • 마스터 암호 : temp1234

  • 퍼블릭 엑세스는 로 클릭한다.

  • 데이터베이스를 생성하면 아래와 같이 확인할 수 있다.

    • 주의 : 데이터베이스를 사용하지 않으면 사용 중지를 해야 한다.

MySQL 로컬 설치

  • 이제 MySQL Workbench를 다운로드 받는다.

  • 다운로드 받은 설치프로그램을 통해 설치를 진행한다.

  • 설치가 끝난 후, 접속을 시도해본다.

  • 위 화면에서 중요한 건, Hostname이다. 127.0.0.1 주소 대신에 RDS endpoint를 입력해야 한다.

    • Connection Name: conntest
    • [Parameters]탭에서 Username과 Password를 입력하고 Test Connection을 통해 접속이 잘 되는지 확인한다.
  • 만약 연결이 잘 되지 않으면 보안그룹에서 인바운드 규칙 편집을 클릭합니다.

  • 성공 메시지가 나타나면 쿼리 편집기를 연다.

  • 간단한 쿼리를 통해 실제 연결되었는지 확인해본다.

show Databases;