For most customers it's important to control costs for service services. iconik provides some mechanisms for doing so, but if you integrate with other third parties it's also needed to make sure that you utilize their mechanisms in conjunction with what iconik allows. Remember iconik only charges you for what you use.
iconik gives you grainular access to ACLs and roles. By defining who can do what in iconik you can make sure that you can give the appropriate access to those that have the knowledge to not create operations that could cause large amounts of resource usage. Typically this is done in three ways:
- Use of roles on user groups
- Using Access Control to restrict the content that the user has access
- Setting the correct user type (Browse/Standard/Power) for the user.
Using iconik obviously uses resources on the system, particularly when the files are stored in Storage Buckets the cloud but with integration points it will also use resources on those external systems. Typical elements to look into are:
- Movement of files. In particular exporting from one Cloud Providers to the general internet or another Cloud Provider.
- Transcode operations. This will read the entire file from the Cloud Provider.
- Exporting of files. Can also read the entire file from a Cloud Provider.
- Running AI on assets. This typically also reads the entire file but will also incur a cost for the usage of the AI system which can typically be high. It is also possible to run this in bulk which could mean an entire storage is read
These are the areas that you need to look into when bringing your own services to iconik:
- Costs of storage bandwidth - typically egress (download from the cloud service) costs are high.
- Costs using 3rd party transcoders. If the users have access to upload an unlimited amount of files, these files might all be sent to the third party transcoders.
- Costs for AI systems such as AWS rekognition or Google Cloud AI services.
iconik doesn't explicitly have costs control for third party services as it has no knowledge of the costs of these services, but it does through roles and ACLs have the ability to restrict users from performing certain actions. You should use this ability with the functions available from the third party to control and monitor costs from them. If they do not have this facility we would strongly suggest choosing another service.
- Setup a unique user / access key for use by iconik.
- If possible setup even more restrictions around this user based on the facilities available in the third-party such as the total amount of usage allowed each month.
- Turn on billing monitoring and make sure that you have the facilities to respond in a timely manner to these notifications.
- Train your staff if they have access to cost areas to make sure they understand the implications of what they are doing.
Amazon AWS has excellent support for monitoring the costs for using their services, typically using https://aws.amazon.com/aws-cost-management/ and the Billing Dashboard. You can also set AWS budgets that can alert you when certain thresholds.
AWS Billing limits https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html are probably the best way of controlling the absolute costs.
With Backblaze B2 you can setup both Caps and Alerts and you should do this if you are using B2 in production. Their help article https://help.backblaze.com/hc/en-us/articles/217931138-How-to-use-B2-data-caps-alerts will explain more. We particularly like the ability to setup Download Bandwidth Caps.
Google Cloud allows you to set up billing alerts https://cloud.google.com/billing/docs/how-to/budgets as part of their billing system. You can also setup triggers based upon reach certain thresholds, though this is perhaps a more involved way of stopping billing getting out of control it is a very powerful mechanism. We suggest making sure that multiple users have the ability to get notifications of billing alerts.
IBM Cloud allows you to also setup billing alerts https://cloud.ibm.com/docs/billing-usage?topic=billing-usage-spending but at the time of writing there doesn't seem to be a way of putting a hard limit on spending with them.
Microsoft Azure spending limits are for certain tiers when running with free credits or offers and unfortunately does not allow you to set a custom amount in other cases. However they do allow setting up quotas for a department to get alerts https://docs.microsoft.com/en-us/azure/cost-management/cost-mgt-alerts-monitor-usage-spending more information is available here: https://docs.microsoft.com/en-us/azure/billing/billing-getting-started