반응형

 AWS 를 이용해서 어떻게 파이프 라인을 구축하고 사용하는지 공부해보려고 이 책을 읽기 시작했다. 그런데 이책.. 생각보다 읽기가 쉽지 않다. 
  처음에는 챕터 1에서 AWS 기반 데이터 과학에 대한 소개가 이루어지고, 챕터 2에서는 AWS를 활용한 모범사례가 소개되어있다. 그러나 이 부분에서는 다양한 기술과 내용들이 많이 다뤄져서 진도를 나가기가 어려웠다. 특히, AWS에 대한 기반 지식이 부족한 나에게는 쉽게 이해되지가 않았다.
  그래서 생각해 보니 챕터 3부터 시작해서 주요 기술이 자세히 설명되어 있는 부분부터 읽는 것도 좋을것 같았다. 책을 읽으면서 중요한 기술들을 학습하고, 해당 내용을 실습하며 익히다 보면 보다 쉽게 파이프 라인 구축에 도움이 될것이다. 

  이 책을 읽으면서 가장 큰 단점은 이미지나 캡쳐 화면과 같은 시각적인 자료가 부족하다는 점이다. 텍스트로만 설명 되어 있어 설정 값들과 텍스트가 의미하는 것들을 이해하는 데에 어려움이 많았다. 책에 시각적인 자료를 추가하거나 관련된 예시와 함께 설명해 주면 내용을 보다 쉽게 이해할 수 있을 것이다.
  결론적으로, 이 책은 AWS에 대한 기반 지식이 있는 독자들에게 더 유익하게 다가갈 수 있을것이다. 그리고 책을 공부하기 위해서는 먼저 AWS 에 대한 기반 지식을 충분히 습득한 후에 읽는것이 좋을것 같다. 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

728x90
반응형
반응형

로컬 또는 git에서 빌드한 파일을 AWS에 ubuntu 로 파일 옮기는게 귀찮아서 jenkins 로 받아서 가져올수 있도록 만들어봤다..

이곳에 가면 바로 설치할 수 있는 가이드가 있다.


https://jenkins.io/doc/book/installing/#on-macos-and-linux


docker run \

  -u root \

  --rm \

  -d \

  -p 49000:8080 \

  -v jenkins-data:/var/jenkins_home \

  -v /var/run/docker.sock:/var/run/docker.sock \

  jenkinsci/blueocean


각각 의 라인 별로 설명도 잘 되어있다. 나는 우선 host port를 8080으로 사용하기 싫어서 49000번으로 설정했다.


CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                NAMES

ac6489e4bc34        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   3 seconds ago       Up 2 seconds        50000/tcp, 0.0.0.0:49000->8080/tcp   suspicious_benz

e99420ff2ee4        mysql                 "docker-entrypoint.s…"   24 hours ago        Up 24 hours         0.0.0.0:3306->3306/tcp, 33060/tcp    mysql-db



run 할때 이름을 따로 안줘서 이상한 이름이 들어가 있으니 이름을 바꿔보자.


docker rename suspicious_benz jenkins


ONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                NAMES

ac6489e4bc34        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   10 minutes ago      Up 10 minutes       50000/tcp, 0.0.0.0:49000->8080/tcp   jenkins

e99420ff2ee4        mysql                 "docker-entrypoint.s…"   24 hours ago        Up 24 hours         0.0.0.0:3306->3306/tcp, 33060/tcp    mysql-db


이렇게 정상적으로 이름이 바뀌었다.


Host Url 의 49000번 포트로 접속을 하면 Jenkins 가 기동된 모습이 나온다. 그런데 아직 정상적인 모습은 아니다.



Administrator password 를 넣으라는데 어디서 찾지?? 다음 명령어를 통해 jenkins container 안으로 들어간다.


 docker exec -it jenkins bash


container 로 접속 한 후에 저 캡쳐한 사진을 보면 경로가 나와있다. 


/var/jenkins_home/secrets/initialAdminPassword


이 파일 안에 password 가 있다. password 를 복사해서 붙여넣고 Continue를 누르면 된다.



난 첫번째꺼 선택하고 진행했다.

이것저것 설치되면서 진행이 된다.


admin 계정으로 생성할 정보를 넣은 후 Save and Continue를 누른다.



접속 URL 을 다시 안내해준다.



