반응형

 

 

AWS Sagemaker Notebook에서 git 연결 문제(?)

 

 

위의 스샷처럼 Jupyter Lab의 왼쪽 메뉴 리스트 중 git 아이콘을 클릭해도 기존에 연결되었던 git 정보가 나오지 않는 형상이 발생하였습니다.

잘되던 것이었기 때문에 정말 이상했지요. 깜짝 놀랐는데 해결 방법은....

그냥 기다리면 됩니다. 그래도 안되면 페이지 새로고침 (컨크롤+r, 커멘드+r)을 실행해 보니 잘 연결되어 보입니다. 아마도 오랜 시간 동안 git 연결을 안 해서 그랬나 봅니다. 

이처럼 Sagemaker 주피터 노트북 에서는 연결 지연 발생으로 문제가 있는 것처럼 안 보이는 경우가 종종 있습니다.

기다리거나 새로고침 버튼이 있는 경우 새로고침 버튼을 없는 경우(저장 후) 페이지 새로고침을 해보세요~

 

 

반응형
반응형


AWS ECR 사용 방법 총정리

전체적인 내용과 순서는 아래와 같다.
1. 도커 이미지를 만들고
2. ECR에 이미지를 올린 다음
3. EC2 VM에서 해당 이미지를 가져와 사용하는 방법을 정리

0. 사전 조건


- AWS 계정 보유 > EC2 인스턴스 생성 > ssh 접속 설정 완료 > IAM 권한 설정 완료
- ECR 레퍼지토리 생성 완료 > 정책등록 완료 > IAM 권한 설정 완료
- AWS CLI 설치 완료

1. 도커 이미지 만들기

ec2 에서 도커를 설치하고 샘플로 이미지를 만들어 보자.

https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/getting-started-cli.html
설치 및 샘플 이미지 만드는 것은 위의 내용을 참고하였음.

$ sudo yum update -y

$ sudo amazon-linux-extras install docker

$ sudo service docker start

$ sudo usermod -a -G docker ec2-user

$ docker info

도커 이미지 만들기

Dockerfile 작성
$ touch Dockerfile
$ vim Dockerfile

FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh

빌드

$ docker build -t hello-world .

이미지 생성

$ docker images --filter reference=hello-world

이미지 실행

$ docker run -t -i -p 80:80 hello-world

이미지 실행 확인

로컬 PC에서 브라우저를 통해 ec2 ip로 접근
(ec2 ip는 curl이 설치된 경우 vm에서 $ curl ifconfig.me 실행을 통해 알아낼 수 있음)
브라우저에서 Hellow, World! 가 나오면 정상 동작하는 것임


2. ECR에 로컬에서 만든 이미지를 푸시하는 방법

자, 이제 앞에서 만든 이미지를 ECR에 올려보자.

ECR 사용을 위한 로그인

aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.regionID.amazonaws.com
바로위 내용으로 미리 로그인을 하지 않으면 권한 에러가 나고 docker push가 안된다.
레퍼지토리의 정책에 해당 사용자의 권한을 주는 것도 잊지 말자.

이미지의 tag를 수정해줌

$ docker tag hello-world:latest 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo

수정된 tag를 이용해서 푸시

$ docker push 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo
Using default tag: latest
The push refers to repository [701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo]
d22a665fdc86: Pushed
d2f6af949869: Pushed
0840544a05e8: Pushed
6babb56be259: Pushed
latest: digest: sha256:a0f90959d7146c7a2dff91665312eeeda12345678904f1asdkbdjs9ad5b4 size: 1155
$


3. EC2 VM에서 해당 이미지를 가져와서 실행하는 방법

이제는 ec2 instance에서 올려 놓은 이미지를 풀 해서 사용하는 것을 해보자.

이미지 pull

$ docker pull 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo

이미지 실행

$ docker run 701234567890.dkr.ecr.us-east-1.amazonaws.com/project_repo

로컬에서 처럼 IP 확인

$ curl ifconfig.me
111.111.111.111

동작 확인

로컬 PC에서 해당 IP 로 접속해서 로컬에서 처럼 Hello World! 가 나오는지 확인.
끝.























반응형
반응형

AWS CLI 설치 방법 on Mac

 

대상 버전 :  version2 

 

다운 받기

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"

설치하기

$ sudo installer -pkg AWSCLIV2.pkg -target /

 

 

특정 버전의 aws cli를 설치하고 싶은 경우

$ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"

$ sudo installer -pkg AWSCLIV2.pkg -target /

 

 

 

awscli 설치 확인 및 버전 확인 방법

 

$ which aws

/usr/local/bin/aws

 

$ aws —version

aws-cli/2.2.24 Python/3.8.8 Darwin/19.6.0 exe/x86_64 prompt/off

 

 

 

 

awscli 환경 설정 방법

 

$ aws configure

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE 

AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 

Default region name [None]: us-west-2 

Default output format [None]: json

 

Access Key/ secret Access Key는 콘솔에서 IAM 메유를 선택하고  User의  Security Credentials Tab에서 알아낼 수 있음.

한번만 보여지고 다시 콘솔이나 메뉴에서 찾을 수 없으므로 별도 저장 관리 필요

 

 

 

