라이트세일을 버리고, EC2로 갈아탔습니다.

( 그리고 마음에 평온이;; )

 

일단 라이트세일에서 긴급하게 EC2로 갈아탄 이유는..

 

라이트세일의 한계 때문입니다.

 

개인적으로 본인이 서비스중인 사이트는 여러가지가 있는데, 과거 말했다시피 가장 활성화된것들이 1위가 각기 태국과 미국입니다.

( 콩라인 한국.. )

 

VPC간 연결로 한번 구성해볼까 했는데..

 

Lightsail VPC 와 AWS VPC의 피어링 이후 다른곳과의 피어링이 엄청나게 빡셉니다.

 

옛날 IT 초창기 시절을 살아본 분들이라면 연결이 가능할거 같은데, 추후 확장성을 고려해도 개인적으로 비추천합니다.

 

일단 현재 구성은 아래와 같습니다.

 

EC2 서울 -> 서울 VPC - 피어링 -> RDS 및 ElastiCache VPC 서울

EC2 싱가포르 -> 싱가포르 VPC - 피어링 -> RDS 및 ElastiCache VPC 서울

( 미국이 없는 이유는 아직 미국은 동쪽에 박을지, 서쪽에 박을지 고민중이라;; 일단 확실하고 테스트 겸해서 서울과 싱가포르만.. 태국은 리스트에 없고, 태국에서 가장 가까운게 싱가포르라 싱가포르에 박았습니다. )

 

RDS 및 ElastiCache VPC 서울은 동일한 VPC 입니다.

 

중심은 RDS 및 ElastiCache VPC 서울이고, 여기에 각 EC2 리전 VPC 를 피어링 하는 방법을 사용했습니다.

 

만약 내 서비스는 망할때까지 한국에서만 서비스 할거야! 하는 분들은 라이트세일에서 확장하시면 될듯합니다.

 

저처럼 계속해서 리전이 늘어날 확률이 있다면, 기본 VPC 말고, VPC 를 생성해서 셋팅을 하신후 작업하시는걸 추천합니다.

( 당연한 이야기지만, VPC의 IP ( CIDR )은 다 다른 범위로 주셔야 합니다. )

 

살펴보시면 아시겠지만, 기본 VPC는 각 리전별로 다 동일한 IP ( CIDR )를 소지하고 있습니다.

 

이게 뭐가 문제가 되냐면, 라우팅 테이블 설정때 문제가 됩니다.

 

IP 별로 라우팅 테이블 설정을 해줘야하는데, 동일한 IP ( CIDR )는 설정이 불가능합니다.

 

VPC를 생성하신후에는 기본 VPC 와 설정을 동일하게 잡아주시고..

( 서브넷, 라우팅 테이블, 인터넷 게이트웨이.. )

 

VPC 메뉴에서 새롭게 생성한 VPC 를 선택하고, 마우스 오른쪽을 누르면, 메뉴들이 나오는데요.

 

"DNS 확인 편집", "DNS 호스트 이름 편집" 에서 체크박스가 체크되어있는지 확인합니다.

( 피어링후 설정시 필요합니다. )

 

서브넷 메뉴에서는 "자동 IP 할당 설정 수정" 에서 체크박스에 체크를 해주세요.

( EC2 생성할때 이 체크박스가 해제되어있으면, EC2에서 퍼블릭 접속이 불가능해집니다. )

 

주의사항은 이정도고, 피어링 이후에 라우팅 테이블을 작성해주시면 됩니다.

( 해당 부분은 네트워크의 전문적인 부분이니 넘깁니다. )

 

어찌어찌 여차여차 해서 VPC 연결이 다 재대로 되면, AWS RDS 와 AWS ElastiCache가 정상적으로 프라이빗 IP 로 접근되게 됩니다.

 

ps. 라이트세일의 장렬한 최후..

상위버전으로 끌어올려도 장렬하게 최후를 맞이하였길래 한컷;;

 

ps2. Route53의 지연 속도 기반 라우팅 ( LBR )은 리전당 딱 하나만 생성이 가능하네요.

그래서 꼼수를 부려서, 루트 도메인에 LBR 을 걸고, 와일드 카드를 별칭으로 연결하였습니다.

 

