728x90

AWS 12

AWS Aurora MySQL에서 Lambda 함수 호출하기

AWS Aurora MySQL에서 Lambda 함수 호출하기 AWS Aurora MySQL에서 lambda_sync, lambda_async 함수를 사용하여 lambda 함수를 실행할 수 있습니다. stored procedure를 통해 lambda 함수를 호출하는 건 더 이상 지원하지 않으므로 설명하지 않습니다. AWS Aurora MySQL에서 lambda_sync, lambda_async 함수를 사용하기 위해서는 IAM Role 설정 및 MySQL 권한 설정을 해야 합니다. IAM Role IAM Role 생성 아래의 내용을 trust-policy.json 파일로 저장하고, aws cli 명령어를 실행합니다. { "Version": "2012-10-17", "Statement": [ { "Effect..

AWS 2022.11.08

AWS 비용 최적화

AWS 비용 최적화 AWS를 사용하면서 비용 절감할 수 있는 몇 가지 방법을 설명합니다. AWS 사용하다 보면 비용에 크게 신경 쓰지 않고 사용하는 경우가 있습니다. AWS 비용이 많이 나오지 않는다면 크게 체감되지 않지만, AWS 사용을 많이 할수록 비용절감 효과는 크게 나타납니다. EC2 사용하지 않는 EC2 Instace 삭제하기 업무시간에만 사용하는 EC2 Instance는 Instance Scheduler를 사용하여 특정 시간에만 실행하고, 사용하지 않는 시간에는 stop 합니다. 모니터링하여 CPU / Memory 사용량을 측정 후 over-provisioning 된 EC2 Instance의 타입을 변경합니다. AWS Compute Optimizer를 사용할 수도 있습니다. EC2 Instan..

AWS 2022.10.07

Go AWS S3 GetObject 파일 가져오기

Go AWS S3 GetObject 파일 가져오기 AWS SDK for Go v2를 사용하여 간단하게 구현한 예제입니다. GetObject를 사용하여 S3 버킷에 있는 파일을 다운로드할 수 있습니다. package main import ( "context" "fmt" "io" "log" "time" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/s3" ) type Client interface { GetObject(ctx context.Context, params *s3.GetObjectInput, optFns ...func(*s3.Options)) (*..

Go 2022.09.30

Terraform으로 AWS EKS 클러스터 만들기

Terraform으로 AWS EKS 클러스터 만들기 terraform을 사용하여 AWS EKS 클러스터를 만드는 예제입니다. EKS 클러스터 생성시 필요한 IAM role, CloudWatch Log Group, IAM OpenID Connect provider까지 생성하는 예시입니다. 아래의 코드사용시 subnet, security group을 생성해서 설정하거나, 사용할 subnet id, security group id로 치환해서 사용하셔야합니다. 참고로 아래의 코드에는 nodegroup을 생성하지 않습니다. # eks cluster 이름 정의 locals { cluster_name = "eks-cluster" } # eks cluster에 필요한 IAM ROLE 생성 data "aws_iam_po..

Terraform 2022.09.30

Amazon EFS CSI Driver

Amazon EFS CSI Driver kubernetes에서 AWS EFS 사용을 위해 Amazon EFS CSI Driver 설치해야 합니다. efs-csi-node daemonset과 efs-csi-controller deployment로 구성되어있습니다. Install helm을 사용하여 설치합니다. AWS의 IAM Role을 생성하고, policy 를 참고하여 권한 설정을 해야 합니다. # values.yaml replicaCount: 3 controller: serviceAccount: create: true annotations: eks.amazonaws.com/role-arn: arn:aws:iam::${ACCOUNT_ID}:role/efs-csi-controller node: servic..

Kubernetes 2022.09.23

AWS SSM을 사용하여 Port Forwarding 하기

AWS SSM을 사용하여 Port Forwarding 하기 AWS SSM을 사용하여, RDS 및 ElastiCache 등 private 네트워크 영역에서 접근가능한 서버들을 Port Forwarding 하여 접근하는 방법을 설명합니다. EC2 Instance 우선 SSM Agent가 3.1.1374.0 버전부터 지원하니, 버전을 확인하여 같거나 높은 버전을 설치한 EC2 Instance를 준비해주세요. 그리고 SSM을 사용하여 EC2 Instance에 접속이 가능해야합니다. Port Forwarding 아래의 명령어를 사용해서 port forwarding할 수 있습니다. $ aws ssm start-session \ --region $region \ --target $ec2_instance_id \ --..

AWS 2022.09.20

AWS SSM 사용하여 EC2 Instance 접속하기

AWS SSM 사용하여 EC2 Instance 접속하기 AWS SSM을 사용하여 EC2에 접근하는 방법에 대해서 설명합니다. SSH를 직접 사용하지 않아도 접근가능한 방법입니다. SSH Port 오픈 및 Key Pair가 필요하지 않습니다. IAM Role EC2 Instance Profile 롤을 생성하고, AWS Managed Policy인 AmazonSSMManagedInstanceCore 권한을 설정해야합니다. EC2 Instance Profile을 생성하였으면, EC2 인스턴스 생성시 Role을 설정해주세요. Amazon SSM Agent 대부분 AWS에서 제공하는 공식 AMI에는 기본적으로 amazon ssm agent가 설치되어있지만, 설치가 되어있지않으면, cloud-init 및 userd..

AWS 2022.09.20

Amazon EBS CSI driver

Amazon EBS CSI driver kubernetes에서 AWS EBS 사용을 위해 기본적으로 제공하는 storage class 타입은 io1, gp2, sc1, st1 입니다. gp3, io2 타입의 EBS를 사용하기 위해서 Amazon EBS CSI driver 를 설치해야합니다. EKS 1.23 버전부터는 무조건 EBS CSI Driver만 사용해야합니다. Install helm을 사용하여 설치합니다. AWS의 IAM Role을 생성하고, policy 를 참고하여 권한설정을 해야합니다. # values.yaml controller: replicaCount: 3 region: ap-northeast-2 serviceAccount: create: true name: ebs-csi-controlle..

Kubernetes 2022.09.19

AWS EC2 Instance Type 지원되는 가용영역 찾기

AWS EC2 Instance Type 지원되는 가용영역 찾기 AWS EC2 Instace Type에 따라 사용할 수 있는 리전 및 가용영역 다르므로, awscli를 통해서 확인할 수 있습니다. $ aws ec2 describe-instance-type-offerings \ --location-type availability-zone \ --filters Name=instance-type,Values=t3a.large \ --region ap-northeast-2 --output table ------------------------------------------------------------ | DescribeInstanceTypeOfferings | +-------------------------..

AWS 2022.09.19

AWS EBS operational issue 해결방법

AWS 콘솔에 갑자기 미해결된 문제라고 하여 EBS operational issue 이슈가 발생하였습니다. 일반적인 웹서버이면 해당 EC2 인스턴스를 terminate하고, 다시 만들면 됩니다. 하지만 제가 겪은 문제는 데이터스토어 관련된 어플리케이션이 설치된 EC2 인스턴스에서 발생한 문제라 EC2를 terminate하고 다시 생성할 수 없었습니다. EBS operational issue 라고 하여 가이드된 문서에는 여러가지 해결방법들을 설명해줍니다. AWS의 문서대로 재부팅도 해보고, 중지하고 다시시작도 해봤습니다. 하지만 인스턴스 스크린샷에는 no bootable device 메세지만 계속 출력되고, 해결되지 않았습니다. 생각보다 간단한 방법으로 이슈가 처리되었씁니다. AWS 콘솔에서 EBS ope..

AWS 2019.09.30
728x90