AWS (11) 썸네일형 리스트형 Mysql Aurora 네이티브 함수로 - Lambda 호출 ( feat. golang) 1. RDS 클러스터에 람다 역할 추가 IAM 에서 람다 최소권한을 줄수 있는 InvokeFunction 권한 정책 생성 위에서 만든 정책을 IAM 역할을 새로 만들어서 역할에 정책 부여 이후 RDS 클러스터에 IAM 역할 관리에서 위에서 만든 역할을 할당 2. 람다 함수 생성 RDS 와 같은 VPC 안에 동일한 서브넷 할당 보안그룹 생성 혹은 기존에 있던 RDS 에 할당된 보안그룹 재귀로 받아서 연결 3. RDS 클러스터 파라미터 그룹 생성 및 aws_default_lambda_role 역할 부여 파라미터 그룹 Type 에서 DB Cluser Parameter Group 을 선택해 파라미터 그룹 새로 생성 파라미터 설정에 aws_default_lambda_role 값에 생성한 람다 함수의 ARN rol.. 쉘 프로그래밍 자동화 1. git ssh 설정 2. ec2 접속 bastion 우회접속 ec2 유동 사설 IP 가져오기 ( aws cli ) 위의 두개 결합후 하나의 .sh 파일에서 bastion 우회후 콘솔접속 없이 ip 주소 가져와서 접속 #!/bin/bash # 변수로 받아온후 privateIpAddress=$(aws ec2 describe-instances --filter "Name=tag:Name,Values=인스턴스태그네임" --query "Reservations[*].Instances[*].[PrivateIpAddress]") ssh -J myungsworld -i ~/.ssh/ec2.pem ec2-user@$privateIpAddress 위 스크립트를 아래와 같이 한번더 고도화 함 # vi ~/.ssh/conf.. VPC 피어링 Connect to your RDS instance from another VPC | bmwlog Suppose you have created a PostgreSQL database without public accessibility (we are talking about AWS RDS right now) within some VPC (e.g. VPC B) and you have a regular EC2 instance in another VPC (e.g. VPC A). Now you want to connect a client (e.g. psql) bmwlog.pp.ua 주의사항 CIDR 대역이 겹치는 VPC 들 간에는 피어링을 생성할 수 없음 서로 다른 리전에 있는 VPC들 간에는 피어리링을 생성할 .. aws ec2 ssh 접속 오류 1. 퍼블릭 서브넷으로 사용하고 있는 라우팅 테이블에 인터넷 게이트웨이 달기 VPC 접속 후 인터넷 게이트웨이 생성 해당 게이트웨이 VPC 연결 라우팅 테이블 탭 -> 라우팅 -> 편집 0.0.0.0/0 ( 모든 접속 허용 한후 ) -> 인터넷 게이트 웨이 선택한후 -> 저장 서브넷 연결 탭 -> 서브넷 연결 편집 퍼블릭 서브넷 -> 저장 2. EC2 보안그룹 인바운드 룰 설정 EC2 콘솔 -> 인스턴스 -> 해당 인스턴스 ID 클릭 -> 보안 보안그룹 클릭 인바운드 규칙 편집 터미널 열고 해당 네트워크의 공인 IP 가져오기 curl ifconfig.me 211.219.148.233 규칙 추가 SSH , TCP , 위에서 가져온 IP/32 맨 뒤에 32 는 해당 IP 만 접속을 허용한다는 뜻 ( 보안을 .. AWS Cognito 소셜로그인 인증 구현 (golang) 지난번에 구글 Oauth2 인증을 고랭으로 구현하는 글을 적었는데 Facebook , Apple , Google 등 소셜로그인을 각 SDK 별로 별도로 구현하는 방법도 있겠지만 개발에 들어가는 시간과 노력이 너무 많이 들기에 찾아보다가 Cognito 라는 좋은 기능이 있어서 가져왔다. Amazon Cognito 는 웹 및 모바일 앱에 대한 인증,권한 부여 및 사용자 관리를 제공한다. 이 글에서는 구현 위주로 설명을 하기 때문에 제대로된 설명을 보고 싶다면 다른 블로그를 살펴보면 되겠다. 바로 시작해보자. 아마존 콘솔 로그인 -> Cognito 검색 -> 사용자 풀 생성으로 들어가면 로그인 환경 구성에서 Cognito 사용자 풀은 디폴트로 설정이 되어있다. 옆에 연동 자격 증명 공급자 라는 탭이 바로 우리.. S3 영상이 재생이 안되고 다운로드가 된다? 사용하고 있는 S3 를 Cloud Front CDN 서비스를 제공하던 와중에 하나의 S3 버킷을 더 생성해 별도로 CDN 서비스를 제공하려고 했는데 문제가 발생했다. 기존에 CDN 서비스를 제공하던 건 영상의 URI 처럼 새로 생성한 건 웹에 재생이 되지않고 다운로드가 되었다. 기존 CDN -> funny-video/1 -> 재생 새로생성한 CDN -> funny-video/1 -> 다운로드? 백엔드단에서 수정이 이루어진적은 없는데 왜 갑자기 다운로드가 되어질까 문제는 영상을 업로드 할때 헤더에 정한 Content-Type 에 있었다. 터미널에서 현재 사용하고 있는 CDN 서비스의 URL 정보를 보니 왠 binary/octect-stream 이 떡하니 있다 저건 뭥미? 아무튼 저 Content-Type .. Bastion Host 로 EC2 우회 접속 스크립트 설정 Bastion Host 와 같은 방화벽이 있을 경우 우리는 EC2 인스턴스로 접속하기 위한 과정은 다음과 같습니다. 기존 연결 흐름 1.( your-bastion-host.pem )으로 Bastion Host 접속 2. Bastion Host 에 EC2 Instance 로 접근하기 위한 public Key ( ec2.pem ) 를 넣음 3. Bastion Host 에서 ec2.pem 으로 EC2 접속 터미널을 열고 ssh -i 접속하고 또 scp 로 public Key를 Bastion 에 넣고 또 그걸로 ssh -i 접속하고.. 위의 흐름으로 사용하다 보니 이만저만 귀찮은게 아니었다 EC2 우회접속을 하려면 항상 저런 흐름으로 번거롭게 해줘야 하나? 이에 대한 궁금증은 ssh -J 터널링으로 쉽게 해결 .. CloudFront 사용시 주의할 점 현재 이미지 or 영상 파일을 S3 에 저정하고 AWS CloudFront 로 CDN 을 구축해 사용하고 있습니다. CloudFront 란? CloudFront 는 S3에 있는 데이터를 아래 URI 와 같은 엣지 로케이션이라고 하는 중앙 데이터 센터에 적재하게 된다. 유저는 S3 에서 직접적으로 가져와서 컨텐츠를 보는게 아닌 엣지 로케이션에 캐시 메모리 형태로 저장되어 전세계 유저들에게 빠른 컨텐츠 서빙을 가능하게 합니다. 직면한 상황 컨텐츠 특성상 1개만 가질 수 있는 시스템이 있다고 가정해봅시다. ( ex : 자신의 소개 영상 ) 특정 컨텐츠에 유저는 하나의 영상만을 올릴 수 있는데 재업로드시에 문제가 발생 했습니다. 예를들어, S3에 들어있는 데이터의 경로가 https://s3-output/user.. 이전 1 2 다음