Here’s a comprehensive, step-by-step tutorial for migrating or configuring JFrog Artifactory 7.117.7+ (self-hosted, Linux) to use AWS EFS (Elastic File System) as its filestore. This guide brings together all best practices from JFrog documentation, AWS, and real-world experience.
(Suitable for both single-node and HA Artifactory setups.)
🟢 JFrog Artifactory 7.117.7+ with AWS EFS: Step-by-Step Guide
Step 1: Prepare Your AWS EFS
- Create an EFS File System in the AWS Console.
- Create Mount Targets for each AZ where your Artifactory servers run.
- Set security group rules: Allow NFS (port 2049) inbound from your EC2(s).
- Note your EFS DNS name (looks like
fs-xxxx.efs.<region>.amazonaws.com
).
Step 2: Mount EFS on Your Artifactory Server(s)
- Install NFS Client:
sudo apt update && sudo apt install -y nfs-common # Ubuntu/Debian # OR sudo yum install -y nfs-utils # RHEL/CentOS/Amazon Linux
- Create a Mount Directory:
sudo mkdir -p /mnt/efs
- Mount EFS:
sudo mount -t nfs4 -o nfsvers=4.1 fs-xxxx.efs.<region>.amazonaws.com:/ /mnt/efs
(Replacefs-xxxx...
with your EFS DNS name.) - Add to
/etc/fstab
for Persistent Mount:fs-xxxx.efs.<region>.amazonaws.com:/ /mnt/efs nfs4 defaults,_netdev 0 0
Step 3: (Optional) Copy Existing Filestore Data
If migrating existing artifacts:
- Stop Artifactory:
sudo systemctl stop artifactory
- Copy data to EFS:
sudo cp -a /opt/jfrog/artifactory/var/data/artifactory/filestore/* /mnt/efs/
(Usersync -av
for large data or HA setups.)
Step 4: Configure Artifactory to Use EFS
- Edit the binarystore.xml file:
sudo vi /opt/jfrog/artifactory/var/etc/artifactory/binarystore.xml
- Replace the content with:
<config version="2"> <chain template="file-system"/> <provider id="file-system" type="file-system"> <fileStoreDir>/mnt/efs</fileStoreDir> </provider> </config>
If you used a subdir, use/mnt/efs/filestore
above and adjust the copy commands accordingly.
Step 5: Fix Permissions
sudo chown -R artifactory:artifactory /mnt/efs
(Repeat for /mnt/efs/filestore
if using a subdirectory.)
Step 6: Start Artifactory
sudo systemctl start artifactory
sudo systemctl status artifactory
Step 7: Verify
- Check UI: Log in to
http://<server-ip>:8082
- Upload or download artifacts to confirm they are now stored in EFS (check files appear in
/mnt/efs
).
Additional Best Practices & Notes
- For HA: All Artifactory nodes must mount EFS to the exact same path and share the same
binarystore.xml
. - Always backup your filestore and database before making changes.
- Use NFSv4 (EFS default) for full compatibility.
- Monitor EFS performance—provision throughput if needed for high load.
- For Kubernetes: Use Artifactory’s Helm chart and set
artifactory.persistence.type=file-system
, then map your PVC to EFS.
Quick Reference Table
Step | Command/Action |
---|---|
Install NFS client | apt install nfs-common or yum install nfs-utils |
Mount EFS | mount -t nfs4 ... |
Add to fstab | Edit /etc/fstab |
Stop Artifactory | systemctl stop artifactory |
Copy filestore | cp -a or rsync -av |
Edit binarystore | Edit /opt/jfrog/artifactory/var/etc/artifactory/binarystore.xml |
Fix permissions | chown -R artifactory:artifactory /mnt/efs |
Start Artifactory | systemctl start artifactory |
Verify | Web UI & file checks |
References
- Official: Advanced Storage Options
- Official: Filestore Configuration
- Best Practices for Artifactory Filestore (JFrog Whitepaper)
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at Cotocus. I share tech blog at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow , and SEO strategies at Wizbrand.
Do you want to learn Quantum Computing?
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at WIZBRAND