AWS 26

[EKS] "Unhandled Error" err="couldn't get current server API group list: the server has asked for the client to provide credentials" 해결하기

테스트용 EC2에서 EKS 쪽 작업할 게 생겨 IAM Role 할당 -> ~/.kube/config 설정 후API 요청을 보냈더니 에러가 났다. 평소 쿠버네티스 세팅은EC2에 IAM Role 할당 (Administrator 혹은 최소한의 Node Role)aws eks update-kubeconfigaws-auth configmap에 IAM Role 추가 (혹은 IAM Access Entries에 Role 추가)이 세 가지만 하면 문제 없었는데,, 다 돼있는데도 안돼서 당황했다.그래서 이번 글에서는 겉핡기식으로 알고 있던 쿠버네티스 인증에 대해 조금 자세히 다뤄보고 왜 저런 이슈가 발생했는지 기록해놔야겠다 라는 생각이 들었다. 쿠버네티스 인증Kubernetes uses client certificate..

AWS 2024.10.04

AWS Lambda@Edge를 활용한 실시간 이미지 리사이징

개요 본 포스팅을 들어가기에 앞서 먼저 이미지 리사이징이 왜 필요한지 생각해볼 필요가 있습니다. B2C 서비스, 특히 온라인 쇼핑몰을 접속해보면 굉장히 많은 상품 사진들을 볼 수 있습니다. 저는 국내 브랜드를 좋아하니 탑텐몰에서 아우터 항목을 한번 살펴보겠습니다. 상품들을 한 눈에 보여주니 마음에 드는 옷을 바로바로 고를 수 있겠네요. 대부분의 쇼핑몰들은 브라우저 메인 화면부터 세부 카테고리에 접속하기까지 소비자들의 이목을 끌기 위해 공통적으로 제공하는 것이 있습니다. 바로 썸네일(Thumbnail)인데요. 위 사진처럼 굳이 상품을 하나하나 클릭하지 않더라도 어떤 상품들이 있는지, 상품의 색상은 무엇인지 등의 정보를 소비자에게 노출시키기 위해 썸네일을 활용하고 있습니다. 여러 사진들 중에서 한 가지를 골..

AWS 2023.12.01

Session Manager를 통해 EC2 인스턴스 접속하기(feat. CentOS)

Private Subnet에 위치한 EC2 서버에 접속하는 방법은 크게 두 가지가 있습니다. 1. Public Subnet에 Bastion을 두고 SSH 터널링으로 접속하는 법 2. AWS Session Manager를 활용하는 법 Bastion host를 두면 아래와 같은 장점이 있습니다. 1. AWS 웹 콘솔 접속 없이 cli로 프라이빗 서버 액세스 가능 2. 방화벽 설계를 단순화할 수 있음 그러나, Bastion 서버를 직접 구성해야 하고, 서버 비용과 key 파일을 관리해야 한다는 수고로움이 발생합니다. Session Manager를 사용하면 위와 같은 작업이 불필요하게 됩니다. Session Manager(이하 SSM)는 AWS 웹 콘솔 내 브라우저 기반의 Shell, CLI를 제공하여 Priv..

AWS 2022.09.14

Openswan을 활용한 AWS Site-to-Site VPN 구성하기

1. 개요 2. 환경 구성 2.1 Key pair 생성 2.2 인프라 아키텍처 2.3 Ping 테스트 2.4 Customer Gateway 주소 확인 ( IDC ) 2.5 Customer Gateway 생성 ( AWS ) 2.6 VGW(Virtual Private gateways) 생성 2.7 VPN Connection 설정 2.8 VPN 구성 다운로드 2.9 Openswan 설치 ( IDC ) 3. Network 설정 3.1 IPSec 설정 3.1.1 Tunnel 설정 3.1.2 Secret 값 저장 3.2 라우팅 테이블 수정 4. 결과 개요 두 사설망 간의 연결을 위해선 크게 두 가지 방법이 존재합니다. 1. 물리적인 전용선을 설치하여 연결하는 방식 2. 가상의 네트워크 망을 구성하여 연결하는 방식 ..

AWS 2022.08.02

EC2에 Jenkins 구축하기

