You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
-2Lines changed: 0 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -26,8 +26,6 @@ This Repository is structured as follows:
26
26
27
27
## Reproduction of Results
28
28
29
-
We were not yet able to make all configurations in this repository independent of our AWS account and to upload our measurements as CSV files. We will improve this in the coming days.
30
-
31
29
All plots and intermediate results can be reproduced with the code and README descriptions in the microbenchmarks directories mentioned above.
32
30
Our results are part of this repo as well for exploration and replotting. Make sure to [prepare the according tools](#plotting).
33
31
To rerun the benchmarks make sure to follow the [requirements instructions](#requirements) below.
This page contains a short guide to setup the AWS specific tools and configurations in order to create and manage EC2 Instances and access S3 resources on AWS. We used the AWS SSO feature for authentication, towards which this guide is taylord. If you want or need to use another authentication method, some steps and provided utilities might not be compatible without manual adjustments.
4
+
3
5
## Getting started
4
6
5
7
1) Install aws cli2:
@@ -18,18 +20,24 @@
18
20
sudo installer -pkg AWSCLIV2.pkg -target /
19
21
```
20
22
21
-
2) Configure AWS cli: `aws configure sso`
23
+
1) Create an `awsenv` file in this directory (`{projectRoot}/aws/awsenv`). It is excluded from git and stores all private AWS specific configuration used by the [`awsrc`](./awsrc) and some other places throughout this project. The variables should be insertet line by line in the format `KEY="value"` and will be exported as environment variables via `source awsrc`. You don't need to fill them out now as they will be explained in the following steps along their respective AWS configurations. However as an overview, they will include:
24
+
- your SSH key name (`AWS_SSH_KEY_NAME`)
25
+
- your AWS SSO profile (`AWS_PROFILE`, `S3_PROFILE`)
26
+
- the AWS subnet ID(s) of your private AWS cloud network(s) (`AWS_SUBNET_DEFAULT`, `AWS_SUBNET_ALL`)
27
+
28
+
1) Configure AWS cli: `aws configure sso`
22
29
- As SSO start URL use <https://d-[your-project-id].awsapps.com/start/#>
23
30
- As SSO region use [your-sso-region]
24
31
- Confirm in web browser
25
32
- choose your CLI default client region where you want to deploy your EC2 instances and store your results
26
33
- choose your CLI profile name, e.g. nitro (preferrably something short and easy to remember, since you will need this in several other places)
27
-
- set your `AWS_PROFILE` for use in the [`awsrc`](./awsrc)
28
-
```bash
29
-
export AWS_PROFILE=[your-sso-profile]
34
+
- set your `AWS_PROFILE` for use in the [`awsrc`](./awsrc) and `S3_PROFILE` for downloading the results in the microbenchmarks in your [`awsenv`](./awsenv) file
35
+
```shell
36
+
AWS_PROFILE=[your-sso-profile]
37
+
S3_PROFILE=$AWS_PROFILE
30
38
```
31
39
- Other options can be set as you want.
32
-
3) Setup python venv with dependencies:
40
+
1) Setup python venv with dependencies:
33
41
Run the `setup_venv.sh` script or use manual steps:
34
42
35
43
```bash
@@ -38,21 +46,25 @@
38
46
pip3 install -r requirements.txt
39
47
```
40
48
41
-
4) Setup VPC (a default VPC should be created automatically in each region)
42
-
5) Set AWS SSH Key pair in the EC2 console under `Network & Security > Key Pairs`. Importing existing key pairs is possible under Actions. Save the key name in the environment variable `AWS_SSH_KEY_NAME`in your local shell. This is required forthe shell functions and aliasesin`awsrc`
43
-
6) Allow SSH access from the internet to instances you create:
49
+
1) Setup VPC (a default VPC should be created automatically in each region). The IDs should be stored to the [`awsenv`](./awsenv) file and can be looked up in the AWS console in the browser or via `ec2laz`. Those settings specify where instances, created via the shell functions from [`awsrc`](./awsrc) will be started.
50
+
```
51
+
AWS_SUBNET_DEFAULT=[default-subnet]
52
+
AWS_SUBNET_ALL="subnet-id-1 subnet-id-2 ..."
53
+
```
54
+
1) Set AWS SSH Key pair in the EC2 console under `Network & Security > Key Pairs`. Importing existing key pairs is possible under Actions. Save the key name as `AWS_SSH_KEY_NAME` in your [`awsenv`](./awsenv) file.
55
+
1) Allow SSH access from the internet to instances you create:
44
56
1) Go to Security Groups in the EC2 console: <https://[your-client-region].console.aws.amazon.com/ec2/home?region=[your-client-region]#SecurityGroups:>
45
57
2) Select the existing default security group
46
58
3) Go to `Inbound Rules > Edit inbound rules`
47
59
4) Create a rule that allows SSH access from your IP/from the Internet
48
60
5) Save
49
-
7) Create an S3 access role that can be attached to EC2 instances:
61
+
1) Create an S3 access role that can be attached to EC2 instances:
50
62
1) Go to IAM/Roles <https://[your-client-region].console.aws.amazon.com/iam/home#/roles>
51
63
2) Create role > AWS Service > EC2 > Next > tick AmazonS3FullAccess > Next > name the role "EC2-S3-access-role" > Create Role
52
-
8) Create an S3 Bucket for benchmarking
53
-
9) For some useful settings, aliases, and functions. Load`awsrc`in your shell with `source awsrc`.
54
-
10) Try if ec2 instance creation works with: `ec2c c6i.2xlarge`
55
-
11) Set up SSH key forwarding to easily clone this git repository onto the created machines. For example, add the following to your `.ssh/config`:
64
+
1) Create an S3 Bucket for benchmarking, e.g. `nitro-enclaves-result-bucket`
65
+
1) For some useful settings, aliases, and functions (re)load `awsrc` in your shell with `source awsrc`.
66
+
1) Try if ec2 instance creation works with: `ec2c c6i.2xlarge`
67
+
1) Set up SSH key forwarding to easily clone this git repository onto the created machines. For example, add the following to your `.ssh/config`:
56
68
57
69
```bash
58
70
Host *.compute.amazonaws.com
@@ -63,5 +75,5 @@
63
75
ForwardAgent yes
64
76
```
65
77
66
-
12) Get the instance public DNS name with `ec2li`.
67
-
13) Clone repository and install requirements on the new instance with `ec2setup INSTANCE_DNS` substitute INSTANCE_DNS with the result of the previous step.
78
+
1) Get the instance public DNS name with `ec2li`.
79
+
1) Clone repository and install requirements on the new instance with `ec2setup INSTANCE_DNS`. substitute INSTANCE_DNS with the result of the previous step.
0 commit comments