Создайте Linux AWS HVM AMI из существующего паравиртуального Linux AMI

К сожалению, среды Электронной коммерции хранения данных держателя карты подвергаются самым строгим требованиям PCI-DSS (тип D).

Примечание: Люди скажут Вам, что продавцы Уровня 1 подчиняются более строгим правилам, чем Уровень 4. Это просто не верно. Аудиты только требуются для продавцов Уровня 1, но если Вы - уровень 4, который пойман, нарушив правила, Вы все еще подвергаетесь некоторым крупным штрафам и легальной ответственности.

Полный список правил, за которыми необходимо следовать, здесь: https://www.pcisecuritystandards.org/documents/pci_saq_d.pdf

Во время Вашей разработки приложений Вы захотите обратить особое внимание на Требования 1-4.

Часто, я рекомендую, чтобы небольшие магазины произвели на стороне хранение данных держателя карты и даже материал корзины, если возможный для сокращения головной боли и ответственности. NetSuite, PayPal, Google Checkout и многие другие могут помочь Вам там.

38
задан 19 October 2012 в 00:02
5 ответов

Обновление

AWS включил эту функцию в API EC2. Он доступен как опция - virtualization-type для aws ec2 register-image в новом awscli на основе Boto.

Исходный ответ

Да! К сожалению, прямого способа сделать это нет. Кроме того, для некоторых экземпляров PV могут потребоваться изменения ядра и загрузчика.

  1. Создайте том из существующего AMI PV. Если это был ваш собственный PV AMI, вы можете создать том из снимка. Если это сторонний AMI, вам нужно будет запустить экземпляр и сделать снимок.
  2. Запустить экземпляр HVM с любым AMI.
  3. Остановить этот экземпляр HVM.
  4. Отсоединить корневой том от этого экземпляра.
  5. Присоедините том PV в качестве корневого тома (/ dev / sda1 или / dev / sda, если он был разбит на разделы) к экземпляру HVM.
  6. Запустите ec2-create-image в экземпляре HVM.
  7. Запустите другие экземпляры с вашим новым AMI HVM.

Если это не сработает, то перед шагом 5 вам потребуется чтобы присоединить этот том к работающему экземпляру, настроить chroot и установить ядро ​​и загрузчик для вашего дистрибутива. Вы также можете очистить журналы и любой кэш облачной инициализации.

22
ответ дан 28 November 2019 в 19:47

TLDR:

ec2-register -a x86_64 -d '3.15.7-200.fc20.x86_64' -n 'Fedora_20_HVM_AMI'  --sriov simple --virtualization-type hvm -s snap-b44feb18 --root-device-name /dev/sda1 

Подробные шаги:

Дальнейший ответ, основанный на ответе Джеффа Стрэнка для упрощения шагов и предоставления немного более подробной информации об изображении регистра ec2:

  1. Создание экземпляра с помощью PV изображения. Делайте / обновляйте любые изменения.

  2. Создайте изображение из вышеуказанного экземпляра.

  3. Найдите идентификатор снимка, используемый вышеуказанным AMI в EC2 > Магазин эластичных блоков > Снимок в консоли EC2.

    или если у вас настроены инструменты ec2 api:

    ec2-описание изображений ami-id_of_above_created_ami

    и найдите идентификатор снимка для ami

    ... Предположения для дальнейших шагов: Ваши ec2 ключи и инструменты api настроены и готовы к использованию:

  4. зарегистрируйте новый HVM AMI, используя приведенный выше снэпшот: пример:

ec2-register -a x86_64 -d '3.15.7-200.fc20.x86_64' -n 'Fedora_20_HVM_AMI' --sriov simple --virtualization-type hvm -s snap-b44feb18 --root-device-name /dev/sda1

где

  • -d - это описание AMI
  • -n - это имя AMI
  • -s - это ид снимка с шага 3.
  • -a - это архитектура
  • --виртуализация-типа необходима для того, чтобы hvm
  • -сриов был включен в расширенную сеть, хотя он может быть избыточным, но не уверенным.

Для получения дополнительной информации:

10
ответ дан 28 November 2019 в 19:47

В моем случае мне пришлось выполнить преобразование вручную, так как экземпляр который я создал с помощью aws ec2 register-image не загрузился. Мое решение основано на этой публикации на форуме AWS EC2 .

Подготовка

Убедитесь, что все тома находятся в одной зоне доступности.

  1. SSH для ваш PV-компьютер, с которого вы хотите выполнить миграцию и применить все обновления, а затем выйти из системы.

  2. Перейдите в консоль AWS и запустите новый экземпляр HVM, выбрав тот же базовый AMI, из которого была создана PV-система (в моем случае, 64-битный Linux AMI Amazon).

  3. SSH к этому новому экземпляру и применение всех обновлений, затем выход из системы.

  4. Перейдите в консоль AWS и остановите экземпляр PV. Сделайте снимок корневого устройства и создайте новый том ( SOURCE VOLUME ) из этого снимка.

  5. Остановите экземпляр HVM. Сделайте снимок корневого устройства на новом экземпляре и создайте новый том ( TARGET VOLUME ) из этого снимка.

  6. С помощью консоли AWS:

    • Присоедините SOURCE VOLUME в новый экземпляр как / dev / xvdf .
    • Присоедините TARGET VOLUME к новому экземпляру как / dev / xvdg .

