본문 바로가기

개발/AWS

(28)
Envoy(엔보이)란? envoy proxy띄우기 Envoy(엔보이)란? 엔보이는 L7 프록시(OSI 7 Layer)이고 커뮤니케이션 버스입니다. 커다란 현대적인 서비스 기반 아키텍쳐를 위해 만들어졌습니다. 네트웍과 어플리케이션 문제들을 조금 더 쉽게 해결 할 수 있습니다. 프록시란? 프록시란 일종에 자동 가격비교 사이트 같은 것입니다. 우리가 특정 물건을 검색하면 어떤 사이트에서 얼마에 파는지 알려줍니다. 프록시는 여기에 더해서 가장 가격이 저렴한 사이트로 바로 이동하게 해주는 기능이 포함 되어 있다고 생각하시면 됩니다. 사용자의 요청이 어떤 서버로 가면 좋을지를 판단해서 사용자의 요청을 해당 서버에 보내고 그 결과를 사용자에게 대신 전달해주는 것이 프록시 입니다. Transparent proxy(트렌스패런트 프록시)란? 투명한 프록시로서 사용자가 요..
aws s3에 script로 index.html등 static파일 배포하기 개요 s3웹 호스팅을 사용하다가 파일을 수정했다면 다시 배포를 해주어야 합니다. s3 웹 콘솔을 이용해 배포하면 되지만 매번 수정될때마다 반복 작업을 하면 그것 또한 귀찮기 때문에 명령어로 하고 싶은 생각이 듭니다. 핵심은 아래 명령어를 이용해 file을 copy하는 것입니다. aws s3 sync ./ s3://bible-finder-vue --acl public-read --acl public-read 를 붙여주어야 배포 하고나서도 public access가 됩니다. aws s3 sync ./ s3://bible-finder-vue --acl public-read --exclude ".git/*" .git을 제외하고 올리려면 뒤에 --exclude를 추가 합니다. Prerequisit krksap.t..
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 비용 한단계 올라갈때마..
AWS IAM 정책(policy) 정리 - AdministratorAccess, PowerUser 등 AWS IAM 정책(policy)을 정리 해보겠습니다. 왜냐하면 최근에 보안 관련해서 AWS IAM권한중에 IP를 제한하는 작업을 해야 하는데 AWS에 정책들이 워낙 많고 애매하면 AdministratorAccess를 줬다가 할꺼 하고 다시 빼고 하는 등 꼬이고 문제가 해결 되면 또 잊어버리고 이런 일이 너무나 반복되어 한번 정리를 하고자 합니다. 좀 씁쓸한 이야기 이긴 하지만 우리는 금고는 너무 좋은데 금고에 보관할게 없습니다. ㅋㅋㅋ 금고가 중요하다고 하니 이 작업을 하긴 하지만 하면서도 뭔가 보람이 없네요. 그리고 이게 손은 많이 가고 권한을 제한하는 작업이기 때문에 안돼면 나한테 가지고 와서 풀어달라고 하고 작업하다가 끊기는 것 만큼 회사에서 예민한 문제가 없기 때문에 이 작업이 돌고 돌다가 처리..
AWS ECS에 이용해 컨테이너 배포하기 Docker를 쓰는 이유 어플리케이션을 Container형태로 만들고 Container형태로 올릴 수 있습니다. Docker를 안쓰면 서비스 운영을 못하나요? 서비스 운영은 도커 없이도 가능 합니다. 도커가 없이도 우리는 개발을 잘 하고 잘 살았습니다. 그런데 도커가 나오면서 도커를 또 배워야 하고 아키텍처도 바꿔야 하고 Dockerfile도 만들어주어야 하고 Container를 프로세스 관리 하듯이 관리 해주어야 하기 때문에 손이 더 많이 가는데 왜 굳이 도커를 써야 하는것일까요? Container는 일종에 리눅스 OS입니다. 어플리케이션을 실행 하려면 OS가 있어야 합니다. Docker가 나오기 전에는 서버에 리눅스를 설치하고 Python3를 설치하고 어플리케이션을 올리고 이런 과정으로 어플리케이션을..
aws 코그니토(cognito)로 사용자가 api호출 할 때 권한 제어하기