Pracuję nad usługą internetową, która jest hostowana na EC2 i musi mieć uruchomioną różną liczbę instancji, w zależności od obciążenia. Mamy podstawową usługę uruchomioną i działającą, ale jedną z rzeczy, z którymi zmagamy się, jest czas potrzebny na zapewnienie i uruchomienie instancji Windows (używamy niektórych narzędzi trzeciej generacji, które działają tylko w systemie Windows). Widziałem, że zajmuje to od 10 minut do dość oszałamiających 45 minut.
Czy ktoś ma jakieś wskazówki, jak przyspieszyć uruchomienie instancji EC2? Ponieważ AMI dla serwerów Windows są duże w porównaniu do AMI dla Linuksa, zastanawiam się, czy jedną rzeczą może być upewnienie się, że segment S3 zawierający AMI znajduje się w tej samej strefie, w której instancja jest uruchamiana, co prawdopodobnie przyspieszenie udostępniania nowej instancji.
źródło
Instancje Windows Amazon uruchamiają się ponownie przy starcie, ponieważ domyślną konfiguracją usługi Windows „EC2 Config” jest zmiana nazwy hosta na wewnętrzną nazwę DNS instancji. Zmiana nazwy hostów wymaga ponownego uruchomienia systemu Windows. Jeśli nie musisz używać wewnętrznej nazwy DNS swojego wystąpienia, możesz skorzystać z wyłączenia funkcji SetComputerName. Instancje Windows mają również tę zaletę, że nie muszą inicjować dysków startowych, na których być może już została spakowana konfiguracja, co pozwala zaoszczędzić trochę więcej czasu na przykładowe uruchomienie. Wszystko to jest możliwe za pośrednictwem usługi konfiguracji systemu Windows EC2.
Usługa konfiguracji systemu Windows: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
Uruchamianie moich małych instancji Windows zwykle zajmuje 15-18 minut (większe są szybsze). W zależności od wymagań możesz być w stanie spakować całe swoje oprogramowanie w AMI i mieć możliwość uruchomienia i uruchomienia wszystkich elementów w tym okresie. Rozumiem zastrzeżenia, że nie łączę wszystkiego w AMI, ale może być warto poprawić czas uruchamiania, aby mieć AMI produkcyjne ze wszystkim, co jest w nich zawarte. Zachowaj osobne skrypty budowania, jeśli chcesz w swoich środowiskach kompilacji.
Ponadto teraz, gdy Amazon wydał woluminy główne EBS, w przeciwieństwie do woluminów głównych w sklepie instancji. Małe obrazy systemu Windows uruchomione na woluminie EBS uruchamiają się w ciągu prawie 5 minut w porównaniu do prawie 20 minut, które zajęły wcześniej. Nie musisz także kończyć - możesz je zatrzymać / uruchomić - w zależności od konfiguracji potencjalnie zabiera to kilka minut w niektórych skryptach startowych.
Zasadniczo dostosowując usługę Windows EC2 Config, AMI i potencjalnie używając woluminu rozruchowego EBS powinny skrócić czas uruchamiania do prawie 5 minut. Możesz uniknąć sysprep, który uruchamia się podczas uruchamiania instancji ec2, w zależności od aplikacji, zwłaszcza do celów programistycznych. Nieskompresowany obraz m1.large, który unika zmiany nazwy hosta podczas uruchamiania, może uruchomić się w ciągu około 2 minut, co wcale nie jest takie złe.
W tej chwili, o ile rozumiem, jest to najlepsze, co możesz zrobić z systemem Windows na Amazon EC2, ale to naprawdę nie jest tak źle. Jeśli jesteś w stanie prognozować w ciągu najbliższych 10 minut w oparciu o średnie wzorce użytkowania, powinieneś być w stanie rozdzielić dodatkowe wystąpienia i obsłużyć dodatkowe obciążenie.
źródło
Masz minimalny system, zachowaj jak najwięcej w EBS może pomóc? A może zastosujesz podejście Apache i uruchomisz jeden lub dwa w rezerwie?
źródło
Natrafiliśmy na ten problem, ale w bardzo poważny sposób - nasz nowy start rozszerza Amazon EC2 na środowisko Virtual Lab (wielu użytkowników, zasady, udostępnianie itp.), Dlatego musieliśmy przyspieszyć czas rozpoczęcia Maszyny z systemem Windows. Naszą największą decyzją było wsparcie tylko woluminów opartych na EBS w naszej aplikacji, ponieważ tylko one mogą uruchomić się w ciągu 5-10 minut. W naszych testach stwierdziliśmy, że czasy uruchamiania w sklepie instancji różnią się znacznie i czasami zajmują zbyt dużo czasu, co czyniło je bezużytecznymi dla nas.
Simon @ LabSlice Virtual Lab Management na EC2
źródło