개발 썸네일형 리스트형 25년 원래도 아무거나 하는 사람에서,더 아무거나 하는 사람이 되었다. 예전같았으면 더 삐그덕거렸을텐데,ChatGPT 덕분에 동그란 바퀴는 못만들더라도정오각형쯤 되는 바퀴를 만들고 있지않나 싶다. 개발하면서 가장 많이 듣는 명언중 하나는 (어! 금지),바퀴를 다시 발명하지 말라는 것. 근데, 지금 내가 하고있는 일들을보면잘 만들어진 바퀴를 냅두고 다시 만들고 있는 것만 같아 이래도 되나 싶다.(뭐 그래도 시키니까 해야지) 그래서 아쉬운마음에 블로그를 다시 시작해볼까 하고 남겨본다. 더보기 M1 Mac OS 12 beta 6 - Jetbrain Tool 실행하기 Mac OS 12 베타 버전을 사용중인데, Beta6 에서는 Jetbrain의 Tool에서 아래와 같은 오류가 발생한다. (InteliJ, DataGrip, WebStorm등.. ) 검색해보니, 다른 사람들도 같은 이슈를 겪고 있었다. (https://youtrack.jetbrains.com/issue/JBR-3715) 결론부터 말하면 vmoptions에 두줄을 추가해주면 된다. -XX:+TieredCompilation -XX:TieredStopAtLevel=1 설치된 최신 버전의 경로에 맞춰 찾아서 수정해주자. /Users/${USER}/Library/Application\ Support/JetBrains/WebStorm2020.3/webstorm.vmoptions 설치된 버전에 잘 맞게 적용되었다면 .. 더보기 Cloudfront Serving. 그런데, CORS? 서비스가 이미지나 비디오를 서빙해야하는 경우라면 CDN은 거의 필수적으로 고민하게 된다. AWS환경이라면 Cloudfront를 고민하게되고, 거의 기본적으로 S3를 Origin으로 하는 Distribution을 만들어서 사용하게 된다. 애초에 CORS를 고민하고 시작했으면 크게 문제가 되지 않았겠지만, 그렇지 않았다면 여기서부터 문제가 많-이 생기게 된다. 잠깐 CORS란? 더보기 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다.. 더보기 AWS에서 Serverless 배포 생각정리 고전적인 시스템환경의 APP의 배포방식은 기본적으로 다음의 방법을 따른다. APP 배포/업데이트 개발이 완료된것을 빌드(Jenkins,수동) , Repository(Nexus)에 등록 ALB(nginx와 같은 L7레이어)에서 배포할 인스턴스 타겟 제거 인스턴스에 앱 배포 ALB에 인스턴스 다시 추가 Scale out 늘리는 경우 새로운 인스턴스를 생성, 앱 배포후 ALB에 등록만 해주면 끝 줄이는 경우 ALB에서 인스턴스를 제거후, 앱의 동작이 완료된 시점에 앱 정지, 인스턴스 제거 일반적인 APP의 경우 APP 자체에서 외부 인터넷과 연결될 필요가 없기 때문에, Private Subnet안에 있어도 무방하며, 접근이 필요한 endpoint만 ELB에 연결되어 있어도 큰 문제가 되지 않는다. (cf. 외.. 더보기 ECS with ALB CDK로 ECS를 구현하다보면 AWS 서비스들과 상당부분 유기적으로 연계가 되어 있다는 것을 알 수 있다. 단순히 ECS를 활용해서 AutoScale을 해볼려고 코드 몇 줄만 추가했는데, SNS와 Lambda를 이용하여 Count를 조절하는 함수를 생성하기도 하고... 전반적으로 AWS에서 제공한 메뉴얼이나, API Doc을 읽어도 잘 나와있지 않는 경우들이 있다. 오늘은 이런 것중 하나를 소개하고자 한다. CDK를 살펴보면 ECS에서는 기본적인 패턴들을 제공하고 있다. (ecs_pattern) 거기에는 ApplicationLoadBalancer를 이용하여 EC2 Instance나 Fargate로 배포하는 것이 어느정도 구성되어 있다. 생각해보자. ECS를 쓰는 이유는 여러가지가 있겠지만, 나의 경우에는.. 더보기 EC2, Fargate, Lambda. 뭐쓰지? 서비스를 준비중인 상황에서, 가능한 서비스 기반을 검토해보았다. (Fargate, ECS Anywhere까지 몽땅 테스트는 해봤다. 🤗) (기본적인 EC2, Lambda는 나중에 좀더 구체적으로 정리할 일이 있을 것 같다. ) ECS는 기본비용이 없다. 사용한 Resource에 대한 비용만 내면 된다. 사용가능한 Resource는 EC2 Instance, Fargate, External(외부 머신) External은 ECS Anywhere라고 AWS 외부에 생성되어있는 서버들에 Agent를 설치해서 ECS 서비스를 배포할때 해당 위치들로 배포할 수 있게 해준다. 아직 ELB와 같이 연계된 서비스들은 지원하지 않는다. (지금은 걍 도커 명령 대신 날려주는 수준이다. 🤨) Fargate는 얼핏 비교하면 La.. 더보기 Gitlab CI/CD 사용하기 현재 회사에서는 Gitlab Free tier로 사용하고 있다. 그러다보니 워낙에 Gitlab의 다른 기능에는 관심이 없었는데, (소스만 Private하게 잘 저장하는 곳 아니였나요.. 🤔) 실제 운영 환경까지 고려하면서 서비스 구조를 바꾸다보니 어느정도 잘 동작하는 CI/CD까지 고려하게되고, 그러다보니 GItlab에 있는 기능들을 살펴보게 되었다. 기존엔 회사 한 구석탱이에있는 일반 PC를 활용해서 Jenkins 빌드서버로 사용하면서, API를 이용하여 반자동의 CI/CD툴을 만들어서 사용해왔다. 사용자가 빌드까지는 직접 진행해두고, 배포할 Application과 인스턴스를 선택해서 배포하면 알아서(정해진 로직에 의해🤫) Gracefully하게 배포되는 방식이다. 그렇지만 이런 방식은 커밋/빌드 단계.. 더보기 AWS CDK - API Gateway, Lambda (1) 회사에서 AWS로 EC2만 주구장창 사용하다가, 비용적인 문제와 Scale up / out 에 대한 고민이 깊어지기 시작했다. Spot Instance를 최대한 활용해보기도 했지만 기본적으로 24시간 EC2를 켜두는 것은 잘못된 방법인것 같았다. 그래서, AWS에서는 쓰는만큼만 사용하면 되는 Serverless한 서비스들로 눈을 돌렸다. 너무나 다양한 서비스들이 있기에, 기존에 사용하던 것들을 하나씩 대체하면서 개발 환경을 구성해보기로 했다. 우선 AWS Console에서는 (비교적🤔) 쉽게 Lambda와 API Gateway 구성을 할 수 있다. 그렇지만 개발자들이 매번 그 구성을 따라하면서 직접 개발하고 배포하기에는 너무나 리스키한 부분이 많다. (AWS Console에 들어와서 뭔가 직접 조작한다는.. 더보기 이전 1 다음