# AWS meeting notes
###### tags: `Meeting notes` `AWS`
## Support personnels:
* Sha'Ron Williams, sales rep, support assiociate
* CC her in any matter related to Support, tickets, requesting a WAR (architecture review)
* Ryan Kuzminski, solutions architect, general technological support
* If one thing becomes major roadblock, email him and get response
* Otherwise, try to summarize all questions into a writeup and request a meeting with Sha'Ron, Ryan and service specialist.
* Best way to communicate: "connect the dots, on the basis of your own experiments"
* *TBD*, feature specialist, in-depth support on one or two particilar service, like ECS.
## Sha'Ron's recommendation on support plans
She recommends the Business plan, most companies on that plan; 24hr cloud support associate on call or email.
Not all questions can be answered by them, will have to try and see.
## What AWS services are involved in running our containerized database?
* ECS
* VPC
* Route table
* NAT
* Subnets
* Internet Gateway
* Security Group
* EBS
* AMI
* Size of instance
* IAM
* Users & groups
* Roles
* Roles assumed by user
* Roles applied to instance (ECS cluster access to S3)
## ECS hosting options
- [x] EC2 backed hosting. If ok with manual scaling, or one instance is steady-state.
> With EC2 hosting, we need to configure an auto-scaling group if we want to horizontally scale when too many containers are run on one instance.
> Or we can deploy to a larger instance.
- [ ] Fargate serverless hosting.
> With Fargate, we only need to specify the (Task) containers' resource requirement, and AWS manages server and scaling.
## Agenda
For next step, I need to compile a writeup of architecture requirement and questions and Ryan will request for a service specialist.
Draft:
> Mainly our architecture requirements are:
Running an EC2 node r5.8xlarge, 32 vCPU, 256G memory
Attaching at least 2TB of gp2 persistent disk. (I am inexperienced but I wish to setup a RAID-0 to use all available disk for the timescaleDB. I am not sure if any additional configuration is needed)
Running docker and multiple containers on that node. We are trying to run a modification of this open-source project https://github.com/filecoin-project/sentinel-visor/blob/master/docker-compose.yml and this project https://github.com/filecoin-project/lotus.
> What’s the collection of services that I should use? I’m following this https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html. But I’d love to get more details on, for example, setting up RAID for disks, setting up containers.
[ECS quotas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html)
## Experiments
[Tutorial](https://www.youtube.com/watch?v=fpxDGU2KdkA)
[Best Practice](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/networking.html)
[Actual Guide to DO stuff](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html)

## Golang in-depth
[谢孟军的 Go Web编程](https://github.com/astaxie/build-web-application-with-golang)
## Tutorial 1
1. VPC peering, the connection between VPCs across AZs.
2. Demo on creating a VPC
3. go to my vpcs, create VPC
4. CIDR block: 10.0.0.0/16 <- subnet mask
5. Tenacy: default or dedicated
6. Now VPC is created
7. Click on its Route Table and ACL, all are default
8. Default ACL allows all traffic from all sources inbound and outbound
9. Now we must create Subnet for the new VPC
10. Each instance in VPC should be given a public and private IP, and external and internal hostname resolved by DNS
11. Elastic IP address is used to persist IP to an instance regardless if it's stopped or started.