Процесс преобразования

  1. SSH к новому экземпляру и получить root-доступ:

     sudo su
     
  2. Смонтируйте исходный и целевой диски.

     mkdir -p / mnt / source && mount / dev / xvdf / mnt / source
    mkdir -p / mnt / target && mount / dev / xvdg1 / mnt / цель
     

    В моем случае это были устройства / dev / xvdf (источник) и / dev / xvdg1 (цель). Они могут измениться в вашей конфигурации в зависимости от количества разделов и места их подключения (см. Шаг 6 в разделе «Подготовка»). Используйте ls -al / dev / xvd * , чтобы увидеть диски.

  3. Резервное копирование / lib / modules / * (Если ядро ​​PV ami отличается от новой машины HVM . Этот модуль используется некоторыми сервисами AWS.)

  4. Удалите все, кроме / boot на целевом томе:

     cd / mnt / target && ls |  grep -v boot |  xargs rm -Rf
     
  5. Удалите / boot на исходном томе:

     rm -Rf / mnt / source / boot
     
  6. Скопируйте данные исходного тома на целевой том, сохранив все атрибуты:

     rsync -aAXHPv / mnt / source / / mnt / target
     
  7. Отредактируйте / mnt / target / etc / fstab для раздела / , чтобы он ссылался на TARGET VOLUME при установке в его окончательном месте на шаге ( 8). Либо с использованием метки, либо просто чего-то вроде:

     / dev / xvda1 / ext4 по умолчанию, барьер = 0 1 1
     

Затем восстановите / lib / modules / , резервную копию которой было выполнено на шаге 3. (Если ядро ​​PV ami отличается от новой машины HVM.)

  1. Остановите систему и отсоедините все тома с помощью консоли AWS. Прикрепите TARGET VOLUME к новому экземпляру как / dev / xvda .

    Не забудьте указать, где было смонтировано исходное корневое устройство. В большинстве случаев это должно быть / dev / xvda .

  2. Запустите свой экземпляр HVM. Теперь это должна быть точная копия вашей фотоэлектрической системы. Если все в порядке, теперь вы можете удалить свой экземпляр PV, а также SOURCE VOLUME .

13
ответ дан 28 November 2019 в 19:47

તમે આ AWS વેબ ઇન્ટરફેસની અંદરથી કરી શકો છો. સ્નેપશોટ્સ પર નેવિગેટ કરો, તમે ઇચ્છિત સ્નેપશોટને તમે hvm માં કન્વર્ટ કરવા માંગો છો તે ક્લિક કરો અને ક્રિયાઓ પર ક્લિક કરો અને પછી છબી બનાવો . છબી બનાવો વિઝાર્ડના નીચે આવતામાં, એચવીએમ પસંદ કરો.

2
ответ дан 28 November 2019 в 19:47

Перепробовав все предложения здесь, ни одно из которых не сработало, я нашел отличную запись в блоге по этой теме, на https://www.opswat.com/blog/aws-2015-why-you-need-switch-pv-hvm .

Элементы (подробности) процедуры:

  1. Установите grub на переносимый экземпляр PV (исходный экземпляр).

  2. Сделайте предупредительный снимок корневого тома на исходном экземпляре (исходный том, SV).

  3. Создайте временный HVM экземпляр, который будет перемещать том.

    1. Я использовал Amazon Linux экземпляр
  4. Создайте целевой том (DV), и прикрепите и этот, и SV к временному экземпляру.

    1. DV должен быть как минимум таким же большим, как SV.

    2. Прикрепите SV как /dev/{sd,xvd}f, а DV как /dev/{sd,xvd}g.

    3. Раздел DV:

    раздел /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'

    partprobe /dev/xvdg

    udevadm settle

  5. Размер FS SV до минимального размера, и использование dd изображения его на DV.

    1. Очистите ФС исходного тома: e2fsck -f /dev/xvdf

    2. Сведите к минимуму то же самое: resize2fs -M /dev/xvdf

    3. Следите за выходными данными resize2fs (например, Изменение размера файловой системы в блоках /dev/xvdf на 269020 (4k)) и запишите его для следующего шага.

    4. Дублируйте SV на DV: dd if=/dev/xvdf of=/dev/xvdg1 bs=<размер блока с предыдущего шага, here 4k> count=<использовать счетчик блоков с последнего шага, here 269020>

    5. Expand the FS on the new partition: изменить размер2fs /dev/xvdg1

  6. Установить grub в загрузочный блок DV

    1. Временно создавать файлы устройств на DV: монтируйте /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/

    2. Устанавливайте файлы grub:

    rm -f /mnt/boot/grub/*stage*

    cp /mnt/usr/*/grub/*/*stage* /mnt/boot/grub/

    rm -f /mnt/boot/grub/device. map

    1. Установка grub в chroot окружении:

    cat << ARNIE | chroot /mnt grub --batch

    device (hd0) /dev/xvdg

    root (hd0,0)

    setup (hd0)

    ARNIE

  7. После внесения других незначительных изменений в целевой том, оснастка и сделать из него AMI.

    1. Уберите файлы временных устройств: rm -f /mnt/dev/xvdg /mnt/dev/xvdg1

    2. В /mnt/boot/grub/grub. conf, изменяем root (hd0) на root (hd0,0), добавляем (или заменяем console=*) console=ttyS0 в строку ядра, и при необходимости замените root=* на root=LABEL=/ в строке ядра

    3. в /mnt/etc/fstab, Убедитесь, что строка корневой FS содержит помеченную ссылку, например

    LABEL=/ / ext4 по умолчанию,noatime 1 1

    1. Пометьте новую корневую FS с помощью e2label /dev/xvdg1 /

    2. Unmount DV от временного экземпляра, отсоедините SV и DV от временного экземпляра.

    3. Snap the DV, и из этого оснастки создайте изображение AMI.

  8. Запустите экземпляр HVM из этого HMI. Это ваш перемещенный экземпляр.

1
ответ дан 28 November 2019 в 19:47

Теги

Похожие вопросы