如何将AWS EC2实例中的源代码迁移至AWS CodeCommit?
Let’s break down this migration into simple, actionable steps—no fancy tricks needed, just standard Git and AWS best practices.
Prerequisites First
Before jumping into the migration, make sure you’ve got these covered:
- A running EC2 instance with your source code (obviously!)
- A new or existing AWS CodeCommit repository (create one via the AWS Console if you haven’t yet)
- Proper permissions for your EC2 instance to interact with CodeCommit:
- Attach an IAM role to your EC2 instance with the
AmazonEC2RoleforAWSCodeCommitmanaged policy (this lets the instance authenticate to CodeCommit without hardcoding credentials) - Or, if you prefer using HTTPS/SSH credentials, generate them in your IAM user settings (but using an IAM role is more secure for EC2)
- Attach an IAM role to your EC2 instance with the
Step 1: Set Up Git on Your EC2 Instance
Most EC2 AMIs come with Git pre-installed, but double-check:
git --version
If it’s missing, install it (example for Amazon Linux 2/RHEL):
sudo yum install git -y
For Ubuntu/Debian:
sudo apt update && sudo apt install git -y
Next, configure your Git user info (required for commits):
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
Step 2: Prepare Your Source Code Repository
If your code on EC2 isn’t already a Git repository, initialize one:
- Navigate to your project directory:
cd /path/to/your/source/code - Initialize Git:
git init - Stage all files and make your first commit:
git add . git commit -m "Initial commit: Migrated from EC2 instance"
If your code is already a Git repo, skip to the next step—you just need to add the CodeCommit remote.
Step 3: Connect to Your CodeCommit Repository
Grab the clone URL for your CodeCommit repo (from the AWS Console, under "Clone URL"—choose HTTPS if using an IAM role, or SSH if you set up SSH keys).
Add the CodeCommit remote to your local Git repo on EC2:
# Replace with your repo's HTTPS URL and region git remote add origin https://git-codecommit.us-east-1.amazonaws.com/v1/repos/YourRepoName
Verify the remote was added correctly:
git remote -v
Step 4: Push Your Code to CodeCommit
Finally, push your local branch to CodeCommit. If you’re using the main branch (default for newer Git versions):
git push -u origin main
If your default branch is master:
git push -u origin master
The -u flag sets the upstream branch, so future git push commands will work without specifying the remote/branch.
Troubleshooting Common Issues
- Permission denied errors: Double-check that your EC2 instance’s IAM role has the
CodeCommitPushpermission. If using HTTPS credentials, make sure you’ve configured the AWS credential helper on EC2:git config --global credential.helper '!aws codecommit credential-helper $@' git config --global credential.UseHttpPath true - Large files failing to push: CodeCommit has size limits (1GB per file, 5GB per repo). If you have big files, consider using Git LFS or splitting them up.
- Branch conflicts: If the CodeCommit repo isn’t empty, pull the remote branch first with
git pull origin mainbefore pushing.
That’s it! Your code is now in CodeCommit, ready for collaboration, CI/CD pipelines, or whatever development workflow you’re building next.
内容的提问来源于stack exchange,提问作者user2393123