자용자별 credential 과 config 정보는 홈 디렉토리 밑에 아래와 같은 각각의 파일에 저장됨

credintial

~/.aws/credentials (Linux & Mac) or %USERPROFILE%\.aws\credentials (Windows)

[default] 

aws_access_key_id=AKIAIOSFODNN7EXAMPLE

aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 

 

[user1] 

aws_access_key_id=AKIAI44QH8DHBEXAMPLE

aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

 

 

config

~/.aws/config (Linux & Mac)    or    %USERPROFILE%\.aws\config (Windows)

내용:

[default]

region=us-west-2

output=json

 

[profile user1]

region=us-east-1

output=text

 

 

 

awscli 실행시 마다 사용자를 정의할 수도 있고

$ aws ec2 describe-instances --profile user1

 

환경변수 설정을 통해 미리 설정해 놓을 수 있음

for Mac

$ export AWS_PROFILE=user1

for Windows

C:\> setx AWS_PROFILE user1

 

 

 

어떤 프로파일 들이 있는지 확인하고 싶을때

$ aws configure list-profiles

default

test

 

설정된 내용을 리스트로 보고 싶을때

$ aws configure list

 

 

 

기타 환경 변수 설정 방법

export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE

export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

export AWS_DEFAULT_REGION=us-west-2

 

기타 환경변수 정보 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html

 

 

 

command line options

$ aws ec2 describe-instances --output table --region us-east-1

-------------------

|DescribeInstances|

+-----------------+

$ aws ec2 describe-instances --output table --region us-west-1

-------------------

|DescribeInstances|

+-----------------+

$ aws ec2 describe-instances --output table --region us-west-2

------------------------------------------------------------------------------

|                              DescribeInstances                             |

+----------------------------------------------------------------------------+

||                               Reservations                               ||

|+-------------------------------------+------------------------------------+|

||  OwnerId                            |  012345678901                      ||

||  ReservationId                      |  r-abcdefgh                        ||

|+-------------------------------------+------------------------------------+|

|||                                Instances                               |||

||+------------------------+-----------------------------------------------+||

|||  AmiLaunchIndex        |  0                                            |||

|||  Architecture          |  x86_64                                       |||

...

 

 

 

반응형
반응형


—————————————
AWS CodeCommit 사용 설정 방법
S/W 개발을 하는데 중요한 요소 가운데 하나가 버전을 관리하는 것이다. 개발을 하다보면 과거 기준으로 돌리거나 특정 시점(예: 부분 기능이 완성됬을 때의 내용) 을 기준으로 돌려 놓을 필요가 있기 때문이다. 그밖에도 여러 이유로  관리가 필요하다. 이러한 관리 기능을 제공하는 오픈 소스 툴로는 git hub 가 있다. 이와 같은 역할을 하는 제품이 AWS에도 있으니 이것이 바로 AWS CodeCommit 이다. https, ssh, 등 다양한 방법으로 접속시 인증을 할 수 있는데 오늘은 https login 사용을 기준으로 정리해 본다. (다른 부분은 같고 인증/접속 하는 방법만 살짝 다르다)

1. IAM User 생성 :

먼저 IAM User를 생성해 줘야 한다. Code Commit 사용시 필요한 Key 와 설정을 한다.
가. AWS에 최초로 가입할때 만든 루트 계정을 이용해서 로그인
나. IAM User 생성 메뉴 접속
다. CodeCommit 사용가능하도록 Permission 추가: 기존에 있는 polity 추가( AWSCodeCommitPowerUser )
- CodeCommit 사용 설정
자세한 생성 방법은 아래를 참고한다. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html

2. Git 설치

아래 주소에서 사용할 환경에 맞는 git을 다운로드 및 설치한다.
http://git-scm.com/downloads

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

3. CodeCommit 에 https 접속을 위한 git credential 생성

- 새로 만든 iam console 로 로그인한다.
- Users에서 해당하는 사용자를 선택 후,
- Summary 페이지 화면에서 Security Credentials 탭 클릭, 후, 중간 이후에 있는. HTTPS Git credentials for AWS CodeCommit 구역에서
Generate Credentials 버튼을 클릭해서 https git credential을 생성
- 생성된 User name과 password를 저장하거나 Download 받아 놓는다. 나중에는 이것을 이용해서 접속하게 된다.

4. CodeCommit console에 접속하고 reposity를 clone

- https://console.aws.amazon.com/codesuite/codecommit/home
- reposity를 찾거나 처음이면 region 을 정하는 등 새로 만들어서 region 과 생성된 connection endpoint를 알아냄
- 알아낸 https. endpoint (오른쪽 위에 있는 Clone URL 클릭 후 Clone HTTPS 선택)를 이용해서 복사 후 다음과 같이 로컬에서 실행 : git clone 복사한 내용 붙이기(예: https://git-codecommit.us-east-2.amazonaws.com/v1/repo )
- 3번에서 알아낸 https credential(https User name과 password)를 사용해서 로그인. 완료되면 자동으로 다운로드 클론됨

5. 사용

- 명령창/터미널에서 AWS CLI 툴이나 sourcetree 등의 툴에서 접속 및 사용하면 된다.


반응형

+ Recent posts