이렇게 해서 Jenkins 설치가 마무리 되었다.


728x90
반응형

'Development > Build' 카테고리의 다른 글

[Gradle] gradle build error tool.jar... valid JDK  (0) 2018.10.19
[Gradle]Ubuntu 에서 Gradle 설치하기  (0) 2018.10.19
Mac 에서 gradle 설치  (0) 2016.07.04
Maven 라이브러리 추출  (0) 2016.01.06
Maven clean, install, build??  (0) 2015.05.12
반응형

Docker 로 mysql 를 올려봤다. 


실행시키는 방법은 아주 간단하다.


docker run --name mysql-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<password> -d mysql


이렇게 하면 mysql container 가 구동된다.


docker container ps 


CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES

e99420ff2ee4        mysql               "docker-entrypoint.s…"   26 minutes ago      Up 6 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-db


여기까지는 쉬웠다. 

그런데 내 로컬 컴퓨터에서 저 DB 에 접속을 하려고 하니.. .접속이 안됐다. 참고로 저 위치는 AWS 에 있는 EC2 에 ubuntu를 올려서 설치한 것이다.


먼저 AWS 보안 그룹을 추가했다.


그래도 안된다.


그 다음에 mysql 설정을 찾아봤다.


docker exec -it mysql-db bash


이렇게 하면 container 안으로 들어올 수 있다.  container에 들어와서 mysql -u root -p 를 이용해서 mysql 로 접속한다.


mysql> select host from mysql.user where user='root';

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

| host      |

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

| %         |

| localhost |

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

2 rows in set (0.00 sec)


저렇게 쿼리를 했을 때 %가 포함되어있으면 root 계정에 한해서 모든 접속을 허용한다고 한다.... 그런데 안되네?????


계속 해서 에러가 난다.


Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found


이 에러는 mysql 의 password 방식이 변경되서 나는 에러라고 한다. 

그래서 다시 검색!!!! 그러던 중 아래와 같은 글을 발견했다.


https://stackoverflow.com/questions/49194719/authentication-plugin-caching-sha2-password-cannot-be-loaded


먼저 /etc/mysql/my.cnf 파일에 아래와 같은 설정을 추가한다. 


[mysqld]

default_authentication_plugin=mysql_native_password


그래도 안된다...


ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';


나같은 경우는


ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';


이렇게 실행을 했더니 드디어 접속이 됐다. 

하아... 정말 길고 긴 여정이었다. 

docker로 mysql 은 설치 했는데 접속을 할줄 몰라서 고생하고, 어떻게 접속을 해야 하는지 몰라서 찾아보고...

접속을 했는데 편집기가 설치가 안되어 있어서 vim 도 다시 설치하고...

정말 알아야 할게 너무 많구나.

그런데.. 내가 원래 하려던 것은 이게 아니었는데 DB 를 준비하려고 하다 보니 이런 삽질을 했다...ㅠㅠ


728x90
반응형
반응형

현재 AWS  EC2 에 올라가 있는 ubuntu 에 kubernetes를 설치해 보았다. 

그런데 설치를 하다보니 프리티어로 받은 t2.micro 가지고는 너무 성능이 느렸다. 거의 접속도 못할 지경에 이르렀다. 그래서 어차피 설치하고 지울거니깐 t2.large로 올렸다.


설치 전에 Docker 가 먼저 설치 되어 있어야 한다.

(Docker 가 설치 안되어 있다면 https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository 여기 참고하거나 아래 링크 에도 내용은 나와있다.)


https://kubernetes.io/docs/setup/independent/install-kubeadm/


여기에 들어가보면 친절하게 설치 하는 방법을 찾을 수 있다.

내용을 살펴보면 Docker 설치도 포함하고 있어서 Docker 가 설치되어 있지 않다면 그대로 따라 하면 된다.


그리고 나는 Ubuntu 에 설치를 하니 아래와 같이 명령어를 실행 했다. 혹시 명령어 실행중 permission 에러가 나면 sudo 붙이고 실행 하면 된다.

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

이렇게 하면 kubelet, kubeadm, kubectl 이 설치가 된다.


https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/


그 다음 스텝으로 위 링크로 들어가서 클러스터를 생성 하면 된다.


