본문 바로가기

전체 글

(461)
HTTP API 생성 리소스에 대해서 고민하라 그렇다면 리소스의 의미는 무엇인가? 회원을 등록하고 수정하고 조회한다고 가정할 때 등록하고 수정하고 조회하는 개념은 리소스가 아니다. 회원이라는 개념 자체가 바로 리소스다. 회원이라는 리소스를 URI에 매핑하면 된다. 참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장 (member -> members) 회원이라는 리소스는 URI에 매핑을 하면 된다고 하였다. 그렇다면 등록하고 조회하는 행위는 어디에 매핑을 하면 될까 바로 HTTP 메서드에 매핑을 하면 된다. GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 (덮어쓰기) PATCH: 리소스 부분 변경 DELETE: 리소스 삭제
elb (load balancing 설정) load balancing https://docs.aws.amazon.com/ec2/?id=docs_gateway https://docs.aws.amazon.com/ec2/?id=docs_gateway docs.aws.amazon.com ELB는 여러대의 EC2를 묶어서 사용하기 위한 서비스에요. 클라우드를 사용하지 않을때도 LB(로드발란서)를 구입해서 사용했어요. aws에서는 elb라는 제품의 형태로 제공하고 있습니다. 클라이언트들이 몰릴때 적절하게 서버로 분배할 수 있도록 도와줍니다. Target group 생성 elb를 생성하기 전에 먼저 target group을 만들어 놓도록 합시다. target group은 elb와 ec2 연결을 위한 작업을 진행하는 것이며 ec2가 연결이 가능한 상태인지 확인..
ec2 생성 및 접속 ec2 이름 설정 및 ubuntu 18.04 선택 새로운 key pair 생성 인스턴스 생성 완료 key pair 권한 재설정 chmod 400 aws-go.pem aws 접속 ssh -i 키페어 ubuntu@퍼브릭 IPv4 주소 권한 오류로 접속이 안되는 경우 // 암호화 된 key 생성 ssh-keygen -t rsa // filezila를 이용하여 aws에 id_rsa.pub 파일을 홈 폴더에 옮겨 놓기 쉽게 접속하는 방법 .ssh 폴더 안에 아래 내용을 담은 config 파일을 생성 Host springboot-webservice HostName IP주소 User ubuntu IdentityFile pem파일위치 ​ ssh springboot-webservice로 접속가능 인바운드 규칙 편집 ja..
websocket WebSocket 이란? 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜. 일반 Socket통신과 달리 HTTP 80 Port를 사용하므로 방화벽에 제약이 없으며 통상 WebSocket으로 불린다. 접속까지는 HTTP 프로토콜을 이용하고, 그 이후 통신은 자체적인 WebSocket 프로토콜로 통신하게 된다. 언제 쓰면 좋을까? Spring Reference을 참조하면, 자주 + 많은 양의 + 지연이 짧아야 하는 통신을 할 수록 WebSocket이 적합하다고 설명하고 있다. 주로 채팅이나 게임이 이러한 요구 사항을 가질 것이다. 단순한 알림 성격의 뉴스 피드 같은 정보에는 polling이나 streaming 방식이 더욱 단순하고 효율적인 솔루션이 될 수 있다. web..
spring s3 파일 upload build.gradle implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.0.1.RELEASE' aws.yml cloud: aws: credentials: accessKey: IAM-accessKey secretKey: IAM-secretKey s3: bucket: bucketName region: static: ap-northeast-2 stack: auto: false main class import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @..
github action, Cloud front 연동 (CI/CD) Github Action GitHub Action은 간단하게는 서버에 소스를 배포하는 서비스 입니다. GitHub 소스 리파지토리에 .github/workflows/main.yml 파일만 추가하시면 되요 https://docs.github.com/en/actions IAM 권한 설정 index.html -> s3 cloudfront로 배포 하려면 github action에서 s3에 배포할 수 있는 권한이 필요합니다. IAM의 access id, secret key를 이용하여 s3와 github action 연동해주려 합니다. cloudfront에 캐싱돼 있는 것을 새롭게 캐싱 시켜줘야 함. 기존에 있는 것을 invalidation 시켜야 합니다. 이것도 github action에서 해야함. github ..
CloudFront CloudFront? CloudFront는 CDN 서비스와 유사한 기능을 합니다. S3를 사용해서 www.example.com 도메인으로 글로벌 서비스를 해야하는 상황입니다. 어떻게 해야할까요? S3의 버킷은 생성할때 리전이 정해져있습니다. 서울리전에 있는 버킷을 호스팅 기능을 이용해서 미국에 서비스 한다고 하면 엄청나게 사이트가 늦게 뜰 것입니다. 그러면 똑같은 S3 버킷을 서비스하는 나라의 가까운 리전 마다 생성해줘야 할까요? 그럼 비용이 더 들겠죠 이를 해결하기 위한 방법은 CloudFront를 이용하는 것입니다. https://docs.aws.amazon.com/cloudfront/?id=docs_gateway https://docs.aws.amazon.com/cloudfront/?id=docs_..
S3 정적 호스팅 AWS S3 에 정적 파일을 업로드를 한 후, 이것으로 웹사이트를 구동하는 방법에 대해서 알아보도록 하겠습니다. 버킷의 속성 변경 1. s3 -> 버킷 -> 속성 정적 웹 사이트 호스팅 편집 비활성화 -> 활성화로 변경 인덱스 문서 index.html 오류 문서 index.html 설정 index.html을 s3에 올리고, 모든 사람 읽기 권한 설정해주기 엔드포인트에 접근 - 버킷 -> 속성 -> 정적 웹 사이트 호스팅 카테고리에서 엔드포인트가 나타나는 것을 확인할 수 있습니다. - 이 URL을 이용하여 우리가 만든 index.html에 접근할 수 있습니다.