728x90 데브옵스 이야기/AWS6 AWS S3 Bucket ACL은 권장사항이 아닙니더! 들어가며AWS S3 라이브러리를 이용하여 AWS S3에 객체를 업로드 하였고, 특정 객체에 대해 불러오려고 했는데 AcceeDenied가 발생했습니다. 처음엔 해당 AWS S3 Bucket에 get 권한이 없나? 싶어서 해당 권한을 설정해주었는데도 해당 문제가 지속되었습니다. 원인은 ownershipterraform으로 AWS S3 Bucket을 만들때 aws_s3_bucket_ownership_controls 리소스를 설정했었습니다.resource "aws_s3_bucket_ownership_controls" "ownership_controls_bucket_A" { bucket = aws_s3_bucket.bucket.id rule { object_ownership = "BucketOwne.. 2024. 8. 20. AWS 리소스를 IAM ResourceTag로 더욱 세밀하게 제어하기 (feat. 공식문서의 위대함) 들어가며사내에서 특정 서비스가 배포된 EC2에만 SSM(AWS Systems Manage) 허용하도록 하는 요청이 있었습니다. 해당 요청의 대상 EC2에는 특정 Tag가 할당되어 있었는데, Service: store 같은 방식으로 서비스의 내용이 tag로 할당되어 있었습니다. 그렇기에 해결 방법은 2가지로 구상해보았습니다.ec2 목록을 노출시킬 때 특정 Tag가 있는 EC2 목록을 노출시켜 그 EC2들에게만 SSM 접근을 허용한다.전체 EC2 목록을 노출시키고, 특정 Tag가 있는 EC2에만 SSM 접근을 허용한다.바로 1번 방법을 시행해보자!1번의 방법이 가장 효율적으로 보였기에 바로 아래와 같이 IAM 권한을 할당했습니다.{ "Sid": "ec2Describes", "Action": [ "ec.. 2024. 7. 23. 좌충우돌 AWS EKS NodeGroup EC2 Type 전환기 개요현재 AWS EKS를 이용하여 K8s 를 구축하고 운영하고 있습니다. 하지만 최근들어 신규 서비스도 런칭하고, 배포해야 할 Pod 수도 늘어나고, 여러 가지 devops 관련 pod를 구축하고 싶어 프로젝트로 일정을 수립하고 진행하고 있던 와중 Pod가 정상적으로 생성되지 않는 현상이 발생했습니다..!찾아보니 EKS Workernode로 사용중인 EC2 Instance 의 Memory 의 용량이 부족하여 Pod를 띄울 수 없었습니다. 적절한 EC2 Instance Type을 찾아보자!제가 처음 고려했던 Type은 현재쓰고 있는 다음 크기의 EC2 였습니다.As-Is : t3.xlargeTo-Be : t3.2xlarge타입 비교 vCPU*메모리(GiB)네트워크 성능(Gbps)***최대 Pod수시간당 요.. 2023. 8. 14. AWS OpenSearch를 활용해 EFK Stack 구축하기 들어가며Kubernetes는 생성된 Pod들에 대하여 Stateless하게 관리되어야하는 것이 기본 관리 원칙이다.그렇기에 STDOUT/STDERR등 SYSOUT의 형태로 쌓이는 로그들을 노드내에 저장하는 방식이 아닌 중앙 집중식 로깅 시스템을 구축해야 한다.Pod로부터 수신된 로그를 Fluent-bit를 통해 AWS Kinesis로 전송하고, 수신된 로그 데이터를 AWS OpenSearch의 ElasticSearch가 받게 되고 Kibana를 통해 시각화하게 된다.What Is EFK Stack?ELF Stack ELK Stack은 ElasticSearch + Logstash + Kibana의 로그 분석 프로세스를 지칭한다. 하지만 이 중 Logstash보다 fluent-bit이 쿠버네티스 환경에서 .. 2023. 5. 3. AWS EC2 Storage 용량 늘리기(scale-up) 들어가며 k8s를 운영하다보면 어느날 갑자기 resource 에 대한 부족으로 인해 문제가 생길 수 있습니다.그럴 때 AWS Console에 접속하여 해당 EC2 Instance의 storage 용량을 증가시켜 해결할 수 있습니다. WorkFlow인스턴스에 접속합니다. (보통은 pem key를 통한 SSH 접속) 아래의 명령어로 해당 노드의 파티션을 확인합니다.$ sudo lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTnvme1n1 259:0 0 30G 0 disk /datanvme0n1 259:1 0 16G 0 disk└─nvme0n1p1 259:2 0 8G 0 part /└─nvme0n1p128 2.. 2023. 4. 29. AWS EFS를 사용하여 POD Storage 구성하기 들어가며사내에서 POD를 생성할 때에 EFK Stack으로 구성하기전, POD별로 log를 저장해야할 이슈가 있었습니다. (물론 파드는 stateless하게 관리되어야하지만 어떤 이유 때문에 Stateful하게 관리가 되었었습니다 ㅎㅎ,,,)그래서 Deployment나 Replicaset으로 POD를 띄우는 것이 아닌 Statefule로 POD를 띄우게 되었었는데, 그때 공유 스토리지 볼륨이 필요하였었습니다. 여러 자료를 찾던 중 AWS에서 제공되는 서비스인 EBS(Elastic Block Store)와 EFS(Elastic File System) 사이에 고민을 하였었고, 결국 여러 가용영역을 지원하는 EFS를 선택하게 되었습니다. Volum kubernetes에는 데이터를 저장하는 Storage 즉, .. 2023. 4. 25. 이전 1 다음 728x90