{"id":740,"date":"2026-04-15T09:46:59","date_gmt":"2026-04-15T09:46:59","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-archive-storage-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-storage\/"},"modified":"2026-04-15T09:46:59","modified_gmt":"2026-04-15T09:46:59","slug":"oracle-cloud-archive-storage-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-storage","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-archive-storage-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-storage\/","title":{"rendered":"Oracle Cloud Archive Storage Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Storage"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Storage<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p>Oracle Cloud <strong>Archive Storage<\/strong> is the long-term, low-cost storage tier in <strong>Oracle Cloud Infrastructure (OCI) Object Storage<\/strong> designed for data that you rarely access but must keep for months or years\u2014such as compliance records, audit logs, historical application exports, backups retained for legal reasons, or research datasets.<\/p>\n\n\n\n<p>In simple terms: <strong>you store objects cheaply in Archive Storage, and when you need them again you \u201crestore\/rehydrate\u201d them before downloading<\/strong>. That restore step is the key difference from standard object storage: it trades retrieval speed for a lower storage rate.<\/p>\n\n\n\n<p>Technically, Archive Storage is not a separate standalone product with its own API surface; it is a <strong>storage tier<\/strong> within the <strong>OCI Object Storage<\/strong> service. You interact with it through Object Storage concepts (namespaces, buckets, objects), OCI IAM policies, and the Object Storage API\/CLI\/Console. Archived objects are durable within a region and protected by OCI\u2019s encryption and access controls, but they require a restore operation before they can be read.<\/p>\n\n\n\n<p>Archive Storage solves a common problem: <strong>how to retain large volumes of infrequently accessed data at predictable, low storage cost<\/strong> without running your own tape infrastructure or complex cold-storage systems.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is Archive Storage?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Official purpose (what it\u2019s for)<\/h3>\n\n\n\n<p>Archive Storage in Oracle Cloud is intended for <strong>long-term data retention<\/strong> at a lower cost than \u201chot\u201d object storage. It is optimized for data you do not need to access frequently, and it typically requires a <strong>restore\/rehydration<\/strong> workflow before the data becomes readable again.<\/p>\n\n\n\n<p>Because Oracle positions Archive Storage as part of OCI Object Storage tiers, the practical official purpose is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Store objects at lower cost for long-term retention<\/li>\n<li>Restore objects when needed, accepting a restore delay and potential retrieval charges<\/li>\n<\/ul>\n\n\n\n<blockquote>\n<p>Service naming note: In OCI, you will often see Archive Storage discussed as an <strong>Object Storage tier<\/strong> (\u201cArchive tier\u201d). In this tutorial, \u201cArchive Storage\u201d refers to that tier within OCI Object Storage.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Core capabilities<\/h3>\n\n\n\n<p>Archive Storage provides (through Object Storage):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bucket and object storage<\/strong> using standard Object Storage constructs<\/li>\n<li><strong>Archive tier placement<\/strong> (store objects in the archive tier)<\/li>\n<li><strong>Lifecycle policies<\/strong> to automatically transition objects to Archive Storage after a time period (for example, 30\/90\/180 days)<\/li>\n<li><strong>Restore\/rehydration<\/strong> of archived objects so they can be downloaded\/read again<\/li>\n<li><strong>Encryption at rest<\/strong> (Oracle-managed keys by default; customer-managed keys via OCI Vault\/KMS where supported)<\/li>\n<li><strong>IAM policy-based access control<\/strong> (compartments, groups, dynamic groups, instance principals)<\/li>\n<li><strong>Auditability<\/strong> via OCI Audit events for Object Storage operations<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Major components (what you work with)<\/h3>\n\n\n\n<p>Even though you\u2019re \u201cusing Archive Storage,\u201d you still work with Object Storage components:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tenancy<\/strong>: Your OCI account boundary<\/li>\n<li><strong>Region<\/strong>: Object Storage is region-scoped; you choose where data lives<\/li>\n<li><strong>Compartment<\/strong>: The administrative boundary for access and governance<\/li>\n<li><strong>Namespace<\/strong>: A tenancy-level identifier used by Object Storage<\/li>\n<li><strong>Bucket<\/strong>: A container for objects; can have a default storage tier<\/li>\n<li><strong>Object<\/strong>: The stored data (files, blobs), including metadata and tier placement<\/li>\n<li><strong>Lifecycle Policy<\/strong> (optional but common): Automates tier transitions (e.g., Standard \u2192 Archive)<\/li>\n<li><strong>Restore operation<\/strong>: Makes an archived object readable again for a period of time<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Service type<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Service family<\/strong>: OCI <strong>Storage<\/strong><\/li>\n<li><strong>Service type<\/strong>: <strong>Object storage tier<\/strong> (cold archive) within <strong>OCI Object Storage<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scope: regional\/global\/zonal<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Regional<\/strong>: Object Storage buckets and objects live in a specific OCI region.<\/li>\n<li><strong>Tenancy-wide namespace<\/strong>: The Object Storage namespace is associated with your tenancy (you still operate within a region).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How it fits into the Oracle Cloud ecosystem<\/h3>\n\n\n\n<p>Archive Storage is typically used alongside:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI Object Storage (Standard \/ Infrequent Access tiers)<\/strong> for active datasets<\/li>\n<li><strong>OCI Logging \/ Audit<\/strong> for governance and tracking API activity<\/li>\n<li><strong>OCI Vault<\/strong> for customer-managed encryption keys (when required)<\/li>\n<li><strong>OCI Events + Notifications<\/strong> (where applicable) to automate actions on object events<\/li>\n<li><strong>OCI Data Transfer \/ Data Integration \/ Data Flow \/ OKE<\/strong> for pipelines that archive outputs or long-term datasets<\/li>\n<li><strong>OCI Backup<\/strong> and application-level backup tooling, where archives and exports are retained long-term<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use Archive Storage?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lower long-term storage cost<\/strong> for data you must keep but rarely access.<\/li>\n<li><strong>Replace tape or offsite cold storage<\/strong> with managed cloud storage.<\/li>\n<li><strong>Meet retention requirements<\/strong> for audits, legal holds (where applicable), and industry regulations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Integrates with Object Storage APIs<\/strong>\u2014you don\u2019t need a separate system to \u201carchive.\u201d<\/li>\n<li><strong>Lifecycle automation<\/strong> helps you enforce data lifecycle consistently (age-based tiering).<\/li>\n<li><strong>Object-level retention patterns<\/strong> (through Object Storage controls) can reduce accidental deletion risk (verify exact retention capabilities in official docs for your specific requirements).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fewer operational tasks<\/strong> than on-prem archives (no media rotation, no tape libraries, no offsite handling).<\/li>\n<li><strong>Centralized IAM, compartments, tagging<\/strong> for governance and cost allocation.<\/li>\n<li><strong>Auditable actions<\/strong> via OCI Audit.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Encryption at rest<\/strong> and secure access patterns via IAM.<\/li>\n<li><strong>Compartment-based governance<\/strong> and policy enforcement.<\/li>\n<li><strong>Audit logs<\/strong> for many administrative and data actions (verify exact coverage in Audit logs for Object Storage operations).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Massive scale<\/strong> for storing large volumes of objects.<\/li>\n<li><strong>Designed for durability<\/strong> appropriate for long-term retention.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose it<\/h3>\n\n\n\n<p>Choose Archive Storage when most of these are true:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data is accessed rarely (weeks\/months between reads)<\/li>\n<li>You can tolerate restore delay before access<\/li>\n<li>You want a managed cold tier with policy-based control<\/li>\n<li>You need regional placement and OCI-native IAM\/governance<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should not choose it<\/h3>\n\n\n\n<p>Avoid Archive Storage if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need <strong>frequent reads<\/strong> or low-latency access<\/li>\n<li>You have strict RTO requirements that cannot accommodate restore delays<\/li>\n<li>Your application expects immediate random reads without a restore workflow<\/li>\n<li>You have data that changes constantly (hot datasets); consider Standard or Infrequent Access instead<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is Archive Storage used?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Industries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Financial services<\/strong>: statements, trading records, compliance evidence<\/li>\n<li><strong>Healthcare\/life sciences<\/strong>: long-term records and research datasets (ensure your compliance mapping)<\/li>\n<li><strong>Public sector<\/strong>: records retention, citizen services archives<\/li>\n<li><strong>Media &amp; entertainment<\/strong>: archived raw footage, project exports<\/li>\n<li><strong>Manufacturing\/IoT<\/strong>: historical telemetry, QC images, sensor archives<\/li>\n<li><strong>Education\/research<\/strong>: datasets, publication reproducibility archives<\/li>\n<li><strong>SaaS<\/strong>: customer audit exports, long-term logs, old tenant snapshots<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Platform and infrastructure teams (central storage governance)<\/li>\n<li>Security and compliance teams (retention + audit)<\/li>\n<li>Data engineering teams (historical data lakes, cold partitions)<\/li>\n<li>Backup\/DR teams (long retention backups\/exports)<\/li>\n<li>DevOps\/SRE (log retention and incident forensics archives)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Long-term log retention (application logs, security logs)<\/li>\n<li>Historical reporting archives<\/li>\n<li>Monthly\/quarterly exports from databases\/data warehouses<\/li>\n<li>Archival backups, immutable exports (where controls allow)<\/li>\n<li>Content archives (documents, PDFs, scans)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data lifecycle architecture: Standard for hot data + Archive Storage for cold data<\/li>\n<li>Compliance evidence vault pattern: write once, rarely read, strong access controls<\/li>\n<li>Multi-tier object storage: Standard \u2192 Infrequent Access \u2192 Archive via lifecycle policies<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Production vs dev\/test usage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Production<\/strong>: common for compliance and retention obligations; strong IAM, tagging, and audit are critical.<\/li>\n<li><strong>Dev\/test<\/strong>: less common, but useful to simulate retention and restore workflows without storing large volumes\u2014use small sample objects and short retention windows to control costs.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic scenarios where <strong>Oracle Cloud Archive Storage<\/strong> is a good fit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Compliance record retention<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Regulations require retention of records for years; access is rare.<\/li>\n<li><strong>Why Archive Storage fits<\/strong>: Lower cost for long duration; IAM + Audit support governance.<\/li>\n<li><strong>Example<\/strong>: A bank stores monthly statements and audit extracts for 7 years, restoring only during audits.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Security investigation evidence archive<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Security teams must keep evidence artifacts and logs long-term.<\/li>\n<li><strong>Why it fits<\/strong>: Cheap long-term retention; restore only during investigations.<\/li>\n<li><strong>Example<\/strong>: Store incident response bundles and snapshots; restore when a case is reopened.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Long-term application log retention<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Keeping logs in a hot log system is expensive.<\/li>\n<li><strong>Why it fits<\/strong>: Export logs to Object Storage and transition to Archive Storage.<\/li>\n<li><strong>Example<\/strong>: Daily log exports to Standard; lifecycle transitions to Archive after 30\u201390 days.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Data lake cold partitions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Older partitions are rarely queried but must remain available.<\/li>\n<li><strong>Why it fits<\/strong>: Lifecycle moves older objects to Archive Storage.<\/li>\n<li><strong>Example<\/strong>: Clickstream parquet files older than 180 days move to Archive; restore when needed for long-range analysis.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Database export archives<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Organizations keep periodic exports for audit and recovery.<\/li>\n<li><strong>Why it fits<\/strong>: Exports are accessed rarely, but must be preserved.<\/li>\n<li><strong>Example<\/strong>: Monthly full exports stored and archived for 5 years.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Media project archive<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Raw assets take huge space; projects end but may be reused.<\/li>\n<li><strong>Why it fits<\/strong>: Cost-effective long-term storage; restore when a remaster is needed.<\/li>\n<li><strong>Example<\/strong>: A studio archives raw footage and project files after release.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) SaaS tenant offboarding archives<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Need to retain tenant data for a retention period after cancellation.<\/li>\n<li><strong>Why it fits<\/strong>: Store export archives cheaply; restore only upon legal requests.<\/li>\n<li><strong>Example<\/strong>: Tenant exports stored in per-tenant prefix; archived after 7 days.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Engineering build artifacts (long retention)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Keeping all build artifacts in hot storage is costly.<\/li>\n<li><strong>Why it fits<\/strong>: Keep recent artifacts in Standard; older versions in Archive.<\/li>\n<li><strong>Example<\/strong>: Store release artifacts for 2 years; restore for rollback investigations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Email\/document archive<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Retain documents for legal discovery.<\/li>\n<li><strong>Why it fits<\/strong>: Archive Storage reduces baseline cost; strict IAM and audit.<\/li>\n<li><strong>Example<\/strong>: Legal team restores specific document sets during discovery.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10) Scientific dataset preservation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Preserve large datasets for reproducibility, rarely accessed.<\/li>\n<li><strong>Why it fits<\/strong>: Long-term storage economics; restore when needed.<\/li>\n<li><strong>Example<\/strong>: Archive microscopy imagery and training datasets.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">11) DR evidence and compliance snapshots<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Maintain DR test evidence and reports for audits.<\/li>\n<li><strong>Why it fits<\/strong>: Store DR test logs and evidence, restore during audit season.<\/li>\n<li><strong>Example<\/strong>: Quarterly DR reports stored in Archive; restored annually.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">12) Contractual retention of customer reports<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Contracts require retention of generated reports for years.<\/li>\n<li><strong>Why it fits<\/strong>: Reports are seldom retrieved; lifecycle controls costs.<\/li>\n<li><strong>Example<\/strong>: Customer monthly billing reports archived after 90 days.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<p>Because Archive Storage is a tier of OCI Object Storage, many \u201cfeatures\u201d are actually Object Storage capabilities that apply when storing objects in the Archive tier. The following are the features most relevant to Archive Storage workflows.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Archive tier for low-cost retention<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Stores objects in a cold tier priced for long-term retention.<\/li>\n<li><strong>Why it matters<\/strong>: Reduces baseline storage costs for data rarely accessed.<\/li>\n<li><strong>Practical benefit<\/strong>: You can retain more history for the same budget.<\/li>\n<li><strong>Caveats<\/strong>: Archived objects require a restore\/rehydration operation before reading; retrieval may incur additional charges.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Bucket-level default storage tier<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Lets you set a bucket\u2019s default tier so new objects land in Archive Storage by default (where supported).<\/li>\n<li><strong>Why it matters<\/strong>: Simplifies ingestion pipelines\u2014no need to set tier per upload.<\/li>\n<li><strong>Practical benefit<\/strong>: A dedicated \u201carchive bucket\u201d is straightforward and avoids accidental hot storage.<\/li>\n<li><strong>Caveats<\/strong>: Make sure your application understands restore requirements before attempting reads.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Lifecycle policies to transition objects to Archive Storage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Automatically transitions objects based on age (for example, after N days).<\/li>\n<li><strong>Why it matters<\/strong>: Prevents \u201cforgotten\u201d data from staying in expensive tiers.<\/li>\n<li><strong>Practical benefit<\/strong>: Enforces governance and reduces manual effort.<\/li>\n<li><strong>Caveats<\/strong>: Lifecycle transitions are asynchronous; do not expect immediate tier changes after the age threshold.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Restore (rehydration) workflow for archived objects<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Initiates a process that makes archived objects readable again.<\/li>\n<li><strong>Why it matters<\/strong>: Enables \u201ccold\u201d economics while still allowing retrieval when needed.<\/li>\n<li><strong>Practical benefit<\/strong>: You pay for retrieval only when necessary.<\/li>\n<li><strong>Caveats<\/strong>: Restore takes time and may have charges; plan for RTO and user expectations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) IAM policy-based access control<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Uses OCI IAM policies to control who can manage buckets\/objects and perform restore operations.<\/li>\n<li><strong>Why it matters<\/strong>: Archives often hold sensitive data and compliance evidence.<\/li>\n<li><strong>Practical benefit<\/strong>: Least privilege access; separation of duties between writers and retrievers.<\/li>\n<li><strong>Caveats<\/strong>: Over-broad policies (like tenancy-wide \u201cmanage object-family\u201d) are common mistakes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Encryption at rest (Oracle-managed and customer-managed keys)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Encrypts data at rest; optionally integrates with OCI Vault for customer-managed keys (CMK) where supported for Object Storage encryption.<\/li>\n<li><strong>Why it matters<\/strong>: Many archive datasets are regulated.<\/li>\n<li><strong>Practical benefit<\/strong>: Better compliance posture and key control.<\/li>\n<li><strong>Caveats<\/strong>: Key rotation, key disablement, and access policies must be planned\u2014losing access to keys can make data unrecoverable.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Audit logging via OCI Audit<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Records relevant API calls for governance and investigations.<\/li>\n<li><strong>Why it matters<\/strong>: Archives are commonly used for compliance and legal scenarios.<\/li>\n<li><strong>Practical benefit<\/strong>: Traceability of who accessed or changed storage resources.<\/li>\n<li><strong>Caveats<\/strong>: Audit logs capture API events; reading object data via pre-authenticated requests and other access patterns should be validated against your audit requirements.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Object metadata and integrity features (Object Storage capabilities)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Supports object metadata, ETags\/checksums behavior, and standard object operations.<\/li>\n<li><strong>Why it matters<\/strong>: Helps maintain provenance and verify integrity of archived content.<\/li>\n<li><strong>Practical benefit<\/strong>: You can store retention-related metadata (case ID, dataset version, etc.).<\/li>\n<li><strong>Caveats<\/strong>: Metadata does not replace a proper catalog\/CMDB; use a database\/catalog for richer search.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Programmatic access via API\/SDK\/CLI<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Enables automation for archival pipelines, lifecycle management, and restores.<\/li>\n<li><strong>Why it matters<\/strong>: Archiving is often part of automated compliance and data pipelines.<\/li>\n<li><strong>Practical benefit<\/strong>: CI\/CD and scheduled jobs can move and restore data reliably.<\/li>\n<li><strong>Caveats<\/strong>: Protect credentials; prefer instance principals\/dynamic groups and OCI Cloud Shell where feasible.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">High-level architecture<\/h3>\n\n\n\n<p>OCI Archive Storage works through Object Storage. You upload objects into buckets (either directly into Archive Storage by default tier or via lifecycle transitions). When you need an archived object, you initiate a restore. After restoration completes, the object becomes readable for download\/processing (for the allowed restore window\/behavior defined by OCI\u2014verify in official docs).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Request\/data\/control flow (typical)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ingest<\/strong>: Application or pipeline uploads objects to Object Storage (bucket).<\/li>\n<li><strong>Tier placement<\/strong>:\n   &#8211; Objects land in Archive tier by bucket default, <strong>or<\/strong>\n   &#8211; Objects start in Standard\/other tier and lifecycle transitions them to Archive Storage later.<\/li>\n<li><strong>Archive state<\/strong>: Objects are stored cold; normal GET\/download may not be allowed until restored.<\/li>\n<li><strong>Restore request<\/strong>: User\/system submits a restore request for specific objects.<\/li>\n<li><strong>Restore completion<\/strong>: Object becomes readable again (temporarily or as defined by the service).<\/li>\n<li><strong>Read and process<\/strong>: Object is downloaded by tools or workloads (Compute, Functions, Data Flow, on-prem client).<\/li>\n<li><strong>Post-restore<\/strong>: Depending on OCI behavior, restored readability may expire; plan for re-restores if needed.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Integrations with related services<\/h3>\n\n\n\n<p>Common OCI integrations around Archive Storage include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI IAM<\/strong>: policies, groups, dynamic groups, instance principals<\/li>\n<li><strong>OCI Vault<\/strong>: customer-managed keys (CMK) for encryption controls (verify for your region and configuration)<\/li>\n<li><strong>OCI Events + Notifications<\/strong>: trigger downstream actions on object creation (Object Storage emits events; verify event types and constraints)<\/li>\n<li><strong>OCI Audit<\/strong>: governance and forensics of management-plane actions<\/li>\n<li><strong>OCI Monitoring<\/strong>: metrics around Object Storage (verify which metrics are exposed and their granularity)<\/li>\n<li><strong>OCI Data Transfer<\/strong>: for large offline migrations (if needed for initial archive seeding)<\/li>\n<li><strong>OCI Cloud Shell<\/strong>: fast start for CLI operations without local setup<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency services<\/h3>\n\n\n\n<p>Archive Storage depends on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI Object Storage<\/strong> (as the primary service)<\/li>\n<li><strong>OCI IAM<\/strong> for authorization<\/li>\n<li><strong>OCI Key Management (Vault)<\/strong> if using CMKs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/authentication model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>IAM policies<\/strong> authorize API calls.<\/li>\n<li>Authentication options:<\/li>\n<li>OCI Console user sessions<\/li>\n<li><strong>API signing keys<\/strong> for OCI CLI\/SDK usage<\/li>\n<li><strong>Instance principals<\/strong> (recommended for workloads on OCI)<\/li>\n<li><strong>Resource principals<\/strong> (for certain OCI services like Functions; verify per service)<\/li>\n<li>Pre-authenticated requests (PARs) for limited access sharing (use carefully)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Networking model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Object Storage is a public OCI service endpoint in each region.<\/li>\n<li>Access patterns:<\/li>\n<li>Over the public internet with HTTPS<\/li>\n<li>From OCI networks (VCNs) to public endpoints<\/li>\n<li>For strict network controls, review OCI options such as <strong>private endpoints \/ service gateway<\/strong> where applicable to Object Storage in your region (availability and configuration can vary\u2014verify in official docs).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Monitoring\/logging\/governance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Audit<\/strong>: Track who created\/deleted buckets, changed lifecycle policies, initiated restores, etc.<\/li>\n<li><strong>Tagging<\/strong>: Use defined tags\/freeform tags for cost allocation and ownership.<\/li>\n<li><strong>Quotas and limits<\/strong>: Check tenancy and compartment limits for Object Storage; enforce guardrails via IAM and compartments.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  U[User \/ App] --&gt;|PUT objects| OS[OCI Object Storage Bucket]\n  OS --&gt;|Store in Archive tier| AR[(Archive Storage)]\n  U --&gt;|Restore request| OS\n  OS --&gt;|Rehydrate\/restore| AR\n  U --&gt;|GET after restore| OS\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph Sources\n    A1[Apps]:::src\n    A2[DB export jobs]:::src\n    A3[Log pipeline]:::src\n  end\n\n  subgraph OCI_Region[OCI Region]\n    IAM[IAM Policies &amp; Dynamic Groups]:::sec\n    VAULT[OCI Vault \/ KMS (CMK)]:::sec\n\n    subgraph ObjectStorage[OCI Object Storage]\n      BKT1[Standard Bucket \/ Prefix]:::stor\n      BKT2[Archive Bucket (Default Archive tier)]:::stor\n      LCP[Lifecycle Policy: transition to Archive]:::ctrl\n    end\n\n    AUDIT[OCI Audit]:::gov\n    EVT[OCI Events]:::gov\n    NOTIF[OCI Notifications]:::gov\n  end\n\n  A1 --&gt;|Write objects| BKT1\n  A2 --&gt;|Write exports| BKT1\n  A3 --&gt;|Write daily bundles| BKT1\n\n  LCP --&gt;|Auto-transition| BKT2\n\n  IAM -. authorizes .- BKT1\n  IAM -. authorizes .- BKT2\n  VAULT -. encrypts at rest .- BKT1\n  VAULT -. encrypts at rest .- BKT2\n\n  BKT1 --&gt; AUDIT\n  BKT2 --&gt; AUDIT\n\n  EVT --&gt; NOTIF\n  BKT1 --&gt; EVT\n  BKT2 --&gt; EVT\n\n  classDef src fill:#eef,stroke:#88a;\n  classDef stor fill:#efe,stroke:#6a6;\n  classDef sec fill:#fee,stroke:#a66;\n  classDef gov fill:#ffe,stroke:#aa6;\n  classDef ctrl fill:#f7f7f7,stroke:#999;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Account\/tenancy requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An active <strong>Oracle Cloud (OCI) tenancy<\/strong><\/li>\n<li>Access to a <strong>region<\/strong> where OCI Object Storage is available (Object Storage is broadly available; verify region availability)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ IAM roles<\/h3>\n\n\n\n<p>You need OCI IAM policies that allow Object Storage operations. Common examples (adjust to your compartment model and least privilege):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For bucket and object management in a compartment:<\/li>\n<li><code>manage object-family<\/code> in a compartment<\/li>\n<\/ul>\n\n\n\n<p>Example policy statements (illustrative; tailor to your environment):\n&#8211; <code>Allow group StorageAdmins to manage object-family in compartment &lt;compartment-name&gt;<\/code>\n&#8211; <code>Allow group StorageReaders to read object-family in compartment &lt;compartment-name&gt;<\/code><\/p>\n\n\n\n<p>If you will manage IAM, compartments, or vault keys, you will need additional privileges.<\/p>\n\n\n\n<blockquote>\n<p>Verify exact IAM verbs and resource types in official IAM documentation for Object Storage. OCI IAM policy syntax is powerful; keep it least-privilege and compartment-scoped where possible.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Billing requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A paid OCI account or credits that allow Object Storage usage.<\/li>\n<li>Archive Storage incurs costs for stored data and may incur retrieval\/restore and request costs depending on your actions and region.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CLI\/SDK\/tools needed<\/h3>\n\n\n\n<p>Choose one of these approaches:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Recommended for the lab<\/strong>: <strong>OCI Cloud Shell<\/strong><\/li>\n<li>Includes OCI CLI and authentication integrated with your Console session.<\/li>\n<li>Local workstation:<\/li>\n<li>OCI CLI installed and configured with an API signing key<\/li>\n<li><code>openssl<\/code> (optional) and standard shell tools<\/li>\n<li>A text editor<\/li>\n<\/ul>\n\n\n\n<p>Official CLI repo and docs are linked in the Resources section.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI Object Storage is regional. Choose the region where you want your archive data to live.<\/li>\n<li>For data residency requirements, ensure the region meets your compliance needs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Object Storage has service limits (for example, bucket counts, request rates, etc.).<\/li>\n<li>Check <strong>OCI Console \u2192 Governance &amp; Administration \u2192 Limits, Quotas and Usage<\/strong> (wording may vary).<\/li>\n<li>If you plan high-volume restores, validate restore-related limits and throttles in official docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI Object Storage<\/strong> (required)<\/li>\n<li><strong>OCI IAM<\/strong> (required)<\/li>\n<li><strong>OCI Vault<\/strong> (optional, for customer-managed encryption keys)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<p>Archive Storage pricing can vary by <strong>region<\/strong>, and your tenancy may have negotiated pricing. Do not treat any blog or third-party numbers as authoritative\u2014use Oracle\u2019s official pricing pages and calculators.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Official pricing references<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Oracle Cloud Pricing page (Object Storage): https:\/\/www.oracle.com\/cloud\/price-list\/<\/li>\n<li>Oracle Cloud Cost Estimator: https:\/\/www.oracle.com\/cloud\/costestimator.html<\/li>\n<\/ul>\n\n\n\n<blockquote>\n<p>Navigate to the Storage\/Object Storage section and review pricing for storage tiers (Standard, Infrequent Access, Archive) and any retrieval\/requests pricing.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing dimensions (how you are billed)<\/h3>\n\n\n\n<p>While exact line items differ by region, Archive Storage costs are typically driven by:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Stored data (GB-month)<\/strong> in the Archive tier  <\/li>\n<li><strong>Data retrieval \/ restore<\/strong> operations and\/or retrieved volume (common in archive tiers)<\/li>\n<li><strong>Requests<\/strong> (API operations) depending on pricing policy for your region\/SKU:\n   &#8211; PUT, GET, LIST, lifecycle operations, restore requests, etc.<\/li>\n<li><strong>Data transfer<\/strong> (network egress)\n   &#8211; Data egress to the internet or to other regions can add cost\n   &#8211; Intra-region access patterns may be cheaper; verify OCI data transfer pricing rules<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier (if applicable)<\/h3>\n\n\n\n<p>OCI has a Free Tier program, but <strong>eligibility and included services change over time<\/strong>. Treat Archive Storage as billable unless your account explicitly indicates free usage. Verify current Free Tier entitlements in Oracle\u2019s official Free Tier documentation and your tenancy\u2019s billing dashboard.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Main cost drivers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Total archive footprint<\/strong>: the biggest driver for most customers (GB-month).<\/li>\n<li><strong>Restore frequency<\/strong>: frequent restores can quickly erase storage savings.<\/li>\n<li><strong>Restore volume<\/strong>: restoring large datasets \u201cjust in case\u201d increases retrieval charges.<\/li>\n<li><strong>Request patterns<\/strong>: high LIST\/HEAD\/GET patterns, especially from automation, can add cost.<\/li>\n<li><strong>Cross-region designs<\/strong>: replication and cross-region access can add network and storage cost.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hidden or indirect costs to watch<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Restore surprise<\/strong>: You can store cheaply for months, then pay a noticeable charge during a large restore event (audit, legal discovery).<\/li>\n<li><strong>Operational restores<\/strong>: If teams use Archive Storage like a normal bucket and repeatedly restore objects, costs and operational friction increase.<\/li>\n<li><strong>Egress<\/strong>: Downloading restored data to on-prem\/internet can be more expensive than processing within OCI.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network\/data transfer implications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plan where your restore consumers run:<\/li>\n<li>If you restore to run analysis, consider doing that analysis <strong>inside the same OCI region<\/strong> to reduce egress.<\/li>\n<li>If you must deliver data externally (e.g., legal counsel), model egress costs and use controlled distribution methods.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How to optimize cost (practical)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use lifecycle policies<\/strong> to move older data automatically to Archive Storage.<\/li>\n<li><strong>Archive in coarse bundles<\/strong> when appropriate (e.g., daily tarballs) to reduce per-object overhead and listing complexity.<\/li>\n<li><strong>Restore only what you need<\/strong>: restore by prefix\/object list rather than restoring entire buckets.<\/li>\n<li><strong>Minimize repeated restores<\/strong>: if you anticipate multiple reads over a period, restore once and consume within the restored availability window (verify how long objects remain restored).<\/li>\n<li><strong>Tag and track<\/strong>: use tags like <code>cost-center<\/code>, <code>data-classification<\/code>, <code>retention-policy<\/code> to enforce accountability.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (method, not fabricated numbers)<\/h3>\n\n\n\n<p>A safe way to estimate without making up prices:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Pick a region in the pricing page.<\/li>\n<li>Identify the <strong>Archive tier GB-month rate<\/strong>.<\/li>\n<li>Estimate monthly stored size (GB) and multiply.<\/li>\n<li>Add a small buffer for requests (PUT\/LIST) and retrieval only if you will restore.<\/li>\n<\/ol>\n\n\n\n<p>Example approach:\n&#8211; Store: <code>X GB<\/code> in Archive for <code>1 month<\/code> \u2192 <code>X * (Archive GB-month rate)<\/code>\n&#8211; Requests: <code>N PUT + M LIST<\/code> \u2192 <code>request pricing * counts<\/code> (if applicable)\n&#8211; Retrieval: <code>R GB restored<\/code> \u2192 <code>R * retrieval rate<\/code> (if applicable)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations<\/h3>\n\n\n\n<p>For production planning, include:\n&#8211; Growth rate (GB\/month)\n&#8211; Retention window (years)\n&#8211; Restore scenarios (audit once\/year; legal discovery; incident investigation)\n&#8211; Cross-region policies (if you replicate archives, you may pay storage twice)\n&#8211; Governance overhead (additional monitoring\/logging services if you export logs)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<p>Create an <strong>Archive Storage bucket<\/strong> in Oracle Cloud, upload a sample object, confirm it is stored as an archived object, initiate a <strong>restore<\/strong> (rehydration) request, and validate the workflow. Then clean up safely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<p>You will:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Use <strong>OCI Cloud Shell<\/strong> (recommended) or local OCI CLI.<\/li>\n<li>Create a compartment (optional) and an Archive Storage bucket.<\/li>\n<li>Upload a small test file.<\/li>\n<li>Verify object exists and is in the Archive tier (via Console and\/or CLI outputs where available).<\/li>\n<li>Initiate a restore request for the object (Console workflow).<\/li>\n<li>Validate restore status (acknowledge that restore may take time).<\/li>\n<li>Delete the object and bucket to stop future costs.<\/li>\n<\/ol>\n\n\n\n<blockquote>\n<p>Cost note: Uploading a tiny file is low cost. <strong>Restoring<\/strong> may incur charges depending on your region and pricing. If you want the lowest-cost experience, you can complete the lab without waiting for restore completion.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Choose a compartment and region<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sign in to the <strong>Oracle Cloud Console<\/strong>.<\/li>\n<li>Select the <strong>region<\/strong> where you want to create the bucket (top bar).<\/li>\n<li>Choose an existing <strong>compartment<\/strong>, or create one:\n   &#8211; Go to <strong>Identity &amp; Security \u2192 Compartments<\/strong>\n   &#8211; Click <strong>Create Compartment<\/strong>\n   &#8211; Name: <code>lab-archive-storage<\/code>\n   &#8211; Click <strong>Create<\/strong><\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You have a compartment to isolate resources and simplify cleanup.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Open OCI Cloud Shell (recommended)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the OCI Console, click the <strong>Cloud Shell<\/strong> icon.<\/li>\n<li>Wait for the shell to start.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You have a terminal with OCI CLI available and authenticated.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\nRun:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci -v\n<\/code><\/pre>\n\n\n\n<p>You should see the OCI CLI version.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Get your Object Storage namespace<\/h3>\n\n\n\n<p>In Cloud Shell:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci os ns get\n<\/code><\/pre>\n\n\n\n<p>Copy the value from <code>data<\/code>, for example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>namespace-name: &lt;your_namespace&gt;<\/code><\/li>\n<\/ul>\n\n\n\n<p>Optionally store it in a variable:<\/p>\n\n\n\n<pre><code class=\"language-bash\">NS=$(oci os ns get --query 'data' --raw-output)\necho \"$NS\"\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You have your namespace string for Object Storage commands.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Create an Archive Storage bucket<\/h3>\n\n\n\n<p>You can create a bucket with the <strong>default storage tier<\/strong> set to Archive (if supported in your region\/tenancy and CLI version).<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Find your compartment OCID in the Console:\n   &#8211; Compartment details page \u2192 copy <strong>OCID<\/strong><\/li>\n<li>In Cloud Shell, set:<\/li>\n<\/ol>\n\n\n\n<pre><code class=\"language-bash\">COMPARTMENT_OCID=\"ocid1.compartment.oc1..exampleuniqueID\"\nBUCKET_NAME=\"archive-lab-$(date +%Y%m%d%H%M%S)\"\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Create the bucket with Archive tier:<\/li>\n<\/ol>\n\n\n\n<pre><code class=\"language-bash\">oci os bucket create \\\n  --namespace-name \"$NS\" \\\n  --compartment-id \"$COMPARTMENT_OCID\" \\\n  --name \"$BUCKET_NAME\" \\\n  --storage-tier Archive\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; The bucket is created successfully.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\nList buckets:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci os bucket list --namespace-name \"$NS\" --compartment-id \"$COMPARTMENT_OCID\" --query 'data[].name'\n<\/code><\/pre>\n\n\n\n<p>You should see your bucket name.<\/p>\n\n\n\n<blockquote>\n<p>If the CLI returns a parameter error for <code>--storage-tier<\/code>, your CLI may be older or the flag name\/behavior may differ. In that case, create the bucket in the Console and set <strong>Default Storage Tier = Archive<\/strong> (where available). Always prefer the Console if CLI flags don\u2019t match your environment.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Upload a small test file to the archive bucket<\/h3>\n\n\n\n<p>Create a small file:<\/p>\n\n\n\n<pre><code class=\"language-bash\">echo \"Hello from OCI Archive Storage lab - $(date -Iseconds)\" &gt; archive-test.txt\nls -l archive-test.txt\n<\/code><\/pre>\n\n\n\n<p>Upload it:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci os object put \\\n  --namespace-name \"$NS\" \\\n  --bucket-name \"$BUCKET_NAME\" \\\n  --file archive-test.txt\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Upload succeeds and returns an <code>etag<\/code> and other metadata.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\nList objects:<\/p>\n\n\n\n<pre><code class=\"language-bash\">oci os object list \\\n  --namespace-name \"$NS\" \\\n  --bucket-name \"$BUCKET_NAME\" \\\n  --query 'data[].name'\n<\/code><\/pre>\n\n\n\n<p>You should see <code>archive-test.txt<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Verify the object tier in the Console<\/h3>\n\n\n\n<p>Because tier visibility can be clearer in the Console UI:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Storage \u2192 Object Storage &amp; Archive Storage \u2192 Buckets<\/strong><\/li>\n<li>Open your bucket: <code>BUCKET_NAME<\/code><\/li>\n<li>Go to <strong>Objects<\/strong><\/li>\n<li>Click the object <code>archive-test.txt<\/code><\/li>\n<li>Confirm it indicates <strong>Archive<\/strong> storage tier (wording varies by UI version).<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You can confirm the object is archived (or the bucket default tier is Archive).<\/p>\n\n\n\n<blockquote>\n<p>If the object shows in Standard tier unexpectedly, verify the bucket default tier setting and\/or whether you uploaded with a tier override. You can also use a lifecycle policy to transition it (next step).<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7 (Optional): Configure a lifecycle rule to transition objects to Archive Storage<\/h3>\n\n\n\n<p>If you prefer the \u201ctransition after N days\u201d pattern (common in production):<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the bucket in Console.<\/li>\n<li>Find <strong>Lifecycle Policies<\/strong> (or \u201cLifecycle Rules\u201d).<\/li>\n<li>Create a rule:\n   &#8211; Action: <strong>Transition to Archive<\/strong>\n   &#8211; Target: the whole bucket or a prefix (e.g., <code>logs\/<\/code>)\n   &#8211; Age: choose a small number allowed by the UI (often minimum is 1 day; varies)<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Future objects matching the rule will transition to Archive after the configured age.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Rule shows as enabled in the bucket\u2019s lifecycle settings.<\/p>\n\n\n\n<blockquote>\n<p>Lifecycle transitions are not immediate; do not expect the object tier to change instantly after setting the rule.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: Initiate a restore (rehydration) request (Console)<\/h3>\n\n\n\n<p>Restoring archived objects is the defining operational workflow.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In your bucket\u2019s <strong>Objects<\/strong> list, select <code>archive-test.txt<\/code><\/li>\n<li>Choose the action <strong>Restore<\/strong> (sometimes shown as \u201cRehydrate\u201d or similar)<\/li>\n<li>Configure restore parameters if prompted (for example, restore duration).<br\/>\n   &#8211; Use the smallest\/most cost-effective option appropriate for the lab.<\/li>\n<li>Confirm the restore request.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; A restore request is accepted and the object shows a \u201crestoring\u201d or \u201crestore requested\u201d status.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; In the object details page, look for restore status\/fields.\n&#8211; You may also see related events in Audit for the restore initiation.<\/p>\n\n\n\n<blockquote>\n<p>Restore completion time varies. Do not assume it completes immediately. Plan restores ahead of audits or retrieval events.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use these checks to confirm you successfully performed the workflow:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Bucket exists<\/strong> and is accessible in Console.<\/li>\n<li><strong>Object exists<\/strong> in the bucket.<\/li>\n<li>Object indicates <strong>Archive<\/strong> tier (or the bucket indicates default tier Archive).<\/li>\n<li>A <strong>restore request<\/strong> is visible in the object\u2019s details\/status.<\/li>\n<\/ol>\n\n\n\n<p>Optional (only after restore completes): attempt to download the object from the Console or with CLI. If you attempt to read before restore completes, you should receive an error indicating the object is not yet restored.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Problem: <code>NotAuthorizedOrNotFound<\/code> when using the CLI<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cause<\/strong>: Missing IAM permissions or wrong compartment\/namespace.<\/li>\n<li><strong>Fix<\/strong>:<\/li>\n<li>Confirm you used the correct compartment OCID and namespace.<\/li>\n<li>Ensure your user\/group has a policy like:<ul>\n<li><code>Allow group &lt;group&gt; to manage object-family in compartment &lt;compartment&gt;<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Problem: CLI flag <code>--storage-tier Archive<\/code> fails<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cause<\/strong>: CLI version mismatch or parameter differences.<\/li>\n<li><strong>Fix<\/strong>:<\/li>\n<li>Update OCI CLI (if local), or rely on <strong>Console<\/strong> to create a bucket with Archive default tier.<\/li>\n<li>Verify the current CLI reference in official docs.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Problem: Restore action not visible in Console<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cause<\/strong>: Object may not be in Archive tier, or your user lacks permissions.<\/li>\n<li><strong>Fix<\/strong>:<\/li>\n<li>Confirm object tier is Archive.<\/li>\n<li>Ensure permissions include managing objects (restore is a management operation).<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Problem: Restore takes longer than expected<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cause<\/strong>: Restore is asynchronous; time varies.<\/li>\n<li><strong>Fix<\/strong>:<\/li>\n<li>Treat restore as an operational process, not an interactive action.<\/li>\n<li>For production, design workflows to request restores ahead of time and notify consumers.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid ongoing charges, remove objects and buckets you created.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Delete the object:<\/li>\n<\/ol>\n\n\n\n<pre><code class=\"language-bash\">oci os object delete \\\n  --namespace-name \"$NS\" \\\n  --bucket-name \"$BUCKET_NAME\" \\\n  --object-name \"archive-test.txt\" \\\n  --force\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Delete the bucket:<\/li>\n<\/ol>\n\n\n\n<pre><code class=\"language-bash\">oci os bucket delete \\\n  --namespace-name \"$NS\" \\\n  --name \"$BUCKET_NAME\" \\\n  --force\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Optionally delete the compartment (only if it\u2019s dedicated to this lab and empty).<\/li>\n<\/ol>\n\n\n\n<blockquote>\n<p>Cost note: Some archive tiers have minimum storage duration considerations. Even if you delete quickly, you may still incur a minimum charge. Verify the Archive tier billing rules in the official pricing documentation.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use a multi-tier approach<\/strong>:<\/li>\n<li>Standard (hot) for current data<\/li>\n<li>Infrequent Access (warm) for less-used data<\/li>\n<li>Archive Storage (cold) for long-term retention<\/li>\n<li><strong>Separate archive buckets<\/strong> by domain and access pattern:<\/li>\n<li><code>security-archive<\/code>, <code>finance-archive<\/code>, <code>appX-archive<\/code><\/li>\n<li><strong>Design for restore<\/strong>:<\/li>\n<li>Document restore lead time expectations<\/li>\n<li>Provide runbooks for restore requests and approvals<\/li>\n<li>Automate restore requests for planned audits<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Least privilege<\/strong>:<\/li>\n<li>Separate writers (PUT) from restorers (restore + GET) if your compliance model requires it.<\/li>\n<li><strong>Compartment isolation<\/strong>:<\/li>\n<li>Keep archives in dedicated compartments with tighter policies.<\/li>\n<li><strong>Use dynamic groups \/ instance principals<\/strong> for OCI workloads:<\/li>\n<li>Avoid long-lived API keys in VMs\/containers when possible.<\/li>\n<li><strong>Control pre-authenticated requests (PARs)<\/strong>:<\/li>\n<li>Use short expiration times<\/li>\n<li>Restrict scope to specific objects\/prefixes<\/li>\n<li>Treat PAR URLs as secrets<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Prefer lifecycle policies<\/strong> over manual transitions to enforce consistent cost control.<\/li>\n<li><strong>Restore narrowly<\/strong>:<\/li>\n<li>Restore only required objects\/prefixes.<\/li>\n<li><strong>Avoid frequent \u201cbrowse\/list\u201d patterns<\/strong> on massive buckets:<\/li>\n<li>Maintain an external index\/catalog (database) for object inventory and metadata search.<\/li>\n<li><strong>Use tags<\/strong> for chargeback:<\/li>\n<li><code>cost-center<\/code>, <code>owner<\/code>, <code>data-classification<\/code>, <code>retention<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Batch uploads<\/strong> and use suitable tooling for large data migrations.<\/li>\n<li><strong>Name objects with prefix strategy<\/strong> that supports partitioning and manageable listings (e.g., <code>dataset\/year=2026\/month=04\/day=15\/file.parquet<\/code>).<\/li>\n<li><strong>Plan restore throughput<\/strong>:<\/li>\n<li>For large restores, coordinate and stage data consumption.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automate backups of metadata\/catalogs<\/strong>:<\/li>\n<li>Archive Storage holds objects, but your \u201cwhat is where\u201d catalog is critical.<\/li>\n<li><strong>Test restore regularly<\/strong>:<\/li>\n<li>Schedule a periodic restore drill to ensure IAM, key policies, and processes work.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Runbooks<\/strong>:<\/li>\n<li>Restore request procedure<\/li>\n<li>Cost approval workflow for large restores<\/li>\n<li>Security incident process for sensitive archives<\/li>\n<li><strong>Audit reviews<\/strong>:<\/li>\n<li>Periodically review bucket policies, lifecycle rules, and restore events<\/li>\n<li><strong>Naming conventions<\/strong>:<\/li>\n<li>Buckets: <code>org-domain-purpose-tier<\/code> (e.g., <code>acme-finance-statements-archive<\/code>)<\/li>\n<li>Prefixes: date-based and tenant\/project-based partitions<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance\/tagging\/naming best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>defined tags<\/strong> to enforce required metadata (owner, retention class).<\/li>\n<li>Use <strong>quotas<\/strong> (OCI Quotas) to prevent uncontrolled bucket sprawl (verify quota capabilities for Object Storage in your tenancy).<\/li>\n<li>Document <strong>data classification<\/strong> and map it to bucket compartments and key usage.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI Object Storage (including Archive Storage tier) is controlled by <strong>OCI IAM<\/strong>.<\/li>\n<li>Use:<\/li>\n<li><strong>Groups<\/strong> for human access<\/li>\n<li><strong>Dynamic groups + instance principals<\/strong> for workloads<\/li>\n<li>Write explicit policies:<\/li>\n<li>Admins: manage bucket\/lifecycle<\/li>\n<li>Ingest systems: put objects only<\/li>\n<li>Retrieval team: restore + get objects as needed<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Encryption at rest<\/strong> is supported by OCI Object Storage.<\/li>\n<li>For stricter controls, consider <strong>customer-managed keys (CMK)<\/strong> using <strong>OCI Vault<\/strong> (verify compatibility and setup in your region).<\/li>\n<li>Plan:<\/li>\n<li>Key rotation policy<\/li>\n<li>Break-glass access for key admins<\/li>\n<li>What happens if a key is disabled or deleted<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Object Storage endpoints are typically public HTTPS endpoints.<\/li>\n<li>Reduce exposure by:<\/li>\n<li>Limiting who can access and from where (IAM + network controls where applicable)<\/li>\n<li>Avoid embedding credentials or PAR URLs in code repositories<\/li>\n<li>Considering OCI networking options (like Service Gateway\/private access patterns) if supported for your environment\u2014verify in official docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Avoid long-lived keys on developer laptops for production archives.<\/li>\n<li>Prefer:<\/li>\n<li>Cloud Shell for interactive ops<\/li>\n<li>Instance principals for automation<\/li>\n<li>OCI Vault Secrets (if you must store credentials) and rotation<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>OCI Audit<\/strong> to track administrative actions:<\/li>\n<li>Bucket creation\/deletion<\/li>\n<li>Lifecycle policy updates<\/li>\n<li>Restore requests<\/li>\n<li>IAM changes affecting access to archives<\/li>\n<li>Export Audit logs to a separate secured location for long-term governance if required.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure:<\/li>\n<li>Region\/data residency alignment<\/li>\n<li>Retention policies meet legal\/regulatory requirements<\/li>\n<li>Access approvals for restores and exports<\/li>\n<li>For regulated workloads, validate:<\/li>\n<li>Encryption mode and key ownership<\/li>\n<li>Audit log retention and immutability controls (verify OCI capabilities that meet your compliance framework)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Using <code>manage object-family<\/code> at the tenancy root unnecessarily<\/li>\n<li>Sharing restore\/download access broadly \u201cbecause it\u2019s just archive\u201d<\/li>\n<li>Storing PAR URLs in tickets or chat without expiring them quickly<\/li>\n<li>Using customer-managed keys without a key-availability runbook (key disablement can create an outage for data access)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Separate compartments for archives by sensitivity.<\/li>\n<li>Use CMKs for highly regulated data where required.<\/li>\n<li>Enforce tagging and ownership metadata.<\/li>\n<li>Implement approval workflow for large restores and external egress.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<p>Archive Storage is intentionally optimized for cost over immediacy. Common limitations and gotchas include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Restore required before read<\/strong>: Archived objects typically cannot be read immediately without restore\/rehydration.<\/li>\n<li><strong>Restore time variability<\/strong>: Restore completion time can vary; design your RTO accordingly.<\/li>\n<li><strong>Lifecycle transitions are not instant<\/strong>: Policies apply asynchronously; do not depend on minute-level transitions.<\/li>\n<li><strong>Pricing surprises on retrieval<\/strong>: A large restore event can cause a cost spike.<\/li>\n<li><strong>Minimum storage duration<\/strong>: Archive tiers often have minimum storage duration billing rules. Deleting early can still incur charges\u2014verify current OCI pricing rules.<\/li>\n<li><strong>Large object inventories<\/strong>: Buckets with millions of objects can be operationally hard to manage; maintain a separate index\/catalog.<\/li>\n<li><strong>IAM complexity<\/strong>: Mis-scoped policies can accidentally grant restore and download access broadly.<\/li>\n<li><strong>Key management risk<\/strong>: With customer-managed keys, key misconfiguration can lock you out of data.<\/li>\n<li><strong>Cross-region assumptions<\/strong>: If you need multi-region retention, verify replication support and cost; do not assume archive tier behaves the same as standard.<\/li>\n<li><strong>Tooling expectations<\/strong>: Some tools expect immediate reads (e.g., naive ETL jobs). Ensure your pipeline knows how to restore first.<\/li>\n<\/ul>\n\n\n\n<p>For definitive limits (object size, request rates, max buckets, etc.), check:\n&#8211; OCI Console limits page for Object Storage in your region\n&#8211; Object Storage documentation (official) for current constraints<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Within Oracle Cloud (closest options)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Object Storage (Standard tier)<\/strong>: best for frequent access; higher cost; immediate reads.<\/li>\n<li><strong>Object Storage (Infrequent Access tier)<\/strong>: for less frequent access with faster reads than archive (verify exact access model and pricing).<\/li>\n<li><strong>Archive Storage<\/strong>: lowest storage cost tier for long retention; restore required.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Other clouds (nearest equivalents)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AWS S3 Glacier \/ Glacier Deep Archive<\/strong><\/li>\n<li><strong>Azure Blob Storage Archive tier<\/strong><\/li>\n<li><strong>Google Cloud Storage Archive class<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Self-managed alternatives<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On-prem tape libraries (LTO) and archive appliances<\/li>\n<li>Self-managed object storage with cold tiers (operational overhead)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Comparison table<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OCI Archive Storage (Object Storage Archive tier)<\/td>\n<td>Long-term retention, rare access<\/td>\n<td>Low storage cost tier; IAM + Audit; lifecycle automation<\/td>\n<td>Restore required; restore delays; retrieval charges possible<\/td>\n<td>Compliance retention, cold datasets, infrequent legal\/audit access<\/td>\n<\/tr>\n<tr>\n<td>OCI Object Storage Standard<\/td>\n<td>Hot data and frequent reads<\/td>\n<td>Immediate access; simplest app integration<\/td>\n<td>Higher storage cost<\/td>\n<td>Active datasets, app assets, frequent analytics reads<\/td>\n<\/tr>\n<tr>\n<td>OCI Object Storage Infrequent Access<\/td>\n<td>Warm data, occasional access<\/td>\n<td>Lower cost than Standard; faster than archive (typical)<\/td>\n<td>Still more than Archive; may have retrieval pricing<\/td>\n<td>Data accessed monthly\/quarterly, not daily<\/td>\n<\/tr>\n<tr>\n<td>AWS S3 Glacier \/ Deep Archive<\/td>\n<td>AWS-native cold archives<\/td>\n<td>Mature ecosystem; broad tooling<\/td>\n<td>Different APIs\/workflows; egress and request pricing<\/td>\n<td>You\u2019re standardized on AWS and need cold archive tiers<\/td>\n<\/tr>\n<tr>\n<td>Azure Blob Archive<\/td>\n<td>Azure-native cold archives<\/td>\n<td>Strong integration with Azure ecosystem<\/td>\n<td>Restore workflow required; pricing complexity<\/td>\n<td>You\u2019re standardized on Azure<\/td>\n<\/tr>\n<tr>\n<td>Google Cloud Storage Archive<\/td>\n<td>GCP-native cold archive<\/td>\n<td>Simple class model; GCP integration<\/td>\n<td>Restore\/availability model differs by class<\/td>\n<td>You\u2019re standardized on GCP<\/td>\n<\/tr>\n<tr>\n<td>On-prem tape<\/td>\n<td>Strict air-gapped archives, physical control<\/td>\n<td>Offline storage; can meet niche compliance<\/td>\n<td>Operational burden; slow retrieval; hardware lifecycle<\/td>\n<td>Requirements demand offline\/air-gap or existing tape ops at scale<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example: Financial compliance archive<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: A financial institution must retain transaction statements, audit extracts, and investigation artifacts for 7\u201310 years. Data is rarely accessed, but audits and legal requests require retrieval with full traceability.<\/li>\n<li><strong>Proposed architecture<\/strong>:<\/li>\n<li>Ingestion pipelines write monthly exports to OCI Object Storage (Standard).<\/li>\n<li>Lifecycle transitions to <strong>Archive Storage<\/strong> after 30\u201390 days.<\/li>\n<li>Buckets are separated by domain (<code>finance-statements-archive<\/code>, <code>audit-evidence-archive<\/code>) in restricted compartments.<\/li>\n<li>CMK encryption via OCI Vault for regulated datasets.<\/li>\n<li>Strict IAM: only compliance officers can initiate restores; application teams can write but not restore.<\/li>\n<li>Audit logs are monitored and exported to a secured governance store.<\/li>\n<li><strong>Why Archive Storage was chosen<\/strong>:<\/li>\n<li>Long-term storage cost control<\/li>\n<li>Strong OCI-native IAM and compartment boundaries<\/li>\n<li>Lifecycle automation and auditable management-plane actions<\/li>\n<li><strong>Expected outcomes<\/strong>:<\/li>\n<li>Predictable baseline storage costs over multi-year retention<\/li>\n<li>Reduced operational burden vs. tape<\/li>\n<li>Controlled restore workflow with approvals and auditing<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example: SaaS customer export retention<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: A SaaS startup must retain customer exports for 12 months after offboarding, but most exports are never downloaded again.<\/li>\n<li><strong>Proposed architecture<\/strong>:<\/li>\n<li>Exports are generated weekly and stored in a bucket with prefixes per tenant.<\/li>\n<li>A lifecycle rule transitions objects to Archive Storage after 14 days.<\/li>\n<li>A small internal admin tool can request restores for a tenant prefix when needed.<\/li>\n<li>Tags track tenant ID, owner, and retention class.<\/li>\n<li><strong>Why Archive Storage was chosen<\/strong>:<\/li>\n<li>Cost-efficient retention while the company scales<\/li>\n<li>Minimal operational overhead<\/li>\n<li>Simple restore workflow for the rare case of retrieval<\/li>\n<li><strong>Expected outcomes<\/strong>:<\/li>\n<li>Lower storage bill<\/li>\n<li>Consistent retention behavior without manual cleanup<\/li>\n<li>Clear governance and cost allocation as the customer base grows<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<p>1) <strong>Is Archive Storage a separate OCI service from Object Storage?<\/strong><br\/>\nNo. In OCI, Archive Storage is best understood as a <strong>storage tier within OCI Object Storage<\/strong>. You still use buckets, objects, and Object Storage APIs.<\/p>\n\n\n\n<p>2) <strong>What\u2019s the main tradeoff of Archive Storage?<\/strong><br\/>\nLower storage cost in exchange for <strong>restore\/rehydration requirements<\/strong> and potential restore delays\/charges before data can be read.<\/p>\n\n\n\n<p>3) <strong>Can I upload directly to Archive Storage?<\/strong><br\/>\nOften yes\u2014by using a bucket configured with <strong>default storage tier = Archive<\/strong> (and\/or object-level tier controls). Exact options can vary; verify in the Object Storage documentation for your region.<\/p>\n\n\n\n<p>4) <strong>Do I need to restore an archived object to delete it?<\/strong><br\/>\nTypically you can delete without restoring, but <strong>billing rules (like minimum storage duration)<\/strong> may still apply. Verify current pricing rules.<\/p>\n\n\n\n<p>5) <strong>How long does restore take?<\/strong><br\/>\nRestore time is not instantaneous and can vary. Use it as an operational workflow rather than an interactive read path. Verify restore performance expectations in official docs.<\/p>\n\n\n\n<p>6) <strong>How long does an object stay restored?<\/strong><br\/>\nOCI may provide a restore window\/period. The exact behavior can change; verify in official documentation and test in your environment.<\/p>\n\n\n\n<p>7) <strong>Can I automate transitions to Archive Storage?<\/strong><br\/>\nYes. Use <strong>Object Storage lifecycle policies<\/strong> to transition objects by age and prefix.<\/p>\n\n\n\n<p>8) <strong>Can I automate restores?<\/strong><br\/>\nYes, using Object Storage APIs\/CLI (and\/or workflow tools), but treat restores as controlled operations to prevent cost spikes.<\/p>\n\n\n\n<p>9) <strong>Is data encrypted in Archive Storage?<\/strong><br\/>\nObject Storage provides encryption at rest. For additional control, you may use OCI Vault customer-managed keys where supported\u2014verify configuration and region support.<\/p>\n\n\n\n<p>10) <strong>How do I restrict who can restore archived data?<\/strong><br\/>\nUse compartment-scoped IAM policies and separate \u201crestore operators\u201d from ingestion roles. Do not grant broad <code>manage object-family<\/code> unless necessary.<\/p>\n\n\n\n<p>11) <strong>Should I keep an external catalog\/index?<\/strong><br\/>\nFor large archives, yes. Listing millions of objects is operationally painful. Maintain a catalog (database) storing object keys, metadata, and retention attributes.<\/p>\n\n\n\n<p>12) <strong>What\u2019s the best way to structure object names for archives?<\/strong><br\/>\nUse prefixes that match your retrieval patterns (by date, tenant, dataset). Example: <code>tenant=123\/year=2026\/month=04\/export-0001.json<\/code>.<\/p>\n\n\n\n<p>13) <strong>Can I use Archive Storage for application assets (images\/css\/js)?<\/strong><br\/>\nUsually no. Application assets typically need immediate reads and low latency; use Standard Object Storage (and possibly CDN) instead.<\/p>\n\n\n\n<p>14) <strong>Is Archive Storage suitable for backup retention?<\/strong><br\/>\nIt can be, especially for long-term retention copies. Ensure your backup\/restore process accounts for restore delays and validate any minimum duration charges.<\/p>\n\n\n\n<p>15) <strong>Where do I see who restored or deleted an object?<\/strong><br\/>\nUse <strong>OCI Audit<\/strong> for API-level actions and review Object Storage related audit events. Validate exactly which operations are captured for your access patterns.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn Archive Storage<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official documentation<\/td>\n<td>OCI Object Storage documentation home: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/Object\/home.htm<\/td>\n<td>Primary source for Object Storage concepts, storage tiers, lifecycle policies, and restore workflows<\/td>\n<\/tr>\n<tr>\n<td>Official documentation<\/td>\n<td>OCI Object Storage overview: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/Object\/Concepts\/objectstorageoverview.htm<\/td>\n<td>High-level architecture and concepts (namespaces, buckets, objects) needed for Archive Storage<\/td>\n<\/tr>\n<tr>\n<td>Official pricing page<\/td>\n<td>Oracle Cloud Price List: https:\/\/www.oracle.com\/cloud\/price-list\/<\/td>\n<td>Authoritative pricing by region\/SKU for storage tiers and requests<\/td>\n<\/tr>\n<tr>\n<td>Official calculator<\/td>\n<td>Oracle Cloud Cost Estimator: https:\/\/www.oracle.com\/cloud\/costestimator.html<\/td>\n<td>Build a region-specific estimate for Archive tier storage and retrieval scenarios<\/td>\n<\/tr>\n<tr>\n<td>Official CLI docs \/ tooling<\/td>\n<td>OCI CLI GitHub: https:\/\/github.com\/oracle\/oci-cli<\/td>\n<td>Installation, usage, and examples; helpful for automation<\/td>\n<\/tr>\n<tr>\n<td>Official SDK<\/td>\n<td>OCI Python SDK GitHub: https:\/\/github.com\/oracle\/oci-python-sdk<\/td>\n<td>Programmatic automation examples and SDK reference<\/td>\n<\/tr>\n<tr>\n<td>Official architecture content<\/td>\n<td>OCI Architecture Center: https:\/\/www.oracle.com\/cloud\/architecture\/<\/td>\n<td>Reference architectures that often include Object Storage patterns<\/td>\n<\/tr>\n<tr>\n<td>Official training\/tutorials<\/td>\n<td>Oracle \u201cLearn\u201d tutorials hub: https:\/\/docs.oracle.com\/en\/learn\/<\/td>\n<td>Oracle-authored tutorials and labs (search for Object Storage\/Archive topics)<\/td>\n<\/tr>\n<tr>\n<td>Official videos<\/td>\n<td>Oracle Cloud Infrastructure YouTube channel: https:\/\/www.youtube.com\/@OracleCloudInfrastructure<\/td>\n<td>Demos and walkthroughs; validate against current docs<\/td>\n<\/tr>\n<tr>\n<td>Community learning (reputable)<\/td>\n<td>OCI forums and community Q&amp;A (start at docs links)<\/td>\n<td>Helpful for practical troubleshooting; validate answers against official docs<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<p>The following institutes are listed as training providers. Verify current course availability, syllabus, and delivery modes on their websites.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Institute<\/th>\n<th>Suitable Audience<\/th>\n<th>Likely Learning Focus<\/th>\n<th>Mode<\/th>\n<th>Website<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps engineers, SREs, platform teams<\/td>\n<td>DevOps practices, cloud operations, automation; may include OCI basics<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>ScmGalaxy.com<\/td>\n<td>Beginners to intermediate engineers<\/td>\n<td>SCM\/DevOps fundamentals; CI\/CD; adjacent cloud skills<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.scmgalaxy.com\/<\/td>\n<\/tr>\n<tr>\n<td>CLoudOpsNow.in<\/td>\n<td>Cloud ops practitioners<\/td>\n<td>Cloud operations, monitoring, governance, cost basics<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.cloudopsnow.in\/<\/td>\n<\/tr>\n<tr>\n<td>SreSchool.com<\/td>\n<td>SREs, operations, reliability engineers<\/td>\n<td>Reliability engineering, incident response, operational readiness<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.sreschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>AiOpsSchool.com<\/td>\n<td>Ops + automation learners<\/td>\n<td>AIOps concepts, automation, monitoring\/observability<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.aiopsschool.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<p>These sites are listed as trainer-related resources\/platforms. Confirm the specific trainer profiles and OCI coverage directly on the sites.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Platform\/Site<\/th>\n<th>Likely Specialization<\/th>\n<th>Suitable Audience<\/th>\n<th>Website<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RajeshKumar.xyz<\/td>\n<td>DevOps\/cloud training content (verify OCI coverage)<\/td>\n<td>Beginners to intermediate<\/td>\n<td>https:\/\/rajeshkumar.xyz\/<\/td>\n<\/tr>\n<tr>\n<td>devopstrainer.in<\/td>\n<td>DevOps training and mentoring<\/td>\n<td>DevOps engineers, students<\/td>\n<td>https:\/\/www.devopstrainer.in\/<\/td>\n<\/tr>\n<tr>\n<td>devopsfreelancer.com<\/td>\n<td>Freelance DevOps services\/training (verify offerings)<\/td>\n<td>Teams seeking short-term expertise<\/td>\n<td>https:\/\/www.devopsfreelancer.com\/<\/td>\n<\/tr>\n<tr>\n<td>devopssupport.in<\/td>\n<td>DevOps support\/training resources (verify scope)<\/td>\n<td>Operations and DevOps teams<\/td>\n<td>https:\/\/www.devopssupport.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<p>These organizations are listed as consulting resources. Validate service catalogs, case studies, and OCI expertise directly with each provider.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Company<\/th>\n<th>Likely Service Area<\/th>\n<th>Where They May Help<\/th>\n<th>Consulting Use Case Examples<\/th>\n<th>Website<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>cotocus.com<\/td>\n<td>Cloud\/DevOps consulting (verify OCI focus)<\/td>\n<td>Architecture guidance, implementation support, operations<\/td>\n<td>Designing archive lifecycle, IAM hardening, cost optimization<\/td>\n<td>https:\/\/cotocus.com\/<\/td>\n<\/tr>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps and cloud consulting\/training<\/td>\n<td>Cloud adoption, DevOps automation, operational maturity<\/td>\n<td>Automating Object Storage tiering, building restore runbooks, IaC practices<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>DEVOPSCONSULTING.IN<\/td>\n<td>DevOps consulting services<\/td>\n<td>CI\/CD, cloud operations, reliability practices<\/td>\n<td>Implementing retention policies, monitoring\/audit alignment, cost governance<\/td>\n<td>https:\/\/devopsconsulting.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before Archive Storage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI fundamentals<\/strong>: regions, compartments, IAM policies, tagging<\/li>\n<li><strong>Object Storage basics<\/strong>: namespaces, buckets, objects, prefixes<\/li>\n<li><strong>Security basics<\/strong>: least privilege, key management concepts, audit logging<\/li>\n<li><strong>Cost basics<\/strong>: understanding GB-month, retrieval costs, and egress<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after Archive Storage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lifecycle automation at scale<\/strong>:<\/li>\n<li>IaC with Terraform for OCI (if you manage many buckets\/policies)<\/li>\n<li><strong>Data governance<\/strong>:<\/li>\n<li>Data classification, retention schedules, approval workflows<\/li>\n<li><strong>Observability and auditing<\/strong>:<\/li>\n<li>Centralized Audit log retention and alerting<\/li>\n<li><strong>Backup\/DR design<\/strong>:<\/li>\n<li>Multi-tier backup retention strategies and restore testing<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use it<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud Engineer \/ Cloud Administrator<\/li>\n<li>Solutions Architect \/ Cloud Architect<\/li>\n<li>DevOps Engineer \/ Platform Engineer<\/li>\n<li>SRE \/ Operations Engineer<\/li>\n<li>Security Engineer \/ GRC Engineer (governance\/risk\/compliance)<\/li>\n<li>Data Engineer (for cold partitions and historical datasets)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path (if available)<\/h3>\n\n\n\n<p>Oracle\u2019s certification portfolio changes. Start from Oracle University and OCI certification pages and look for:\n&#8211; OCI Foundations\n&#8211; OCI Architect tracks\n&#8211; Security and operations-related OCI certifications<\/p>\n\n\n\n<p>Verify current OCI certifications in official Oracle training\/certification portals.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build a <strong>log archival pipeline<\/strong>: app logs \u2192 daily bundles \u2192 Object Storage \u2192 lifecycle to Archive<\/li>\n<li>Implement <strong>restore workflow automation<\/strong> with approvals (ticket-driven) and notifications<\/li>\n<li>Create a <strong>metadata catalog<\/strong> (SQLite\/Postgres) storing object keys, retention class, and tags<\/li>\n<li>Implement <strong>least-privilege IAM<\/strong>: separate writer vs restorer roles and test access boundaries<\/li>\n<li>Cost model exercise: compare Standard vs Archive across 1\u20137 year retention with one annual restore event<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Archive Storage<\/strong>: The cold\/archival storage tier in OCI Object Storage intended for long-term retention with restore\/rehydration before reads.<\/li>\n<li><strong>Object Storage<\/strong>: OCI service for storing data as objects in buckets, accessed via API\/HTTP.<\/li>\n<li><strong>Bucket<\/strong>: A logical container in Object Storage that holds objects and can have settings like default storage tier and lifecycle policies.<\/li>\n<li><strong>Object<\/strong>: A stored blob\/file plus metadata, addressed by an object name (key).<\/li>\n<li><strong>Namespace<\/strong>: A tenancy-level identifier used by OCI Object Storage.<\/li>\n<li><strong>Compartment<\/strong>: OCI resource grouping and access boundary used for IAM and governance.<\/li>\n<li><strong>Lifecycle Policy<\/strong>: Rules that automatically transition or delete objects based on age\/prefix criteria.<\/li>\n<li><strong>Restore \/ Rehydrate<\/strong>: Operation to make archived objects readable again.<\/li>\n<li><strong>IAM Policy<\/strong>: OCI authorization rules defining which principals can perform actions on resources.<\/li>\n<li><strong>Dynamic Group \/ Instance Principal<\/strong>: OCI identity mechanism allowing compute workloads to call OCI APIs without long-lived user credentials.<\/li>\n<li><strong>CMK (Customer-Managed Key)<\/strong>: Encryption key managed by the customer using OCI Vault\/KMS, used instead of Oracle-managed keys (where supported).<\/li>\n<li><strong>Audit Log<\/strong>: OCI service that records API calls for governance and security investigations.<\/li>\n<li><strong>Egress<\/strong>: Data transfer out of a cloud region\/service to the internet or another region, often billable.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p>Oracle Cloud <strong>Archive Storage<\/strong> is the <strong>cold archive tier of OCI Object Storage<\/strong>, built for <strong>low-cost, long-term retention<\/strong> of objects that are rarely accessed. It matters because it helps organizations meet retention and compliance goals while keeping storage budgets under control.<\/p>\n\n\n\n<p>Architecturally, it fits as the final tier in a multi-tier storage lifecycle (Standard\/active \u2192 colder tiers \u2192 <strong>Archive Storage<\/strong>), with <strong>lifecycle policies<\/strong> enforcing transitions and <strong>restore\/rehydration<\/strong> enabling occasional retrieval. Cost planning should focus on GB-month storage, retrieval\/restore events, request patterns, and egress. Security planning should center on compartment isolation, least-privilege IAM, encryption (including CMKs where needed), and auditability.<\/p>\n\n\n\n<p>Use Archive Storage when data is rarely read and you can tolerate restore delays; avoid it for hot application data or frequent analytics reads.<\/p>\n\n\n\n<p>Next step: read the <strong>OCI Object Storage documentation<\/strong> (including tiers and restore behavior) and practice designing a lifecycle policy + restore runbook that matches your organization\u2019s audit and incident response timelines.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Storage<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,7],"tags":[],"class_list":["post-740","post","type-post","status-publish","format-standard","hentry","category-oracle-cloud","category-storage"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=740"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/740\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}