AWS EC2 ๋ณผ๋ฅจ ํฌ๊ธฐ ํ์ฅํ๊ธฐ
Amazon Aurora PostgreSQL ์ฒ๋ผ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ฅผ ์ด์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ด ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์๋ฒ๋ฅผ EC2 ์ธ์คํด์ค์์ ์ง์ ์ด์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ณผ๋ฅจ์ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๊ณ ์๊ณ์น๋ฅผ ๋์ด์๋ ๊ฒฝ์ฐ ๋์คํฌ ๋ณผ๋ฅจ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ์ผ ์์คํ ์ ํ์ฅํ์ฌ์ผ ํ๋ค.
์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ EC2 ์ธ์คํด์ค์ ์ง์ ์ค์นํ์ฌ ์ด์ฉํ๊ณ ์์ด ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ท๋ชจ์ ๋ฐ๋ผ ๋ณผ๋ฅจ์ ๋ํ ๋ชจ๋ํฐ๋ง์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ํํ๊ณ ๋ณผ๋ฅจ ํฌ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ์์ ์ ์ํํด์ผ ํ๋ค. ์ต๊ทผ์๋ Amazon FinSpace๋ฅผ ํตํด ๊ด๋ฆฌํ KDB Insight๋ฅผ ์ง์ํ๊ธฐ๋ ํฉ๋๋ค๋ง ๋ผ์ด์ผ์ค์ ์ธํ๋ผ ๋น์ฉ ๋ฌธ์ ๋ก ๊ด๋ฆฌํ ์๋น์ค๋ก ์ ํํ์ฌ ์ฌ์ฉ์ค์ด์ง๋ ์๋๋ค.
์๋ฌดํผ, Amazon EBS์ ํ๋ ฅ์ ๋ณผ๋ฅจ์ ์๋ฒ์ ์ฐ๊ฒฐ๋ ๋ณผ๋ฅจ์ ํด์ ํ๊ฑฐ๋ EC2 ์๋ฒ๋ฅผ ์ฌ์์ํ์ง ์๊ณ ๋ ๋ณ๊ฒฝ๋ ๋ณผ๋ฅจ์ ๋ฐ์ํ ์ ์๊ฒ ์ ๊ณตํด์ฃผ์ง๋ง AWS CLI ๋๋ ์น ์ฝ์์์ ๋ณผ๋ฅจ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ ๋ฆฌ๋ ์ค ํ์ผ ์์คํ ์์ ์ฌ์ฉ์ค์ธ ๋ณผ๋ฅจ์ ์๋์ผ๋ก ํ์ฅํด์ฃผ์ง๋ ์๋๋ค.
XFS ํ์ผ ์์คํ ํ์ฅ
๋ณผ๋ฅจ์ ํ์ผ ์์คํ ์ ๋ฐ๋ผ xfs_growsfs ๋๋ resize2fs ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ๋ณผ๋ฅจ์ ํฌ๊ธฐ๋งํผ ํ์ฅํ ์ ์๋ค. KDB+ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ /data ๊ฒฝ๋ก๋ก ๋ง์ดํธ๋์ด์์ด ์๋์ ๊ฐ์ด ํ์ผ ์์คํ ์ ํ์ฅํ ์ ์๋ค.
sudo df -hT /data
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme2n1 xfs 500G 349G 152G 70% /data
sudo xfs_growfs -d /data
EBS ๋ณผ๋ฅจ ์์ ์ ์ฃผ์์ฌํญ
- ๋ณผ๋ฅจ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋์ ์ต์ํ 6์๊ฐ ์ด๋ด์ ์ฌ์์ ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ๋ณผ๋ฅจ ์์ ํ์๋ optimizing ์ํ์ ๊ฐ์ ๋ณผ๋ฅจ ์์ ์ํฉ์ ๋ชจ๋ํฐ๋ง ํด์ผํ๋ค.
- ๋ณผ๋ฅจ์ ์์ ํ๊ธฐ ์ ์ ์ค๋ ์ท์ ์์ฑํ์ฌ ์์ํ์ง ๋ชปํ ์ํ์ ๋๋นํ์.
๊ทธ๋์ ๋ณผ๋ฅจ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ์ฅํ๋ ์์ ์ด ์์ฃผ ์ผ์ด๋์ง ์์์ผ๋ ์๊ฐ์ด ๋๋ค๋ฉด AWS CLI ๋๋ Lambda ๋ฅผ ์ด์ฉํ์ฌ ๋ณผ๋ฅจ ์๊ณ์น์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ณผ๋ฅจ์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ ๋ฐฉ๋ฒ์ ์ ์ฉํด๋ด๋ ์ข์ ๊ฒ ๊ฐ๋ค. GPT์ ๋ฌผ์ด๋ณด๋ ๋์ถฉ ์๋์ ๊ฐ์ด ๋ฐฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๋๋ณด๋ค.
#!/bin/bash
INSTANCE_ID=$(cat /var/lib/cloud/data/instance-id)
VOLUME_ID="vol-xxxxxxxxxxxxx"
VOLUME_PATH="/data"
USAGE=$(df -h $VOLUME_PATH | grep / | awk '{ print $5 }' | sed 's/%//g')
THRESHOLD=80 # %
EXPAND_SIZE=100 # GB
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "[EBS] USAGE: $USAGE"
CURRENT_SIZE=$(aws ec2 describe-volumes --volume-ids $VOLUME_ID --query "Volumes[0].Size")
NEW_SIZE=$(($CURRENT_SIZE + $EXPAND_SIZE))
echo "[EBS] CURRENT: $CURRENT_SIZE, NEW: $NEW_SIZE"
aws ec2 modify-volume --volume-id $VOLUME_ID --size $NEW_SIZE
sudo xfs_growfs -d $VOLUME_PATH
echo "[EBS] completed"
fi