Skip to main content Inicio Creadores jeremylongshore claude-code-plugins-plus-skills oraclecloud-migration-deep-dive
oraclecloud-migration-deep-dive Migrate workloads from AWS or Azure to OCI — IAM translation, networking mapping, compute image import, and data migration.
Use when planning an AWS-to-OCI or Azure-to-OCI migration, translating cloud concepts, or importing custom images.
Trigger with "oraclecloud migration", "aws to oci", "azure to oci", "oci migration deep dive".
Ir a la instalación Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/jeremylongshore/claude-code-plugins-plus-skills --skill oraclecloud-migration-deep-diveEl comando permanece en una sola línea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... Más de este repositorio Implement user sign-up and sign-in flows with Clerk.
Use when building authentication UI, customizing sign-in experience,
or implementing OAuth social login.
Trigger with phrases like "clerk sign-in", "clerk sign-up",
"clerk login flow", "clerk OAuth", "clerk social login".
Implement session management and middleware with Clerk.
Use when managing user sessions, configuring route protection,
or implementing token refresh and custom JWT templates.
Trigger with phrases like "clerk session", "clerk middleware",
"clerk route protection", "clerk token", "clerk JWT".
Configure enterprise SSO, role-based access control, and organization management.
Use when implementing SSO integration, configuring role-based permissions,
or setting up organization-level controls.
Trigger with phrases like "clerk SSO", "clerk RBAC",
"clerk enterprise", "clerk roles", "clerk permissions", "clerk organizations".
Ocupaciones relacionadas SOC
Basado en la clasificación ocupacional SOC
Explorador de archivos
2 archivos name oraclecloud-migration-deep-dive description Migrate workloads from AWS or Azure to OCI — IAM translation, networking mapping, compute image import, and data migration.
Use when planning an AWS-to-OCI or Azure-to-OCI migration, translating cloud concepts, or importing custom images.
Trigger with "oraclecloud migration", "aws to oci", "azure to oci", "oci migration deep dive".
allowed-tools Read, Write, Edit, Bash(oci:*), Bash(python3:*), Bash(terraform:*), Grep version 1.7.0 license MIT author Jeremy Longshore <jeremy@intentsolutions.io> tags ["saas","oraclecloud","oci"] compatibility Designed for Claude Code
Oracle Cloud Migration Deep Dive
Overview
Migrating to OCI from AWS or Azure requires translating IAM concepts (roles to policies, accounts to compartments), networking (VPC to VCN, Security Groups to NSGs), and compute (AMI to custom image). OCI's migration tooling is underdocumented compared to AWS Migration Hub or Azure Migrate. This skill provides comprehensive concept mapping tables, custom image import procedures, network topology translation, IAM policy translation, and data migration patterns — everything needed for a controlled cloud migration.
Purpose: Translate AWS/Azure architecture into OCI equivalents and execute the migration using OCI CLI and Python SDK, with verification at each step.
Prerequisites
OCI account with an active tenancy — https://cloud.oracle.com
OCI CLI installed and configured — ~/.oci/config validated (see oraclecloud-install-auth)
Python 3.8+ with the OCI SDK — pip install oci
Source cloud CLI — aws CLI or az CLI for exporting resources
Object Storage bucket in OCI for staging image imports
IAM policies : manage objects in compartment, manage custom-images in compartment, manage virtual-network-family in compartment
Instructions
Step 1: AWS-to-OCI Concept Mapping
AWS Concept OCI Equivalent Key Differences Account Tenancy One tenancy = one billing entity, use compartments for isolation Organization OU Compartment Compartments are hierarchical, up to 6 levels deep IAM Role IAM Policy OCI policies use allow group X to verb resource in compartment Y syntax IAM User IAM User Same concept, but OCI uses API key auth (not access keys) VPC VCN VCN subnets are regional (not AZ-scoped like AWS) Security Group Network Security Group (NSG) NSGs attach to VNICs, not instances. Also have Security Lists (subnet-level)
Route Table Route Table Similar, but OCI route rules target gateway OCIDs
Internet Gateway Internet Gateway Identical concept
NAT Gateway NAT Gateway Identical concept
VPC Endpoint Service Gateway Service Gateway routes to OCI services without internet
VPC Peering LPG / DRG LPG for same-region, DRG for cross-region or on-premises
AMI Custom Image Export as VMDK/QCOW2, import via Object Storage
EBS Block Volume Attachable block storage, similar performance tiers
S3 Object Storage Compatible API (S3 compatibility mode available)
RDS Autonomous Database Fully managed, but different administration model
EC2 Instance Type Shape Flex shapes allow fractional OCPU allocation
Availability Zone Availability Domain (AD) Same concept, 1-3 ADs per region
CloudWatch Monitoring Service Uses MQL (Monitoring Query Language) instead of CloudWatch metrics
CloudTrail Audit Service Automatic, no setup required
Step 2: Azure-to-OCI Concept Mapping Azure Concept OCI Equivalent Key Differences Subscription Compartment OCI uses compartments for billing isolation (not separate subscriptions) Resource Group Compartment Compartments are hierarchical; resource groups are flat Azure AD OCI IAM / IDCS OCI Identity Domains replaces IDCS for SSO/federation VNet VCN OCI subnets are regional, not tied to a zone NSG NSG Nearly identical concept Azure SQL Autonomous Database Different scaling model (OCPU-based) Managed Disk Block Volume Similar, but OCI uses volume groups for snapshots Blob Storage Object Storage Different API, but S3-compatible mode available Azure Monitor Monitoring Service MQL query language instead of Kusto Azure Policy Cloud Guard Detective controls, not preventive like Azure Policy
Step 3: Custom Image Import (AWS AMI to OCI) Export the AMI from AWS, then import to OCI via Object Storage:
aws ec2 create-store-image-task \
--image-id ami-0123456789abcdef0 \
--bucket my-export-bucket
aws s3 cp s3://my-export-bucket/ami-0123456789abcdef0.vmdk ./image.vmdk
oci os object put \
--bucket-name migration-staging \
--file ./image.vmdk \
--name "imported-image.vmdk" \
--namespace "$NAMESPACE "
import oci
config = oci.config.from_file("~/.oci/config" )
compute = oci.core.ComputeClient(config)
image = compute.create_image(
oci.core.models.CreateImageDetails(
compartment_id="COMPARTMENT_OCID" ,
display_name="migrated-from-aws" ,
image_source_details=oci.core.models.ImageSourceViaObjectStorageTupleDetails(
source_type="objectStorageTuple" ,
bucket_name="migration-staging" ,
namespace_name="NAMESPACE" ,
object_name="imported-image.vmdk" ,
source_image_type="VMDK" ,
),
)
).data
print (f"Image import started: {image.id } " )
print (f"State: {image.lifecycle_state} " )
Step 4: IAM Policy Translation AWS IAM roles use JSON policies attached to entities. OCI uses human-readable policy statements attached to compartments:
# AWS: Allow EC2 instances to read S3
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": "arn:aws:s3:::my-bucket/*"
}
# OCI equivalent:
allow dynamic-group app-instances to read objects in compartment prod where target.bucket.name='my-bucket'
AWS Policy OCI Policy Statement AdministratorAccessallow group admins to manage all-resources in tenancyReadOnlyAccessallow group readers to inspect all-resources in tenancyAmazonEC2FullAccessallow group compute-admins to manage instances in compartment prodAmazonS3ReadOnlyAccessallow group readers to read objects in compartment prodAmazonVPCFullAccessallow group net-admins to manage virtual-network-family in compartment prod
oci iam policy create \
--compartment-id "$COMPARTMENT_OCID " \
--name "app-compute-policy" \
--description "Allow app team to manage compute in prod" \
--statements '["allow group app-team to manage instances in compartment prod","allow group app-team to use volumes in compartment prod"]'
Step 5: Network Topology Translation Translate an AWS VPC with public/private subnets into an OCI VCN:
aws ec2 describe-vpcs --vpc-ids vpc-0123456789abcdef0 --output json > aws-vpc.json
aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-0123456789abcdef0" --output json > aws-subnets.json
aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-0123456789abcdef0" --output json > aws-routes.json
oci network vcn create \
--compartment-id "$COMPARTMENT_OCID " \
--display-name "migrated-vcn" \
--cidr-blocks '["10.0.0.0/16"]' \
--dns-label "migratedvcn"
Step 6: Data Migration (S3 to Object Storage) OCI Object Storage supports S3-compatible API, enabling direct migration:
import oci
config = oci.config.from_file("~/.oci/config" )
os_client = oci.object_storage.ObjectStorageClient(config)
namespace = os_client.get_namespace().data
os_client.create_bucket(
namespace_name=namespace,
create_bucket_details=oci.object_storage.models.CreateBucketDetails(
compartment_id="COMPARTMENT_OCID" ,
name="migrated-data" ,
storage_tier="Standard" ,
),
)
with open ("data-export.csv" , "rb" ) as f:
os_client.put_object(
namespace_name=namespace,
bucket_name="migrated-data" ,
object_name="data-export.csv" ,
put_object_body=f,
)
print (f"Uploaded to: https://objectstorage.{config['region' ]} .oraclecloud.com/n/{namespace} /b/migrated-data/o/data-export.csv" )
S3 Compatibility mode for tools that speak S3 natively:
aws s3 sync s3://source-bucket/ s3://migrated-data/ \
--endpoint-url "https://NAMESPACE.compat.objectstorage.us-ashburn-1.oraclecloud.com"
Output Successful completion produces:
AWS-to-OCI and Azure-to-OCI concept mapping tables for architecture translation
Custom image imported from VMDK into OCI compute (ready to launch instances)
IAM policies translated from AWS JSON format to OCI policy statements
Network topology (VCN, subnets, gateways) matching the source VPC/VNet configuration
Data migrated from S3 to OCI Object Storage via direct upload or S3-compatible API
Error Handling Error Code Cause Solution NotAuthorizedOrNotFound 404 Missing IAM policy for image import Add allow group migrators to manage custom-images in compartment prod InvalidParameter 400 Unsupported image format OCI accepts VMDK and QCOW2 only — convert other formats first NotAuthenticated 401 API key misconfigured Re-validate: oci iam user get --user-id $(grep ^user ~/.oci/config | cut -d= -f2) TooManyRequests 429 Rate limited during bulk upload Add delays between Object Storage uploads — no Retry-After header InternalError 500 OCI service issue Retry after 60 seconds; check https://ocistatus.oraclecloud.com Image import stuck in IMPORTING — Large image or Object Storage throttling Check work request: oci work-requests work-request get --work-request-id <id>
Examples Quick migration pre-flight check:
oci iam compartment get --compartment-id "$COMPARTMENT_OCID " \
--query 'data.{name:name, state:"lifecycle-state"}' --output table
oci os bucket get --bucket-name migration-staging --namespace "$NAMESPACE " \
--query 'data.name' --raw-output
oci compute image list --compartment-id "$COMPARTMENT_OCID " \
--query 'data[?contains("display-name",`migrated`)].{name:"display-name",state:"lifecycle-state"}' \
--output table
Resources
Next Steps After migration, review oraclecloud-reference-architecture to validate the OCI topology, then run oraclecloud-prod-checklist to ensure the migrated environment meets production standards.