일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MySQL
- 요리
- Web Server
- java
- Gradle
- Git
- redis
- jenkins
- Spring Batch
- Spring Boot
- Spring
- javascript
- JVM
- devops
- php
- ubuntu
- springboot
- tool
- it
- linux
- elasticsearch
- Oracle
- 맛집
- IntelliJ
- laravel
- jsp
- db
- AWS
- Design Patterns
- ReactJS
- Today
- Total
목록Infra/AWS (46)
아무거나
BatchGetItem (WHERE IN) 정의 다수의 테이블 아이템을 hashkey, rangedkey 를 지정해서 가져올 수 있으나 결과값이 100개로 제한된다, 특정 rangedkey 로 다수의 아이템 검색이 필요하면 query 과 권장된다. BatchGetItem 은 조건식을 사용할 수 없고 쿼리 결과를 수정할 수 없기 때문에 상황에 따라 GetItem 과 적절하게 선택하여 사용하는것이 좋다. WHERE IN 절과 비슷하게 사용할 수 있다. 사용법(SDK) [build.gradle] ... implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.12.239' ... [DynamoDBConfig.java] ... import com.amazonaws.serv..
AWS Lambda 와 SES(=Simple Email Service) 를 이용한 간단한 메일 발송 (NodeJS) 메일 발송 기능을 개발을 하기위해 AWS 의 Lambda 와 SES(=Simple Email Service) 를 선택하게 되었다. 서비스의 역할 및 예제코드를 참고하여 간단하게 메일 발송 기능을 구축해보자. (NodeJS 를 사용) AWS Lambda AWS Lambda 는 이벤트 기반 서버리스 컴퓨팅 플랫폼이며, 이벤트에 반응하여 Lambda 에 작성된 코드를 실행하는 서비스이다. 즉, 클라우드 제공업체에서 인프라에 대한 관리를 대신 처리해주기 때문에 개발자는 비즈니스 로직에만 집중할 수 있다. (Node, Java, .NET, Go, Python, Ruby 등의 다양한 언어를 지원한다...
java-example-code/sample-multi-module at master · bkjeon1614/java-example-code (github.com) Project 최상위 경로에 Codedeploy로 배포에 사용할 appspec_api.yml 추가 (appspec_{원하는명칭}.yaml) 및 scripts/base-api 폴더 생성 후 deploy-before.sh 파일 생성 [appspec_api.yml] version: 0.0 os: linux files: - source: / destination: /home/ec2-user/build/ permissions: - object: / pattern: "**" owner: ec2-user group: ec2-user hooks: Befor..
AWS RDS MySQL VS Aurora Aurora란 AWS가 MySQL과 Postgresql을 호환해서 만든 RDBMS이다. 둘의 가장 큰 차이점은 Storage이며 Aurora는 Shared Storage를 사용하며 MySQL은 Binary Log 기반의 Replication 기반이 아닌 Storage와 Page 기반의 Replication을 사용 Aurora 장점 기본적으로 MySQL 및 PostresSQL 호환 가능하다. 스토리지 용량이 64TB까지 자동 증가된다. (RDS MySQL은 EBS 볼륨 할당을 직접 해야함) 3개의 AZ (가용 영역)에 대해서 6방향 복제를 지원한다 (6개의 스토리지 지원) Read Replica (읽기 전용 복제본)을 15개까지 지원한다 Read Replica에 ..
[Elasticache(Redis) 도입 사례] 검색엔진으로 들어오는 부분에 대해서 캐시를 도입했어야했다. 데이터는 현재 천만건기준으로 후에 4천만건정도 또는 그 이상일 경우를 대비하여 설계를해야 했으며 해결책은 이러했다. 1. 키를 빨리 찾고, 빨리 값을 리턴해야 한다. 2. 데이터는 메모리에 저장되어야 하고, 이상적으로 EC2 high-memory types(68GB 보다는, 17GB나 34GB) 이내에 들어가야 한다. (역자 주: EC2에서 가격이 34GB는 17GB 의 2배, 68GB는 17GB의 4배 입니다.) 3. 기존 구조에 적합해야 한다. 4. 서버가 죽어도 다시 데이터를 새로 생성하지 않도록, persistent 해야 한다. (여기의 의미는, 다른 DB나 로그에서 데이터를 다시 재생성할 ..
사용방법은 간단하다. 파일을 생성하고 아마존S3에 accesskey와 secretkey를 이용하여 권한을 얻고 파일을 업로드 하면된다. public class AWSService { private static final String BUCKET_NAME = "bucket_name"; private static final String ACCESS_KEY = "ACCESS_KEY"; private static final String SECRET_KEY = "SECRET_KEY"; private AmazonS3 amazonS3; public AWSService() { AWSCredentials awsCredentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);..
// s3 bucket 가져오기 @Repository public class S3BucketService { private static String bucketName = "deploy.versioning"; private static String bucketFolderRoot = "project"; private static String accessKey = {accesskey}; private static String key = {key}; @Autowired private ProjectDAOServiceImpl deployDAOService; // 전체 버킷 조회 서비스 모델 public HashMap getS3Bucket() { ArrayList projectArr = new ArrayList()..
cloudsearch 이슈 시나리오- 원인 # 중고나라앱에서 특정 상품이 리스트(cloudsearch)에만 존재하고 상세정보(dynamoDB)가 없는 이슈가 발생시 수동으로 다이나모디비에 상품정보를 입력하게 되면 백단에 node.js 로 돌고있는 프로그램에서 dynamoDB -> cloudsearch 수동으로 등록한 상품의 id값부터 상품을 재 업로드하게 되어 최근등록한 상품이 노출되지 않는 이슈가 발생 그래서 cloudsearch에서는 계속 processing이라는 표시만 7시간 지속되었다.- 대응 # 우선 대응용 cloudsearch를 새로 구성하여 dynamoDB랑 field sync를 맞춘 후 upload document를 이용하여 데이터 인덱스를 생성해준다. # dynamoDB에 있는 데이터를 ..
# codedeploy 트리거 설정(aws sns 알람) * 트리거 생성 전에 aws sns 주제 생성이 먼저 되어있어야 합니다. - 배포 그룹 -> 트리거 생성 -> 설정값 지정 후 저장