Shared network storage( EFS )
์ข์์ ๐ ๋ด์ฉ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๊ตฌ์กฐ๋ง ์ ๋ฆฌ + ๊ฐ๋ ์ฑ ๊ฐ์ ํด์ ๊น๋ํ๊ฒ ๋ค์ ์ ๋ฆฌํด๋๋ฆด๊ฒ์.
์ด ์ํคํ ์ฒ๋ IAM ๊ถํ์ ์ด์ฉํ์ฌ EC2 3๋ ์ค 2๋๋ง EFS๋ฅผ ๊ณต์ ํ๊ณ , ๋๋จธ์ง 1๋๋ ์ ๊ทผ์ ์ ํํ๋ ๊ตฌ์กฐ์ ๋๋ค.
ClientMount + ClientWrite โ ๋ง์ดํธ + ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ฐ๋ฅClientMount๋ง โ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ/var/www/html ๋ฑ์ ๋ง์ดํธํ์ฌ ๋์ผ ์ฝํ
์ธ ์ ๊ณต0.0.0.0/0 ํ์ฉ โ ํจํค์ง ์ค์น ๋ฐ AWS API ํต์ ํ์0.0.0.0/0 ๊ธ์ง#!/bin/bash
yum update -y
yum install -y amazon-efs-utils
mkdir -p /mnt/efs_readonly
# Read-Only ๋ง์ดํธ
mount -t efs -o tls,ro <EFS_ID>:/ /mnt/efs_readonly
# ์๋ ๋ง์ดํธ ์ค์
echo "<EFS_ID>:/ /mnt/efs_readonly efs _netdev,tls,ro 0 0" >> /etc/fstab
#!/bin/bash
yum update -y
yum install -y amazon-efs-utils
mkdir -p /mnt/efs_fullaccess
# ๊ธฐ๋ณธ (Read/Write)
mount -t efs -o tls <EFS_ID>:/ /mnt/efs_fullaccess
# ์๋ ๋ง์ดํธ
echo "<EFS_ID>:/ /mnt/efs_fullaccess efs _netdev,tls 0 0" >> /etc/fstab
# ๊ถํ ์ค์
chown ec2-user:ec2-user /mnt/efs_fullaccess
chmod 775 /mnt/efs_fullaccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["elasticfilesystem:ClientMount"],
"Resource": "arn:aws:elasticfilesystem:<๋ฆฌ์ >:<๊ณ์ ID>:file-system/<EFS_ID>"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:ClientMount",
"elasticfilesystem:ClientWrite"
],
"Resource": "arn:aws:elasticfilesystem:<๋ฆฌ์ >:<๊ณ์ ID>:file-system/<EFS_ID>"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowRWAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<๊ณ์ ID>:role/<RW_ROLE_NAME>"
},
"Action": [
"elasticfilesystem:ClientMount",
"elasticfilesystem:ClientWrite"
],
"Resource": "arn:aws:elasticfilesystem:<๋ฆฌ์ >:<๊ณ์ ID>:file-system/<EFS_ID>",
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
},
{
"Sid": "AllowROAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<๊ณ์ ID>:role/<RO_ROLE_NAME>"
},
"Action": "elasticfilesystem:ClientMount",
"Resource": "arn:aws:elasticfilesystem:<๋ฆฌ์ >:<๊ณ์ ID>:file-system/<EFS_ID>",
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}
sudo yum install -y amazon-efs-utils
sudo mkdir -p /mnt/efs
sudo mount -t efs -o tls,iam fs-00816bdd3d0cbdaec /mnt/efs
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:ClientMount",
"elasticfilesystem:ClientWrite",
"elasticfilesystem:ClientRootAccess"
],
"Resource": "arn:aws:elasticfilesystem:๋ฆฌ์ :781729906178:file-system/fs-00816bdd3d0cbdaec"
}
# ๊ธฐ์กด ๋ง์ดํธ ํด์
sudo umount /mnt/efs
# Access Point ํฌํจ ๋ง์ดํธ
sudo mount -t efs -o tls,iam,accesspoint=fsap-xxxxxxxxxxxxxxxxx fs-00816bdd3d0cbdaec /mnt/efs
# ํ์ผ ์์ฑ
echo "admin success" | sudo tee /mnt/efs/test.txt
# ํ์ผ ํ์ธ
ls -la /mnt/efs/
ClientMount vs ClientWrite ์ฐจ์ด ์ดํดro ์ต์
ClientRootAccess ๋๋ Access Point์ํ๋ฉด ๐ โ์ํ์ ๋์ฌ ํฌ์ธํธ๋ง 1ํ์ด์ง ์์ฝโ๋ ๋ง๋ค์ด์ค๊ฒ ๐