전체 글 215

[0622] jwt를 이용한 로그인 시스템 구현

user 서버에 로그인 요청 -> user db에서 ID/Password 대조 후 일치하는 사용자면 토큰 생성 -> 응답으로 유저에게 토큰 반납 프론트엔드가 없으므로, main 서버에 api 요청시 헤더에 수동으로 토큰값 입력 -> main 서버에서 토큰 검증 jwt 토큰을 생성하기 위한 함수 생성 로그인 로직 구현 바디에 ID/Password를 담아서 요청시 DB에 일치하는 유저가 있는지 확인 user_id와 user_type을 담은 토큰 생성 로그인 및 토큰 생성 구현 완료 헤더에 포함된 토큰을 검증하는 로직 구현 트러블슈팅 [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 서버가 2개 이상의 응답을 보내려할때 ..

Code States/TIL 2023.06.22

[0621] EC2를 이용한 Grafana 구축

ec2 생성 ssh를 통해 ec2 접속 도커 설치 후 컨테이너로 Grafana 실행 ec2 퍼블릭 주소 :3000 포트로 접속 가능 데이터 소스로 클라우드 워치 설정, AWS 접근 키 설정 Dashboard 생성 추출하고자 하는 데이터의 값을 입력 옵션 설정 후 임포트 같은 방식으로 필요한 소스들을 임포트 각 소스에 따라 모니터링 화면을 볼 수 있음 표시된 부분을 통해 클러스터나 서비스, 테이블명 등 설정 가능 커스텀하여 필요한 모니터링 소스들을 한 화면에 보이도록 만든 대시보드

Code States/TIL 2023.06.22

[0621] VPC 생성 및 서브넷 구현

VPC 생성 새로 생성한 VPC에 기존에 만들었던 서비스들 이동(새로 생성) 프라이빗 서브넷에 접근하기 위해 람다함수 권한 추가 { "Version": "2012-10-17", "Statement": [ { "Sid": "LambdaBasicExecution", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Sid": "LambdaVPCAccess", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterfa..

Code States/TIL 2023.06.21

[0620] Github Action을 이용한 Lambda 함수 자동화

ECR을 이용해서 도커 이미지를 람다로 배포하려했으나 오류로 실패.. 우선은 zip 파일을 업로드하는 것으로 변경 github action을 위한 yml 파일 작성 name: Deploy Lambda Function on: release: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@master - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-..

Code States/TIL 2023.06.21

[0619] Secrets Manager 사용하여 ecs 환경변수 설정

시크릿 매니저에서 환경변수 생성 확인을 위한 코드 작성 새 태스크 정의 개정 생성 환경변수 입력 태스크 역할 설정 시크릿 어세스 폴리시 권한 부여해야 함 트러블슈팅 특정 환경변수 값을 불러오는 것이 아닌 시크릿매니저에 입력된 모든 값을 불러옴 태스크 정의에서 시크릿 매니저의 arn을 입력할 때 뒷부분에 변수명을 붙여줘야 함 해결 엔드포인트를 통해 디비에 접근도 정상적으로 되는 것을 확인할 수 있음 같은 방법을 mysql에 대해서도 진행

Code States/TIL 2023.06.19

[0618] Github Action을 통한 ECR ECS 자동화

Github Action을 위한 yml 파일 작성 8~14번 라인 환경변수 설정 50번 라인 맨 끝 폴더명 설정 깃허브 레포지토리에서 환경변수 설정 name: Publish Docker Image and Deploy to Amazon ECS on: push: branches: [ "main" ] env: AWS_REGION: ap-northeast-2 # set this to your preferred AWS region, e.g. us-west-1 ECR_REPOSITORY: test # set this to your Amazon ECR repository name ECS_SERVICE: test_service # set this to your Amazon ECS service name ECS_CLUS..

Code States/TIL 2023.06.18

[0617] 도커 컨테이너 동작 확인 및 ECS 작동 테스트

서버로 구현할 코드 작성 express사용, hello world 출력 package.json 파일에서 npm start 정의 .dockeringnore 파일 작성 Dockerfile 작성 docker build로 이미지 빌드 컨테이너 동작 확인 컨테이너 정상 작동 이미지를 저장할 ECR 생성 푸시 명령 참고하여 ecr에 이미지 푸시 ecr 이미지를 이용하여 태스크 정의 생성 컨테이너 포트 설정 서비스 생성 보안그룹 설정 사진에 없지만 네트워킹 탭 밑의 로드밸런싱 탭에서 alb 및 타겟그룹 설정 alb의 주소로 접속시 정상적으로 접속되는 것을 확인 태스크의 퍼블릭 주소로는 접속이 안되길래 이유가 뭔지 궁금했는데, 태스크의 퍼블릭 주소로 접근시에는 뒷부분에 포트번호까지 붙여야 접속 가능하다

Code States/TIL 2023.06.18

[0616] express CRUD api 작성

/data 엔드포인트로 들어오는 요청에 대해 /routes/api 폴더에 있는 data.js 파일의 내용을 사용한다는 의미 DB 연동 전이기 때문에 테스트를 위해 배열 생성 /dadta/:id 엔드포인트로 쿼리 설정 GET POST 요청에 대해 정상 작동 트러블슈팅 PUT DELETE 요청처럼 특정 id를 찾는 쿼리를 사용할시 Data not found 상황 발생 바디로 들어온 값을 int로 인식하지 못하는 것 같았다 id에 할당한 값을 parseInt를 통해 int로 변환해준 후 해결

Code States/TIL 2023.06.18