ops + it ops aws ecs ECS를 사용해서 어플리케이션 서비스 하기카카오스타일에서는 한동한 ECS를 사용해서 어플리케이션을 서비스했습니다. 현재는 EKS로 전환하고 있지만, ECS가 상대적으로 단순하기 때문에 서비스 구축 개념을 익히는데 좋은 것 같습니다. (간단한 서비스는 굳이 쿠버네티스를 쓸 필요가 없다고 생각합니다) 그런 의미에서 이번 글에서는 ECS를 이용해 단순한 서비스를 오픈하는 과정을 단계별로 설명해보려고 합니다. wono | discuss | tweet + it ops aws s3 [AWS] 📚 S3 개념 & 버킷 · 권한 설정 방법S3 (Simple Storage Service) 개념 AWS S3는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 온라인 오브젝트(객체) 스토리지 서비스이다. (참고로 S 앞글자가 3개라서 S3 이라고 한다.) 쉽게 말하자면, 스토리지 즉 구글 드라이브 처럼 파일 저장 서비스이며, 데이터를 온라인으로 오브젝트 형태로 저장하는 서비스라고 보면 된다. 앞에 온라인이라는 글자가 붙는 이유는 데이터 조작에 HTTP/HTTPS를 통한 API가 사용되기 때문이다. 또한 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있어 개발자가 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 한다. S3는 저장하는 데이터 양에 대한 비용도 저렴하고, 저장할 수 있는 데이터 양이 무한에 가.. wono | discuss | tweet + it ops aws efs is-there-a-way-to-upload-file-to-efs-from-local-system-using-javaI am new to AWS EFS and trying to understand how EFS file upload works. Is there a way to upload files to EFS from local machine programmatically using java? wono | discuss | tweet + it ops aws efs ec2 [AWS] 📚 EFS 개념 원리 & 사용 세팅 💯 정리EFS (Elastic File System) Amazon EFS(Elastic File System)는 이름에서 볼수 있듯이, AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 파일 스토리지를 제공하는 서비스 이다. EFS는 리눅스 인스턴스를 위한 확장성, 공유성 높은 파일 스토리지로, EC2 Linux 인스턴스에 마운트된 Network File System(NFS)을 통해 VPC에서 필요한 파일에 접근하거나 AWS Direct Connect로 연결된 온프레미스 서버의 파일에 접근할 수 있다. 쉽게 생각해서 EFS는 회사의 온프레미스 환경의 NFS, NAS 폴더와 비슷한 서비스라고 이해하면 된다. 그래서 수천대의 EC2 인스턴스간 파일 시스템 공유 가능하며,.. wono | discuss | tweet + it ops aws s3 efs [AWS] 📚 S3 / EBS / EFS 스토리지 서비스 비교S3 vs EBS vs EFS 스토리지 비교 EBS, EFS, S3 모두 데이터를 저장하는 파일 저장 공간 서비스임에는 같다. 하지만 각각 서비스 특징과 성능에 따라 사용 용도를 분별할 필요가 있다. 데이터 시점에서 보면 EBS는 볼륨 기반이며, S3는 객체 기반, 그리고 EFS는 파일 기반 저장 서비스이다. 이 세가지 파일 저장 스토리지의 특징을 살펴보는 시간을 간단히 가져보자. EFS (Elastic File Storgae) AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 완전 관리형 탄력적 NFS 파일 시스템 NFSv4(Network File System) 프로토콜 사용 VPC 내 EC2 인스턴스는 직접 액세스 할 수 있음 On-premise 서버는 D.. wono | discuss | tweet + it ops aws s3 cloudfront [AWS] 📚 CloudFront 개념 원리 & 사용 세팅 💯 정리CloudFront 클라우드프론트는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스이다. CloudFront는 CDN 서비스와 이외에도 기본 보안 기능(Anti-DDoS)을 제공한다. CDN 이란? CDN(Content Delivery Network or Content Distribution Network, 콘텐츠 전송 네트워크) 은 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템이다. 인터넷 서비스 제공자(ISP,Internet Service Provider)에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 .. wono | discuss | tweet + it ops aws s3 cloudfront [AWS] S3 퍼블릭 액세스 차단 유지하며 URL 허용 방법S3에 이미지를 업로드 한 후 해당 이미지를 썸네일이나, 웹에 띄우기 위해 여러가지 설정이 가능하다.가장 쉬운 방법은 S3 버킷 자체를 퍼블릭하게 열어주면 된다.하지만 만약 내 S3 버킷안에 들어간 이미지에 개인정보가 있거나 혹은 중요한 계약 정보가 담겨 있다면 S3 버킷을 공개로 열어놓는 것은 보안상 매우 취약한 행동이 될 것이다. 그렇다면 어떤 방법으로 S3는 비활성화를 유지하며 URL을 오픈할 수 있을까? 1. 미리 서명된 URL 공유이 기능은 버킷 및 객체가 프라이빗하다고 하더라도 미리 서명된 URL을 통해서 외부에서 접근을 가능하게 하는 것이다.하지만 이 URL은 정해진 시간이 있어 그 시간이 만료되면 URL이 만료가 된다.이 기능을 지속적으로 쓰려고 한다면 람다를 통해서 일정 시간마다 계속 .. wono | discuss | tweet + it ops aws s3 presignedurl [AWS + Spring] S3 : 파일 업로드 & 다운로드 (2) (Presigned URL, Multipart Upload)이전 포스팅에서는 Spring 프로젝트에서 로컬 개발 환경과, EC2 프로덕션 환경에 따른 S3 연동 방법 및 기본적인 업로드와 다운로드를 구현해 보았었다. 이번 포스팅에서는 S3 업로드와 다운로드 방식을 고도화하여 Presigned URL을 사용하는 방법에 대해서 살펴보고, 업로드 시 여러개의 Chunk 단위로 분할 업로드하는 방식인 S3 Multipart Upload에 대해서도 함께 살펴보려고 한다. 1. Presigned URL - 업로드 및 다운로드 구현 (Spring + 바닐라 JS)2. Multipart 업로드 - 업로드 및 다운로드 구현 (Spring + 바닐라 JS) [AWS + Spring] S3 활용 : 파일 업로드와 다운로드 (1) (개발 환경 및 프로덕션 환경에서의 기본.. wono | discuss | tweet + it ops aws s3 presignedurl AWS S3 & Pre-signed URL 사용 후 발생한 문제들 (feat. CORS)이미지를 업로드하거나 삭제하는 행위는 해당 서비스에 권한이 있는 사람만 할 수 있다. 이를 위해 서버에서 Pre-signed Url을 받아와 AWS S3에 접근하도록 만들었다. 이런 구조가 되면서 몇 가지 문제가 발생했는데 다음과 같다. 사용자가 이미지를 제출하면 Client(React)는 서버에게 Pre-signed URL을 받아와 AWS S3에 바로… wono | discuss | tweet + it ops aws s3 presignedurl Pre-Signed URL과 Signed URL로 S3 안전하게 사용하기👀 들어가며 wono | discuss | tweet + it ops db dbeaver erd Two ways to use ERD in DBeaverAn Entity Relationship (ER) Diagram is a type of flowchart that illustrates how entities relate to each other within a system. In terms of a database wono | discuss | tweet + it ops db dbeaver Rearrange columns in a simpler way · Issue #19042 · dbeaver/dbeaverIs your feature request related to a problem? Please describe. Its really hard to re-arrange the columns from the result set by drag and drop one by one or I have write the SQL according to the column arrange I required. Describe the sol... wono | discuss | tweet + it ops db kysely cte kysely/site/docs/recipes/0010-extending-kysely.md at a43b270cb6c88208d1d3f79b958e774deebe63f2 · kysely-org/kyselyA type-safe typescript SQL query builder. Contribute to kysely-org/kysely development by creating an account on GitHub. wono | discuss | tweet + it ops db kysely cte vaylaopas/src/server/db/db.ts at 3a6c28047e5d23c5196344a6beb5c44c5f51c38f · arttuka/vaylaopasContribute to arttuka/vaylaopas development by creating an account on GitHub. wono | discuss | tweet + it ops db kysely How to write "SELECT 1 FROM tablename" - KyselyI want to create subquery for exists but don't know type select(1)...? should I use val or sql.lit or other way...? Thanks in advance https://kyse.link/?p=s&i=rF7gNapHXGQFdbmhVHJx wono | discuss | tweet + it ops db kysely Merge temp table as source table · Issue #959 · kysely-org/kyselyIs there a way to use temp table as the source table in merge statement something like this? await db.mergeInto('mainTable').using('tempData', 'mainTable.itemCode', 'tempData.itemCode').whenMatched()...... SQL Statement MERGE INTO MainTa... wono | discuss | tweet + it ops db kysely merge JSON utilities for `selectNoFrom` · Issue #1294 · kysely-org/kyselyDiscussed in https://discord.com/channels/890118421587578920/1315878442281209907/1315878442281209907 Currently, all the json utilities expect a column. While it is possible to use these utilities via CTEs: const exampleJson = { foo: { ba... wono | discuss | tweet + it ops db merge MERGE 문 사용법 (DUAL, UPDATE와 INSERT를 한번에)MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을 사용하여 UPDATE나 INSERT로 분기하는 로직을 작성해야 하는 번거로움이 있다. MERGE 문의 경우 단일(한개의) 테이블에 UPDATE 또는 INSERT를 하는 경우 많이 사용하지만, 두개의 테이블을 비교하거나 서브 쿼리의 결과에 따라서 UPDATE, INSERT 작업이 가능하다. MSSQL MERGE 문 단일 테이블 사용법 (DUAL) 오라클에서는 DUAL이라는 dummy 테이블을 USING 절에 사용하면 단일 테이블 작업이 간단하지만, MSSQL에서는 DUAL 테이.. wono | discuss | tweet + it ops db postgresql merge PostgreSQL 15にMERGE文UPSERTがやってくる | DevelopersIOPostgreSQL 15がMERGE文を使ったUPSERTに対応します wono | discuss | tweet + it ops db postgresql merge Postgresql 로 Upsert 하기Postgres 9.5(2016년 1월 7일 이후 출시) 이후 가능한 문법입니다.존재하지 않는 경우 삽입, 존재하는 경우 Nothing존재하지 않는 경우 삽입, 존재하는 경우 Update삽입이 되었으면, id 반환삽입이 된 경우 삽입된 id값을 반환한다.Serial, wono | discuss | tweetNext
+ it ops aws ecs ECS를 사용해서 어플리케이션 서비스 하기카카오스타일에서는 한동한 ECS를 사용해서 어플리케이션을 서비스했습니다. 현재는 EKS로 전환하고 있지만, ECS가 상대적으로 단순하기 때문에 서비스 구축 개념을 익히는데 좋은 것 같습니다. (간단한 서비스는 굳이 쿠버네티스를 쓸 필요가 없다고 생각합니다) 그런 의미에서 이번 글에서는 ECS를 이용해 단순한 서비스를 오픈하는 과정을 단계별로 설명해보려고 합니다. wono | discuss | tweet
+ it ops aws s3 [AWS] 📚 S3 개념 & 버킷 · 권한 설정 방법S3 (Simple Storage Service) 개념 AWS S3는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 온라인 오브젝트(객체) 스토리지 서비스이다. (참고로 S 앞글자가 3개라서 S3 이라고 한다.) 쉽게 말하자면, 스토리지 즉 구글 드라이브 처럼 파일 저장 서비스이며, 데이터를 온라인으로 오브젝트 형태로 저장하는 서비스라고 보면 된다. 앞에 온라인이라는 글자가 붙는 이유는 데이터 조작에 HTTP/HTTPS를 통한 API가 사용되기 때문이다. 또한 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있어 개발자가 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 한다. S3는 저장하는 데이터 양에 대한 비용도 저렴하고, 저장할 수 있는 데이터 양이 무한에 가.. wono | discuss | tweet
+ it ops aws efs is-there-a-way-to-upload-file-to-efs-from-local-system-using-javaI am new to AWS EFS and trying to understand how EFS file upload works. Is there a way to upload files to EFS from local machine programmatically using java? wono | discuss | tweet
+ it ops aws efs ec2 [AWS] 📚 EFS 개념 원리 & 사용 세팅 💯 정리EFS (Elastic File System) Amazon EFS(Elastic File System)는 이름에서 볼수 있듯이, AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 파일 스토리지를 제공하는 서비스 이다. EFS는 리눅스 인스턴스를 위한 확장성, 공유성 높은 파일 스토리지로, EC2 Linux 인스턴스에 마운트된 Network File System(NFS)을 통해 VPC에서 필요한 파일에 접근하거나 AWS Direct Connect로 연결된 온프레미스 서버의 파일에 접근할 수 있다. 쉽게 생각해서 EFS는 회사의 온프레미스 환경의 NFS, NAS 폴더와 비슷한 서비스라고 이해하면 된다. 그래서 수천대의 EC2 인스턴스간 파일 시스템 공유 가능하며,.. wono | discuss | tweet
+ it ops aws s3 efs [AWS] 📚 S3 / EBS / EFS 스토리지 서비스 비교S3 vs EBS vs EFS 스토리지 비교 EBS, EFS, S3 모두 데이터를 저장하는 파일 저장 공간 서비스임에는 같다. 하지만 각각 서비스 특징과 성능에 따라 사용 용도를 분별할 필요가 있다. 데이터 시점에서 보면 EBS는 볼륨 기반이며, S3는 객체 기반, 그리고 EFS는 파일 기반 저장 서비스이다. 이 세가지 파일 저장 스토리지의 특징을 살펴보는 시간을 간단히 가져보자. EFS (Elastic File Storgae) AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 완전 관리형 탄력적 NFS 파일 시스템 NFSv4(Network File System) 프로토콜 사용 VPC 내 EC2 인스턴스는 직접 액세스 할 수 있음 On-premise 서버는 D.. wono | discuss | tweet
+ it ops aws s3 cloudfront [AWS] 📚 CloudFront 개념 원리 & 사용 세팅 💯 정리CloudFront 클라우드프론트는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스이다. CloudFront는 CDN 서비스와 이외에도 기본 보안 기능(Anti-DDoS)을 제공한다. CDN 이란? CDN(Content Delivery Network or Content Distribution Network, 콘텐츠 전송 네트워크) 은 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템이다. 인터넷 서비스 제공자(ISP,Internet Service Provider)에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 .. wono | discuss | tweet
+ it ops aws s3 cloudfront [AWS] S3 퍼블릭 액세스 차단 유지하며 URL 허용 방법S3에 이미지를 업로드 한 후 해당 이미지를 썸네일이나, 웹에 띄우기 위해 여러가지 설정이 가능하다.가장 쉬운 방법은 S3 버킷 자체를 퍼블릭하게 열어주면 된다.하지만 만약 내 S3 버킷안에 들어간 이미지에 개인정보가 있거나 혹은 중요한 계약 정보가 담겨 있다면 S3 버킷을 공개로 열어놓는 것은 보안상 매우 취약한 행동이 될 것이다. 그렇다면 어떤 방법으로 S3는 비활성화를 유지하며 URL을 오픈할 수 있을까? 1. 미리 서명된 URL 공유이 기능은 버킷 및 객체가 프라이빗하다고 하더라도 미리 서명된 URL을 통해서 외부에서 접근을 가능하게 하는 것이다.하지만 이 URL은 정해진 시간이 있어 그 시간이 만료되면 URL이 만료가 된다.이 기능을 지속적으로 쓰려고 한다면 람다를 통해서 일정 시간마다 계속 .. wono | discuss | tweet
+ it ops aws s3 presignedurl [AWS + Spring] S3 : 파일 업로드 & 다운로드 (2) (Presigned URL, Multipart Upload)이전 포스팅에서는 Spring 프로젝트에서 로컬 개발 환경과, EC2 프로덕션 환경에 따른 S3 연동 방법 및 기본적인 업로드와 다운로드를 구현해 보았었다. 이번 포스팅에서는 S3 업로드와 다운로드 방식을 고도화하여 Presigned URL을 사용하는 방법에 대해서 살펴보고, 업로드 시 여러개의 Chunk 단위로 분할 업로드하는 방식인 S3 Multipart Upload에 대해서도 함께 살펴보려고 한다. 1. Presigned URL - 업로드 및 다운로드 구현 (Spring + 바닐라 JS)2. Multipart 업로드 - 업로드 및 다운로드 구현 (Spring + 바닐라 JS) [AWS + Spring] S3 활용 : 파일 업로드와 다운로드 (1) (개발 환경 및 프로덕션 환경에서의 기본.. wono | discuss | tweet
+ it ops aws s3 presignedurl AWS S3 & Pre-signed URL 사용 후 발생한 문제들 (feat. CORS)이미지를 업로드하거나 삭제하는 행위는 해당 서비스에 권한이 있는 사람만 할 수 있다. 이를 위해 서버에서 Pre-signed Url을 받아와 AWS S3에 접근하도록 만들었다. 이런 구조가 되면서 몇 가지 문제가 발생했는데 다음과 같다. 사용자가 이미지를 제출하면 Client(React)는 서버에게 Pre-signed URL을 받아와 AWS S3에 바로… wono | discuss | tweet
+ it ops db dbeaver erd Two ways to use ERD in DBeaverAn Entity Relationship (ER) Diagram is a type of flowchart that illustrates how entities relate to each other within a system. In terms of a database wono | discuss | tweet
+ it ops db dbeaver Rearrange columns in a simpler way · Issue #19042 · dbeaver/dbeaverIs your feature request related to a problem? Please describe. Its really hard to re-arrange the columns from the result set by drag and drop one by one or I have write the SQL according to the column arrange I required. Describe the sol... wono | discuss | tweet
+ it ops db kysely cte kysely/site/docs/recipes/0010-extending-kysely.md at a43b270cb6c88208d1d3f79b958e774deebe63f2 · kysely-org/kyselyA type-safe typescript SQL query builder. Contribute to kysely-org/kysely development by creating an account on GitHub. wono | discuss | tweet
+ it ops db kysely cte vaylaopas/src/server/db/db.ts at 3a6c28047e5d23c5196344a6beb5c44c5f51c38f · arttuka/vaylaopasContribute to arttuka/vaylaopas development by creating an account on GitHub. wono | discuss | tweet
+ it ops db kysely How to write "SELECT 1 FROM tablename" - KyselyI want to create subquery for exists but don't know type select(1)...? should I use val or sql.lit or other way...? Thanks in advance https://kyse.link/?p=s&i=rF7gNapHXGQFdbmhVHJx wono | discuss | tweet
+ it ops db kysely Merge temp table as source table · Issue #959 · kysely-org/kyselyIs there a way to use temp table as the source table in merge statement something like this? await db.mergeInto('mainTable').using('tempData', 'mainTable.itemCode', 'tempData.itemCode').whenMatched()...... SQL Statement MERGE INTO MainTa... wono | discuss | tweet
+ it ops db kysely merge JSON utilities for `selectNoFrom` · Issue #1294 · kysely-org/kyselyDiscussed in https://discord.com/channels/890118421587578920/1315878442281209907/1315878442281209907 Currently, all the json utilities expect a column. While it is possible to use these utilities via CTEs: const exampleJson = { foo: { ba... wono | discuss | tweet
+ it ops db merge MERGE 문 사용법 (DUAL, UPDATE와 INSERT를 한번에)MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을 사용하여 UPDATE나 INSERT로 분기하는 로직을 작성해야 하는 번거로움이 있다. MERGE 문의 경우 단일(한개의) 테이블에 UPDATE 또는 INSERT를 하는 경우 많이 사용하지만, 두개의 테이블을 비교하거나 서브 쿼리의 결과에 따라서 UPDATE, INSERT 작업이 가능하다. MSSQL MERGE 문 단일 테이블 사용법 (DUAL) 오라클에서는 DUAL이라는 dummy 테이블을 USING 절에 사용하면 단일 테이블 작업이 간단하지만, MSSQL에서는 DUAL 테이.. wono | discuss | tweet
+ it ops db postgresql merge PostgreSQL 15にMERGE文UPSERTがやってくる | DevelopersIOPostgreSQL 15がMERGE文を使ったUPSERTに対応します wono | discuss | tweet
+ it ops db postgresql merge Postgresql 로 Upsert 하기Postgres 9.5(2016년 1월 7일 이후 출시) 이후 가능한 문법입니다.존재하지 않는 경우 삽입, 존재하는 경우 Nothing존재하지 않는 경우 삽입, 존재하는 경우 Update삽입이 되었으면, id 반환삽입이 된 경우 삽입된 id값을 반환한다.Serial, wono | discuss | tweet