여기 나와 있는 내용중에 보면 사양이 나와있다. 

  • One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS
  • 2 GB or more of RAM per machine. Any less leaves little room for your apps.
  • 2 CPUs or more on the master
  • Full network connectivity among all machines in the cluster. A public or private network is fine.

최소 사양이다. 이러니 t2.micro 로는 역부족이었다.

kubeadm init <args> 

이렇게 명령어를 날리면 뭔가 내용이 올라오면서 설치가 된다. args는 다양하게 있으나 나는 우선 필요가 없어서 안 넣었다. 설치가 완료되면 아래와 같은 내용들이 나온다. (ip랑 port, 토큰 부분은 ㅌㅌㅌ로 처리했다.)


Your Kubernetes master has initialized successfully!


To start using your cluster, you need to run the following as a regular user:


  mkdir -p $HOME/.kube

  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

  sudo chown $(id -u):$(id -g) $HOME/.kube/config


You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

  https://kubernetes.io/docs/concepts/cluster-administration/addons/


You can now join any number of machines by running the following on each node

as root:


  kubeadm join <ip>:<port> --token ㅌㅌㅌㅌㅌㅌㅌㅌ --discovery-token-ca-cert-hash sha256:ㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌㅌ


잘 읽어보면 cluster 시작하려면 .kube에 config 파일을 만들라는 내용이 있다. 아주 편리하게 저 내용을 그대로 복사해서 붙여넣으면 된다. 그리고 아래 join에 나오는 내용은 잘 복사해서 저장해두자.


이렇게 하고 "kubectl get pods --all-namespaces" 라고 치면 아래와 비슷하게 나온다. 


NAMESPACE     NAME                                       READY     STATUS    RESTARTS   AGE

kube-system   coredns-78fcdf6894-86s7n                   0/1       Pending   0          7m

kube-system   coredns-78fcdf6894-ngk7x                   0/1       Pending   0          7m

kube-system   etcd-ip-172-31-22-134                      1/1       Running   0          7m

kube-system   kube-apiserver-ip-172-31-22-134            1/1       Running   0          7m

kube-system   kube-controller-manager-ip-172-31-22-134   1/1       Running   0          6m

kube-system   kube-proxy-46x54                           1/1       Running   0          7m

kube-system   kube-scheduler-ip-172-31-22-134            1/1       Running   0          6m


그리고 위에도 써있듯이 cluster에 network를 배포해야 한다. 