Jenkins란 Jenkins는 소프트웨어 구축, 테스트, 전달 및 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 오픈 소스 자동화 서버이다. 서비스를 개발하는 과정에서 개발자들이 코드 작성 외에 Test, Build, Deploy 등의 번거로운 과정을 직접 하지 않고, Pipeline 구축을 통해 자동화하여 처리할 수 있는 CI/CD 도구라고 할 수 있다. Jenkins는 여러 장점이 있지만 대표적으로 아래와 같다. 무료 다양한 플러그인 지원 많은 사용자를 보유(레퍼런스 많음) Jenkins 이외에도 Travis, GitLabCI 등의 다양한 CI 도구가 있으니 본인의 환경에 맞춰 적절하게 사용하면 될 것 같다. 설치 방법 JAVA 설치 Jenkins 설치 (원활한 실습 진행을 위해 ..

AWS 2022.05.03

EC2에 harbor 설치하기

Harbor란 Harbor는 Private Docker Registry로, 오픈소스이다. 내부적으로 Docker Registry를 사용하고 있으며, 여기에 RBAC, 웹 콘솔, Image scan 등의 편리한 기능이 추가되었다. 2020년 11월부터 Docker Hub의 image pull rate에 대한 limit이 걸렸는데, 관련된 내용은 아래와 같다. anonymous: 100 pulls per 6 hours per IP authenticated: 200 pulls per 6 hour subscription: no limits 사내에선 보통 forward proxy를 이용하니, Image Registry를 사용하면서 image pull rate을 초과할 일이 발생할 수 있다. 이러한 상황을 대비하여..

AWS 2022.05.02

EC2에 MySQL 설치하기

설치를 진행하기 전 sudo -s 명령어를 통해 관리자모드로 명령어를 실행한다. MySQL 패키지 설치 linux 환경에 맞는 mysql 패키지 설치하기 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum localinstall mysql80-community-release-el7-3.noarch.rpm MySQL :: Download MySQL Yum Repository The world's most popular open source database dev.mysql.com mysql server 설치하기 yum install mysql-community-server ++ mysql 설치 시 아래와 같은 오류가 발..

AWS 2021.12.13

리전 별 가용영역

AWS는 2021년 11월 기준 25개의 리전과 81개의 가용영역을 보유하고 있다. 리전에는 최소 3개의 가용영역이 존재한다. 아마 Aurora의 가용성 보장을 위한 3개의 AZ에 걸친 데이터 복제를 위해? 혹은 RDS에서 Multi-AZ를 위해 2개의 AZ를 사용하는데 이때 모니터링을 위한 인스턴스는 2개 AZ를 중복으로 관리하기 때문에 최소 3개의 AZ가 필요해서 그런 것 같다. AWS 공식 문서를 보면 현재 California 리전의 경우 "신규 고객은 2개의 AZ에 액세스할 수 있다" 라고 돼있는데, 이는 계정 별로 액세스할 수 있는 가용영역이 다르기 때문이고, 실제 가용영역은 3개가 존재한다. 실제로 AWS 웹 콘솔에서 확인해보면 2개의 AZ만 확인이 가능한데, 이처럼 계정 별로 액세스할 수 있..

AWS 2021.12.02

예약 인스턴스 vs Savings Plans

예약 인스턴스 예약 인스턴스는 말 그대로 '인스턴스'를 예약하는 것이다. 예를 들어 't3.micro 인스턴스 5대를 1년동안 예약할게' 와 같은 형식이 되는 것이다. Savings Plans Compute Savings Plans EC2, Fargate, Lambda 서비스 사용량을 '서비스를 시간당 얼마를 쓰겠다!'로 잡고 1/3년 약정을 걸어서 사용 EC2 Instance Savings Plans EC2 인스턴스 패밀리에 대해 '시간당 얼마를 쓰겠다!'로 잡고 1/3년 약정을 걸어서 사용 Savings Plans에서 약정한 사용량을 초과하지 않은 모든 사용량은 Savings Plans가 적용되고, 초과한 분은 On-demand 요금제로 적용 예약 인스턴스는 리전과 인스턴스 패밀리 변경이 불가능 (전..

AWS 2021.11.30

AWS 학습 (+ VPC Peering 실습)

AWS 비용 절감하기 Rightsizing Elasticity Pricing Storage Tagging 인스턴스를 관리할 때 태깅은 매우 중요하며, 이 태깅을 통해 Instance Scheduler를 동작시킬 수 있다.(EC2, RDS 등 사용 가능) S3 Class S3는 Standard, IA, Glacier 이외에도 Intelligent-Tiering이 출시됨 ‣S3 Intelligent-Tiering 자주 액세스하는지, 안 하는지를 잘 모를 땐 Intelligent-Tiering 클래스를 사용하면 됨. 소액의 Monitoring, 자동화 요금으로 액세스 패턴을 모니터링하고 수명주기에 따라 액세스되지 않으면 IA, 나중에 다시 액세스가 이루어지면 스탠다드로 클래스를 자동으로 변경해줌. ++ Arc..

AWS 2021.11.25