https://github.com/cogini/hello_nerves_ec2
Example Elixir Nerves app running on Amazon EC2
https://github.com/cogini/hello_nerves_ec2
aws-ec2 elixir nerves
Last synced: about 1 year ago
JSON representation
Example Elixir Nerves app running on Amazon EC2
- Host: GitHub
- URL: https://github.com/cogini/hello_nerves_ec2
- Owner: cogini
- License: apache-2.0
- Created: 2018-07-21T08:27:56.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-08-11T23:47:41.000Z (almost 8 years ago)
- Last Synced: 2024-12-26T23:26:24.264Z (over 1 year ago)
- Topics: aws-ec2, elixir, nerves
- Language: Elixir
- Homepage:
- Size: 37.1 KB
- Stars: 2
- Watchers: 6
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hello_nerves_ec2
This is a minimal [Nerves](https://nerves-project.org/) app which runs
on Amazon EC2. It boots up and runs an IEx shell accessible via SSH.
It uses [nerves_system_ec2](https://github.com/cogini/nerves_system_ec2)
for the base system and [nerves_init_ec2](https://github.com/cogini/nerves_init_ec2)
to to configure the system.
See the blog post [Running Nerves on Amazon EC2](https://www.cogini.com/blog/running-nerves-on-amazon-ec2/)
for more details.
# Work in Progress
## Run with an IAM instance profile
Working but not well documented...
https://console.aws.amazon.com/iam/home
In order to access AWS resources, the program needs to have the necessary
permissions. Rather than hard-coding credentials, EC2 lets us associate an IAM
role with an instance at startup. It then makes the IAM keys available to
the instance via an HTTP API.
An instance profile is a "wrapper" for an IAM role. Roles can contain multiple
policies which give access to resources.
Create a policy which allows the instance to write logs to CloudWatch Logs.
In the AWS console, under AWS Service | EC2
"Create Policy", "JSON" tab.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"*"
]
}
]
}
```