본문 바로가기

개발

(119)
Aws S3에 버킷 만들고 웹 호스팅하기 개요 html + javascript를 이용해 개발을 하다보면 웹에 올리고 싶을 때가 있습니다. 이럴 때 aws s3의 정적 호스팅을 이용하면 내가 개발한 페이지를 쉽게 웹에 올려서 공유 할 수 있습니다. 개인적인 용도로 사용하는 정도라면 비용은 나오지 않습니다. 내가 개발한 html + js코드를 배포하고 싶다면 이전에는 ec2를 띄우고 nginx를 올리고 index.html을 올리는 과정을 거쳤지만 간단하게 개발한 것을 올려보고 싶을 때 ec2까지 띄워서 올리려고 하면 배보다 배꼽이 큰 경우가 많습니다. 그리고 정적 파일은 s3호스팅으로 실제 서비스 레벨까지도 가능합니다. 이렇게 올려서 실제로 문제없이 서비스를 하고 있는 곳이 있습니다. 처음에 퍼블릭 액세스를 활성화 안해서 이렇게 나온다. 호스팅을 ..
aws cognito pw없이 로그인 하기 로그인은 우리에게 아주 친숙한 기능이고 맨날 id넣고 비밀번호 찾기 하고 등 웹 서비스에서 기본입니다. 하지만 보안, 인증 등과 관련 되어 있기 때문에 개발자가 구현 하는 로직 중에 가장 까다로운 로직이 아닐까 싶습니다. 특히나 금융쪽은 otp같은것도 받으니까 더욱더 복잡합니다. 요즘에 카카오 로그인을 코그니토에 붙이고 있는데 카카오에서 토큰을 받은 다음에 서버에서 토큰을 가지고 사용자 email등 정보를 받아온 후 우리 사이트의 cognito 인증까지 받아야 로그인이 됩니다. 헉.. 헉.. 헉... ㅋㅋ 구현 하다보니 아래와 같이 구현 하면 될 것 같아서 몇번 읽다보니 영어로 읽는데 오래걸려서 번역 해놓고 볼려고 이 글을 씁니다. 위 다이어그램을 설명 해보면 아래와 같습니다. 1. 사용자는 로그인 폼에..
AWS EC2 t3.nano, t3.mircro, t3.small, t3.medium 비용 그리고 npm, flask돌리기 개요 EC2하나 띄워서 서버로 이용 해볼까 하는데 비용이 얼마가 나올지 궁금해 찾아보았습니다. 결과 ap-northeast-2 서울 리전 t3.nano기준 월 5천 300원 정도 나옵니다. 그런데 이건 create-react-app으로 만든 리액트 앱이 빌드가 안됩니다. 메모리가 부족하다고 합니다. memory가 500메가인데 npm이 메모리를 엄청나게 잡아먹네요. flask앱 올리고 nginx까지 올린 다음에 react-app을 배포하려고 했는데 메모리 부족으로 빌드가 안됩니다. npm이 빌드할때 메모리를 많이 먹는 것 같네요. zsh, fasd등도 깔긴 했어요. 그래서 t3.small로 바로 갈려다가 t3.micro를 해보고 올려보려고 합니다. t3.micro, t3.small 비용 한단계 올라갈때마..
pid로 내렸다 올리는 스크립트 개요 Linux에 어플리케이션을 띄우면 해당 어플리케이션의 pid를 발급 해줍니다. Process Id의 약자겠지요? 이 pid를 사용할 때가 있으니 애플리케이션을 재부팅 하거나 수정된 어플리케이션을 재배포 할 때 입니다. 원리는 어플리케이션을 실행할 때 받은 pid를 파일로 저장 해놓았다가 저장해놓은 pid를 가지고 어플리케이션을 내리고 다시 올릴때는 새로 받은 pid를 파일에 저장해놓는 원리입니다. deploy.sh BEFORE_PID=$(cat sh.pid) echo "before PID: $BEFORE_PID" kill -9 $BEFORE_PID git pull nohup python setup.py runserver --host=0.0.0.0 & echo $! > sh.pid NEW_PID=$(..
shell script에 파라메터 넘기기 개요 저는 Shell Script를 배포할때 보통 많이 사용 했습니다. 그래서 dev인지 qa인지 prd인지 구분해야 하는 경우가 많았는데요, 그럴 때 parameter를 이용해 데이터를 넘겼습니다. 결론부터 말하자면 받을 때 $1을 쓰시면 됩니다. deploy.sh if [ "$1" == "" ] ; then echo "sh deploy.sh dev" exit 0 fi PROFILE="$1" echo $PROFILE 실행 방법 sh deploy.sh qa 결과 qa 2개를 받고 싶다면 $1 $2를 쓰면 되겠죠? 넘길때는 sh deploy.sh hello world 이렇게 2개를 넘겨주시면 됩니다.
curl 쓰는 법 curl은 shell에서 get, post등을 날릴 수 있는 명령어이다. get같은 경우는 웹브라우져로 날릴 수 있지만 post를 날리려면 뭔가 깔아야 한다. 그런데 커맨드에서 날릴 수 있기 때문에 curl을 쓴다. curl www.google.com curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/T4HC5T16H/
AWS IAM 정책(policy) 정리 - AdministratorAccess, PowerUser 등 AWS IAM 정책(policy)을 정리 해보겠습니다. 왜냐하면 최근에 보안 관련해서 AWS IAM권한중에 IP를 제한하는 작업을 해야 하는데 AWS에 정책들이 워낙 많고 애매하면 AdministratorAccess를 줬다가 할꺼 하고 다시 빼고 하는 등 꼬이고 문제가 해결 되면 또 잊어버리고 이런 일이 너무나 반복되어 한번 정리를 하고자 합니다. 좀 씁쓸한 이야기 이긴 하지만 우리는 금고는 너무 좋은데 금고에 보관할게 없습니다. ㅋㅋㅋ 금고가 중요하다고 하니 이 작업을 하긴 하지만 하면서도 뭔가 보람이 없네요. 그리고 이게 손은 많이 가고 권한을 제한하는 작업이기 때문에 안돼면 나한테 가지고 와서 풀어달라고 하고 작업하다가 끊기는 것 만큼 회사에서 예민한 문제가 없기 때문에 이 작업이 돌고 돌다가 처리..
aws ami에 nginx, docker설치하고 띄우기 git sudo yum install git -y git을 깔아야 뭘 받아와서 실행 할 수 있음 git credential설정 git config --global credential.helper '!aws codecommit credential-helper $@' git config --global credential.UseHttpPath true zsh zsh를 깔아야 history기능 같은게 되어서 작업하기가 편하다. sudo yum install zsh -y 이거 깔아야 아래 명령어가 됨 sudo yum install util-linux-user -y sudo chsh -s $(which zsh) ec2-user https://superuser.com/questions/231735/how-do-i-..