Finout provides you with a simple way to manage long-term storage of cost data.
You can configure Finout to archive data in an AWS S3 bucket that you own — allowing you to store cloud spending data from your company’s various cost centers in one structured, easily accessible format.
Setting Up Cost Archiver
To output the cost data, Finout requires write permissions to an S3 bucket. For this purpose, please either create a new bucket or a new folder within the existing S3 bucket that’s used for your AWS CUR files.
Bucket permissions
Note: If there are currently no policies applied to the bucket, please use the following policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "{FinoutRole}"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::{DestinationBucketName}/*"
}
]
}
Note: If there are already statements
in the bucket’s policy, please add the following to the statements array:
{
"Effect": "Allow",
"Principal": {
"AWS": "{FinoutRole}"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::{DestinationBucketName}/*"
}
Note: If you wish to limit the write permissions to a specific folder within the bucket, please update the resource
portion as follows:
"Resource": "arn:aws:s3:::{DestinationBucketName}/{SomeFolder}/*"
Archived cost data
Cost data will be updated once a day in the following structure: bucket/archiver_name/v1/yyyymmdd.json.gz
Cost data can be added retroactively by request, and there is no limitation in terms of the archived data size.
Cost data structure
Field name | type | Description |
time | Date (YYYY-MM-DDT00:00:00.000Z) | ㅤ |
service | String | The type of service the cost is related to, for example, “EC2” (in AWS) or “Compute Engine” (in GCP) |
region | String | The region the cost is associated with |
cost_center_type | String | AWS / GCP / K8s / Snowflake |
costs | dict<string, double> | all the following costs: amortized_cost, net_amortized_cost, blended_cost, unblended_cost, net_unblended_cost, uncovered_cost, reservation_cost, savings_plan_cost, spot_cost |
metadata | dict<string, string> | All metadata relevant to this cost line |
Still need help? Please feel free to reach out to our team at [email protected].