Title: 544
Tags: lec35

Q: What does EC2 stand for, and what is it?
A: Elastic Compute Cloud
AWS's VM service (AWS is Amazon Web Services).

Q: What is usually more expensive to rent in the cloud, 1 VM for 100 hours, or 100 VMs for 1 hour?
A: The cost is usually the same.

Q: What is the difference between IaaS and PaaS?
A: IaaS: Infrastructure as a Service.  You rent low-level hardware-like resources (e.g., VMs, virtual disks, private networks, etc).  You use these to deploy systems yourself.  For example, you might launch a bunch of VMs and start running HDFS DataNodes on them.
PaaS: Platform as a Service.  The cloud provider runs a specific system on your behalf.  It could be something they built (e.g., S3), or something open source (e.g., MySQL).  This is usually more convenient, but you often pay more for that convenience.

Q: What does cloud "lock in" mean?
A: It means it is difficult to move to another cloud (or out of the cloud), even if if that's desirable in the long run.  Reasons for the difficulty:
1. need to pay a high network egress cost to get your data out
2. your code might be written to specifically use an API not available in other clouds

Q: What is a "tenant", and what is the difference between multi-tenant hosts and single-tenant hosts?
A: A tenant is a customer paying for cloud services, and might include multiple users (e.g., employees in the same company).
Multi-tenant: different tenants rent VMs on the same physical machine.
Single-tenant: all the VMs on a single physical machine will belong to the same tenant.  Usually more expensive, especially if that tenant doesn't have enough VMs to keep that physical machine fully utilized.

Q: What is a cloud cost you typically pay when VMs are powered off, but not deleted?
A: You'll typically pay for the virtual disk attached to the VM (because the cloud provider needs to expend storage resources to keep your data around so your VM can be booted up again later).

Q: What is a typical geographic hierarchy in clouds?
A: continents (approximate) contain regions, which contain zones.
Zones in the same region will be geographically near each other, but generally have different power and network resources, making correlated failures between zones unlikely.

Q: What is ingress/egress in terms of cloud resources, and what is more expensive?
A: Ingress: incoming network I/O (e.g., data being uploaded to a VM).
Egress: outgoing network I/O (e.g., data being downloaded from a VM).
Ingress is typically free.  Egress is sometimes free (perhaps when egress is to another VM in the same zone), but there is usually a cost per GB of data transferred.  Transferring out of the cloud is usually most expensive.  Within the cloud, the cost depends on whether it is the same region, same continent, etc.

Q: You can either pay a fixed price to get a VM (with high chances of success), or you can pay a fluxuating price (usually cheaper), and potentially get pre-empted (VM is taken away so cloud can use resources for something of higher priority).
What are these two billing models called?
A: "on-demand" instances and "spot" instances, respectively.

Q: The HDFS file system was modeled on a paper about the GFS file system at Google.  What is the newer distributed file system Google built and started using after GFS?
A: Colossus File System

Q: Is BigQuery a data warehouse or a data lake?
A: The distinction is blurred.  The BigQuery engine is integrated with a BigQuery storage engine (as in a warehouse), but BigQuery can also execute on external data sources such as parquet files in HDFS (as in a lake).

Q: The parquet file format was inspired by the ______ format developed at Google, which was eventually replaced internally at Google with the _______ format.
A: ColumnIO, Capacitor

Q: When a value in a column is repeated many times consecutively, we can record just the value and count (instead of many copies of the value).  This is called ________ encoding.
A: run-length

Q: When a column contains large strings, and the same values show up multiple times, we can replace those strings with shorter numeric codes.  We can use the numeric codes to lookup the original strings as needed.  This is called ______ encoding.
A: dictionary

Q: What is something that a GPL open-source license requires that is not required by MIT/BSD/Apache?
A: If you are making changes to the source code, you generally have to release your changes publicly under the GPL too (there are some exceptions/workarounds).

Q: What is a type of intellectual property the Apache open-source license focuses on that the MIT and BSD licenses do not talk much about?
A: They all talk about copyright; Apache additionally talks about patents