위 링크(https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network 또는 https://kubernetes.io/docs/concepts/cluster-administration/addons/) 따라가보면 종류별로 방법이 있다. 설치하고 나서 다음과 같이 확인 해보면 된다.


 kubectl get nodes

NAME               STATUS    ROLES     AGE       VERSION

ip-111-11-11-111   Ready     master    32m       v1.11.2


아직 node 를 추가 못해봤는데 다음에는 node 도 따로 추가해봐야겠다.


728x90
반응형
반응형

최근 백기선님이 하시는 방송을 보면서 Docker를 따라 해보려고 하니 내가 가지고 있는 Mac 에는 한계가 있었다. 설치를 하려고 하니 설치가 안 된다고 한다..

2010년 mid 맥북 프로인데.. 그래서 어쩔수 없이 Docker는 AWS에 올려놓은 Ubuntu 에 설치하고 따라하기 시작했다.

그런데 다시 문제가 발생했다. 내가 로컬에서 작성한 파일을 EC2 서버에 올려야 하는데 어떻게 해야 하는거지????

그래서 찾기 시작했다. 


일단 작동중인 Ubuntu 서버에 FTP 설정이 필요했다.


1. Ubuntu 서버에  vsftpd 를 설치한다. 


먼저 apt-get 을 업데이트 한다.

sudo apt-get update
cs

그리고 vsftpd를 설치한다. vsftpd(Very Secured FTPD) : 우분투에서 기본적으로 제공되는 FTP 서버이다.

sudo apt-get install vsftpd
cs

설치가 완료되면 /etc/vsftpd.conf 파일에서 몇가지 설정을 변경해줘야 한다.


아래 설정에 대한 주석 해제

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list


위에 설정에서 chroot_list_file에 지정되어있는 파일을 만들어서 root를 추가해준다.

sudo vi /etc/vsftpd.chroot_list
cs

root 추가

sudo systemctl restart vsftpd
cs

그리고 vsftpd 를 재시작 해줘야 한다. 이렇게 하면 일단 Ubuntu 서버는 준비가 됐다.


2. 보안 그룹에 20 번 포트 등록

이제 FTP 서버에 접속할 수 있도록 보안그룹에 설정을 해줘야 한다.



이렇게 하면 끝


3. FileZilla로 접속해보자!!



이렇게 하면 접속이 완료된다.!!!

 Docker 한번 해보려다가 많은것을 배운다..


728x90
반응형
반응형


한빛 미디어 "나는 리뷰어다" 에서 "아마존 웹 서비스 인 액션" 을 보내줬다. 실제로 회사에서는 업무와 직접 연관이 없어서 사용을 못해봤지만 항상 써봐야겠다는 생각 하고 있었다. 그런데 실제로 어떻게 쓴는 건지도 모르고 겨우 알고 있는것은 무료 계정을 만드는 정도밖에 몰랐다. 덕분에 예전에 아마존 세미나 가서 받았던 100달러 크레딧도 하나도 안쓴채 그대로 계정에 남겨져 있었다.


이 책 덕분에 현재는 AWS 에 내가 만들어 놓은 우분투 서버가 돌고 있다. 그안에 뭔가를 만들어서 운영중이지는 않지만 지금은 주로 우분투에 설치 되어있는 DB를 쓸일이 있어서 심심치 않게 사용을 하고 있다. 


2017/06/17 - [Development/AWS] - [AWS]AWS 에 가상서버 만들기

2017/06/20 - [Development/AWS] - [AWS]AWS 가상 서버에 고정 공인 IP 주소 할당하기

책을 보면서 따라해보면 실습도 어렵지 않게 할 수 있다. 

책은 AWS 에 대한 설명부터 시작해서 서버 사용, 운영하기, 배포, 보안 설정, DB, 아키텍쳐 설계에 이르기까지 AWS를 이용해서 할수 있는 많은 내용들이 담겨져 있다. 




위 사진은 실제 책 내용에 들어있는 그림이다. 실습을 진행하면서 쉽게 따라 할수 있도록 그림에도 화살표 표시를 해놓았다. 가끔 컴퓨터 관련 책들을 읽다 보면 글과 그림이 같이 나오는데 글의 내용이 그림의 어느 부분을 가르키고 있는지 찾기가 힘들때가 있다. 다행스럽게도 이 책에서는 화살표 표시를 해줘서 실습을 혼자서 진행하는데 무리가 없다.



그리고 "클린업" 이라는 중요한 코멘트가 각 실습의 끝네 나온다. 이 "클린업" 이라는 코멘트는 실습에 사용한 AWS 인스턴스를 초기화 시킨다던지 제거 한다던지 하는 내용을 담고 있다. 내가 가입 되어있는 페이스북 SNS 에 가끔씩 AWS 를 사용하다가 요금 폭탄을 맞았다는 사람들의 글을 올라온다. 나같은 무료 계정을 사용하고 있기 때문에 1년간 무료로 사용할 수 있지만 이 무료가 모두 다가 무료가 아니다. 일정 범위내에서 사용을 해야 무료이고 무료의 범위를 넘어간 사용량에 대해서는 당연히 과금이 들어간다. 그렇기 때문에 저 "클린업" 이라는 코멘트는 이책을 보고 실습을 하면서 비용이 발생하지 않도록 방지하는데 꼭 필요한 요소이다. 그리고 실습내용에 앞서서 현재 실습 내용은 무료범위에서 가능하다라든지, 이번 실습은 무료 범위를 벗어난다라든지 요금에 관련된 주의 사항이 항상 써있다. 내가 AWS 관련 책들을 많이 읽어보지는 않았지만 이 부분이 이 책의 큰 장점이 아닐까 생각이 된다. 


지금은 많은 부분을 다양하게 사용하고 있지는 않지만 앞으로더는 더 자주 다양한 방법으로 사용하게 될것 같다. 그래서 이 책은 AWS 를 활용하기 위한 가이드 북으로 딱 좋다고 생각이 된다. 

728x90
반응형
반응형
AWS 에 가상서버를 하나 만들면 이 서버를 시작하고 정지 할 때마다 공인 IP 주소가 변경된다. 그래서 AWS 는 Elastic IP 라는 고정 공인 IP 주소를 할당해 주는 서비스를 제공해주고 있다. 


EC2 서비스에 보면 왼쪽에 Elastic IPs 라는 메뉴가 보인다. 



메뉴에 들어가보면 위와 같은 화면이 나온다. Allocate new address를 클릭하면 아래와 같이 Elastic IP가 할당된다.



IP가 할당되었으니 이제 가상서버하고 연결을 해주면 된다.





Actions 메뉴에 있는 Associate address를 선택한다. 




Instance 항목에 가상 서버의 인스턴스 ID를 입력하면 된다. 콤보박스로 선택하게 되어있다. 



그러면 이렇게 연결이 완료된다. 


가상 서버 만드는 것만큼이나 아주 간단하고 쉽다. 



728x90
반응형

'Development > AWS' 카테고리의 다른 글

네트워크 관련 내용들  (0) 2023.01.13
[AWS] EC2 Ubuntu 서버에 FTP 서버 설정  (0) 2018.04.01
[AWS]AWS 에 가상서버 만들기  (0) 2017.06.17
반응형

기존에 사용하고 있던 넷북을 서버로 켜놓을까 하다가 항상 켜놓을 수 없고 매일 사용할때마다 코드 꼽고 하는 작업이 번거로웠다. 그리고 SSH로 접속을 해보았는데 좀 느려서 써먹기는 좀 힘들어 보였다. 그래서 AWS 에 가상 서버를 한번 만들어서 써보자는 생각이 들었다. 어차피 프리티어 기간에는 어느정도 수준 까지는 공짜로 사용할수 있으니 딱 좋았다. 그리고 예전에 AWS 세미나 갔을때 받았던 크래딧도 있어서 이 기회에서 써봐야 겠다고 마음먹었다.




먼저 아마존 Console Home 에서 EC2 를 클릭하고 나오는 화면에서 Create Instance 밑에 있는 Launch Instance 를 클릭한다. 



여기에서는 AWS 에서 만들 가상 서버 종류를 선택할 수 있다. 서버 아래에 보면 "Free Tier Eligible" 이라는 단어가 있는 서버가 프리티어에서 제공되는 서버인것 같다. 참고로 Virtual Appliance 는 하이퍼 바이저에서 실행할수 있는 OS와 기타 소트프웨어를 포함하는 이미지 이다. 그리고 위에 보이는 AMI(Amazon Machine Image)는 EC2 서비스를 사용하기 위핸 Virtual Appliance 다.



Instance Type은 가상 서버의 크기를 결정하는 것이다. 여기도 역시 "Free Tier Eligible" 이라고 써있는것을 선택한다.



따로 설정을 변경할 일이 없기 때문에 모든 설정은 Default 로 되어있는것으로 하고 바로 Next를 누른다.



가상 서버에 저장장치를 추가하는 화면이다. 역시 Default로 하고 Next를 누른다.


   


여기는 태그를 추가하는 화면이다. 키-값의 쌍으로 이루어져 있다. 적당한 값을 넣고 Next를 누른다.





방화벽은 SSH로 접근을 허용할 수 있도록 기본 구성을 하고 "Review and Launch"를 클릭한다.



지금까지 설정사항을 보여준다. Launch를 클릭한다.



가상 서버의 키를 선택하는 화면이다. 나는 미리 키를 만들어둬서 기존에 만들어놨던 키를 선택했다. 만약 만들지 않았다면 EC2 서비스 화면에서 "Key Paris" 메뉴를 선택해서 만들면된다. 가상 서버를 로그인 하려면 키가 필요하며 이 키는 비밀번호를 대신해서 사용한다. "Launch Instances"를 클릭하면 모든게 마무리 된다. 



잘 동작 하는지 확인해보려면 맨 처음 보았던 화면(EC2서비스 화면) 에서 Instances를 클릭하면 현재 서버가 어떤 상태인지 확인 할 수 있다.

지금 글로 적기는 했지만 실제로 해보면 정말 간단하다. 윈도우 설치보다도 더 간단하다. 클릭클릭 몇번만 하면 내가 사용할 수 있는 서버가 짠~ 하고 만들어진다. 아직 모르는게 많지만 앞으로 써보면서 많이 배워야겠다.


728x90
반응형

+ Recent posts