Fedora на AWS
Мы установим Fedora 43 на экземпляр AWS EC2 в регионе us-west-2.
Чтобы запустить экземпляр в AWS, вам понадобится идентификатор Amazon Machine Image (AMI) для образа Fedora в нужном регионе и архитектуре машины.
Список регионов для x86_64 и aarch64 доступен в разделе «Launch on public cloud platforms» на https://fedoraproject.org/cloud/download#cloud_launch
Например, для запуска AMI Fedora 43 на x86_64 в регионе us-west-2 идентификатор AMI — ami-09d4a84b1cda0ac74. Обратите внимание, что идентификатор AMI меняется с каждым релизом.
Предварительные требования
Шаг 1: Загрузите установщик
Загрузите AWS CLI с сайта AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html Выберите тип программного обеспечения CLI в соответствии с характеристиками вашей ОС
Шаг 2: Запустите установщик
Установите AWS CLI на Fedora с помощью менеджера пакетов DNF следующим образом.
$ sudo dnf install awscli -y
Чтобы установить AWS CLI на других дистрибутивах Linux, выполните следующие команды.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
Шаг 3: Проверьте установку
Проверьте установку AWS с помощью следующей команды:
$ aws --version
Шаг 4: Настройте AWS CLI
Теперь настройте AWS CLI с вашими учётными данными, такими как Access Key и Secret Key, выполнив следующую команду:
$ aws configure
Пошаговое руководство по созданию экземпляра EC2 с помощью AWS CLI
Если у вас уже есть VPC с подсетями, интернет-шлюзом, таблицей маршрутизации, группой безопасности и ключевыми парами, перейдите к шагу запуска экземпляра EC2. Если нет, следуйте следующим шагам для создания VPC по умолчанию. Создание VPC по умолчанию автоматически создаст подсети, интернет-шлюз, таблицу маршрутизации и т. д.
Создание VPC по умолчанию
Создайте VPC (Virtual Private Cloud), как показано ниже.
$ aws ec2 create-default-vpc
{
"Vpc": {
"OwnerId": "985539757503",
"InstanceTenancy": "default",
"Ipv6CidrBlockAssociationSet": [],
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-0111c20e708b227a2",
"CidrBlock": "172.31.0.0/16",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": true,
"Tags": [],
"VpcId": "vpc-00617799cf31e2740",
"State": "pending",
"CidrBlock": "172.31.0.0/16",
"DhcpOptionsId": "dopt-02320dcaf6fd91eb3"
}
}
Здесь блок CIDR — 172.31.0.0/16. Вывод будет представлен в формате JSON. Обратите внимание на vpcId.
Подсети
Проверьте, успешно ли созданы подсети:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpcId>" --query "Subnets[*].{ID:SubnetId,CIDR:CidrBlock}"
Пример:
$ aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-00617799cf31e2740" --query "Subnets[*].{ID:SubnetId,CIDR:CidrBlock}"
[
{
"ID": "subnet-0cfbac16072874109",
"CIDR": "172.31.0.0/20"
},
{
"ID": "subnet-0bf950784376cab19",
"CIDR": "172.31.16.0/20"
},
{
"ID": "subnet-0d10af3548785ccc7",
"CIDR": "172.31.48.0/20"
},
{
"ID": "subnet-08c1988b07451008b",
"CIDR": "172.31.32.0/20"
}
]
Интернет-шлюз
Интернет-шлюз создаётся как часть создания VPC по умолчанию. Проверьте, успешно ли созданы подсети.
aws ec2 describe-internet-gateways
Пример:
$ aws ec2 describe-internet-gateways
{
"InternetGateways": [
{
"Attachments": [
{
"State": "available",
"VpcId": "vpc-00617799cf31e2740"
}
],
"InternetGatewayId": "igw-0edf1325238ca299f",
"OwnerId": "985539757503",
"Tags": []
}
]
}
Таблица маршрутизации
Таблица маршрутизации также создаётся и назначается VPC по умолчанию.
$ aws ec2 describe-route-tables
{
"RouteTables": [
{
"Associations": [
{
"Main": true,
"RouteTableAssociationId": "rtbassoc-0ed54d31a73dc80c2",
"RouteTableId": "rtb-0571c0444bafe3dbc",
"AssociationState": {
"State": "associated"
}
}
],
"PropagatingVgws": [],
"RouteTableId": "rtb-0571c0444bafe3dbc",
"Routes": [
{
"DestinationCidrBlock": "172.31.0.0/16",
"GatewayId": "local",
"Origin": "CreateRouteTable",
"State": "active"
},
{
"DestinationCidrBlock": "0.0.0.0/0",
"GatewayId": "igw-0edf1325238ca299f",
"Origin": "CreateRoute",
"State": "active"
}
],
"Tags": [],
"VpcId": "vpc-00617799cf31e2740",
"OwnerId": "985539757503"
}
]
}
Создание ключевой пары и группы безопасности
Ключевая пара AWS — это набор защищённых учётных данных, состоящий из открытого и закрытого ключей, используемых в основном для безопасного подключения к экземплярам Amazon EC2
Теперь создайте ключевую пару с помощью следующей команды:
$ aws ec2 create-key-pair --key-name my-keypair --query "KeyMaterial" --output text > my-keypair.pem
Здесь мы назвали файл ключевой пары my-keypair.pem, и он загружен в текущий каталог, из которого была выполнена команда.
Для создания группы безопасности используйте следующие команды:
aws ec2 create-security-group --group-name <имя-группы-безопасности> --description "<описание>" --vpc-id <vpcId>
Пример:
$ aws ec2 create-security-group --group-name FedoraSG --description "Fedora Security Group" --vpc-id vpc-00617799cf31e2740
{
"GroupId": "sg-07a6089d022898d5e",
"SecurityGroupArn": "arn:aws:ec2:us-west-2:985539757503:security-group/sg-07a6089d022898d5e"
}
Запомните GroupId и используйте его на следующем шаге.
aws ec2 authorize-security-group-ingress --group-id <GroupId> --protocol tcp --port 22 --cidr 0.0.0.0/0
Пример:
$ aws ec2 authorize-security-group-ingress --group-id sg-07a6089d022898d5e --protocol tcp --port 22 --cidr 0.0.0.0/0
{
"Return": true,
"SecurityGroupRules": [
{
"SecurityGroupRuleId": "sgr-0ad9c03c1d572224c",
"GroupId": "sg-07a6089d022898d5e",
"GroupOwnerId": "985539757503",
"IsEgress": false,
"IpProtocol": "tcp",
"FromPort": 22,
"ToPort": 22,
"CidrIpv4": "0.0.0.0/0",
"SecurityGroupRuleArn": "arn:aws:ec2:us-west-2:985539757503:security-group-rule/sgr-0ad9c03c1d572224c"
}
]
}
Протокол/порт, который мы здесь используем, — TCP/22, что является стандартным портом для протокола Secure Shell (SSH).
Запуск экземпляра EC2 Далее запустите экземпляр EC2 с помощью команды, приведённой ниже.
aws ec2 run-instances --image-id <ami-id> --instance-type t2.micro
--key-name <имя-ключевой-пары> --security-group-ids <SecurityGroupId>
--subnet-id <SubnetId>
--associate-public-ip-address
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=MyEC2Instance}]'
Пример:
$ aws ec2 run-instances --image-id ami-09d4a84b1cda0ac74 --instance-type t2.micro --key-name my-keypair --subnet-id subnet-08c1988b07451008b --security-group-ids sg-07a6089d022898d5e --associate-public-ip-address --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=MyEC2Instance}]'
На этом шаге вам понадобится идентификатор AMI (Amazon Machine Image). Используйте идентификатор AMI Fedora для региона us-west-2, отмеченный выше, то есть ami-09d4a84b1cda0ac74
Подключение к экземпляру Fedora EC2
-
Откройте SSH-клиент.
-
Найдите ваш файл закрытого ключа. Ключ, использованный для запуска этого экземпляра, — my-keypair.pem
-
При необходимости выполните эту команду, чтобы убедиться, что ваш ключ не доступен для просмотра другим пользователям.
$ chmod 400 "my-keypair.pem"
-
Подключитесь к вашему экземпляру, используя его Public DNS:
Пример:
$ ssh -i "my-keypair.pem" fedora@ec2–54–218–117–248.us-west-2.compute.amazonaws.com
The authenticity of host 'ec2–54–218–117–248.us-west-2.compute.amazonaws.com (54.218.117.248)' can't be established.
ED25519 key fingerprint is SHA256:/Gw7ysOzRvVsvbz3xdOyFP1F7mm3sFIYE1hPhJCCZ8M.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ec2–54–218–117–248.us-west-2.compute.amazonaws.com' (ED25519) to the list of known hosts.
[fedora@ip-172–31–39–204 ~]$
[fedora@ip-172–31–39–204 ~]$ cat /etc/redhat-release
Fedora release 43 (Forty Three)
Want to help? Learn how to contribute to Fedora Docs ›