지연 속도 기반 라우팅에 대해서 한가지 이야기를 하자면, 기준이 사이트 로딩 속도가 아니라, ping 속도로 추정됩니다.

( 즉, 사이트가 아무리 죽어도 DNS가 응답이 미친듯이 빠르면, 죽은 사이트랑 매칭시켜줍니다. )

싱가포르 서버 부터 설정하고, 한국 서버를 설정해보니까, 한국 서버만 만들어 둔 상태에서, 한국은 계속 한국쪽으로 IP 할당해주더군요.

 

ps3. AWS ACM이 아닌, Let's Encrypt 를 사용하여, 구축하는경우..

sudo certbot certonly --dns-route53 -d manana.kr --deploy-hook 'systemctl reload apache2'

로 Route53 과 연계해서 발급받는것이 가능합니다.

sudo apt-get -y install certbot

certbot 이야 저렇게 설치하시면 되고..

Route53 플러그인이 있어야합니다.

sudo apt-get -y install python3-pip
sudo pip3 install certbot-dns-route53

로 플러그인을 설치합니다.

그 다음에 권한을 줘야하는데요.

https://certbot-dns-route53.readthedocs.io/en/stable/#credentials

 

Welcome to certbot-dns-route53’s documentation! — certbot-dns-route53 0 documentation

Use of this plugin requires a configuration file containing Amazon Web Sevices API credentials for an account with the following permissions: The access keys for an account with these permissions must be supplied in one of the following ways, which are dis

certbot-dns-route53.readthedocs.io

문서를 보면 그래서 뭐 어쩌라고? 란 느낌이 강합니다.

 

1. IAM 메뉴로 이동해서, 사용자를 추가합니다.

키를 발급받을거기 때문에, 엑세스 키와 비밀 엑세스 키를 주는걸 선택합니다.

 

2. 권한은 뭘 쓸지 모르니, Route53 에 대한 전권한을 줬습니다.

아마도, Route53 에서 cname 을 추가했다 삭제했다 할거 같아서, 쓰기 읽기 등등 권한을 줬습니다.

그렇게 발급받은 KEY 는 꼭 백업하시기 바랍니다.

추후에 안보여줍니다.

 

3. 서버에서 ~/.aws/config 파일을 생성합니다.

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

안에 내용은 위와 같이 작성해주시면 됩니다.

기본키와 비밀키를 발급받은걸로 넣어주시면 됩니다.

각종 웹문서 보면 막 복잡한 json 파일 만들고 뭐 어디다 넣으라는데, 가장 간단하게 저렇게 넣으면 해결됩니다.

 

ps4. EC2 에서 get_file_contents, curl, wget 등등이 안되는 경우..

보안그룹에서 막힌겁니다.

80번 포트, 필요하다면 443 포트도 모든 접속 허용하도록 규칙을 추가하면 사용이 가능하게 됩니다.

( 인터넷 검색해보니까 모든 TCP에 대해서 0.0.0.0/0 으로 열라는 문서들도 있던데, 그러면 방화벽 쓸 필요가 없습니다. 해커 : 개이득.. )

 

ps5. 아마존아!!!

Posted by Pure Ani

RE:D Cherish! -Eternity Blood- CRYSTALiA

放課後シンデレラ2 HOOKSOFT

花鐘カナデ*グラム NanaWind

フタマタ恋愛 ASa Project

スタディ§ステディ2 ま~まれぇど

リンパにATATA! ~メス牡蠣ミルクどぴゅらっしゅ~ Hending

創作彼女の恋愛公式 Aino+Links

流星ワールドアクター Heliodor

Secret Agent~騎士学園の忍びなるもの~ ensemble

天冥のコンキスタ エウシュリー

HaremKingdom -ハーレムキングダム- SMEE

ラズベリーキューブ まどそふと

ノラと皇女と野良猫ハート2 -Nora, Princess, and Crying Cat.- HARUKAZE

『ノラと皇女と野良猫ハート2』応援中♪

ピュアソングガーデン PULLTOP

はにデビ! Honey&Devil eufonie

姫繰三六五 HIMEKURI365

姫繰三六五 公式ウェブサイト

はるるみなもに! クロシェット

死に逝く君、館に芽吹く憎悪 バグシステム

Sanguinea-サングイネア- すにぃる

麗華の館 しすたーそふと

カスタムメイドオンライン KISS