Подключитесь к экземпляру Amazon EC2 из приложения ios

Я пытаюсь сделать приложение ios, которое использует Amazon Web Services в качестве своего бэкэнд. У меня есть база данных MySQL в RDS и вы хотите запросить эту базу данных из приложения, чтобы получить контент для приложения. После некоторых исследований, похоже, я должен подойти к этому, добавив свой собственный API для запроса базы данных к экземпляру EC2. Затем, вместо прямого доступа к экземпляру RDS из приложения, я обращаюсь к API на экземпляр EC2, который обращается к экземпляру RDS для меня. Во-первых, это путь? Я также открыт для других предложений.

Вот что я сделал до сих пор, прочитав этот пост:

  1. Установлены apache и php для моего экземпляра EC2.
  2. Получил эластичный IP-адрес для моего экземпляра EC2.
  3. Добавлен файл (назовем его retrieve-data.php) на apache, который использует мою конечную точку экземпляра RDS, имя пользователя и пароль для запроса базы данных и возврата данных.

Из моего приложения ios я могу отправить HTTP-запрос в файл elastic_ip_address_of_my_ec2_instance / retrieve-data.php, чтобы получить данные из моей базы данных RDS в моем приложении. Это путь? Можно ли это улучшить?

Изменить: изменить этот ответ на то, что в моем комментарии ниже;

Решение – это то, что предлагается в разделе Как подключить amazon RDS в iOS , который устанавливает веб-сервер в экземпляре EC2 и пишет веб-приложение, чтобы сделать ваши вызовы RDS для вас. Это будет связано с каким-то веб-программированием, здесь есть простое объяснение в верхнем комментарии. Затем вы можете использовать RestKit для реализации вызовов из вашего приложения в экземпляр EC2: github.com/RestKit/RestKit

Для тех, кто может найти это полезное, ниже приводится краткое описание шагов, которые вы можете предпринять, чтобы настроить все.

Настроить:

На следующих этапах описаны три варианта:

A = имя домена NO, отсутствие балансировки нагрузки

B = имя домена YES, отсутствие балансировки нагрузки

C = имя домена YES, YES балансировка нагрузки

  1. (A + B + C) Создайте экземпляр EC2.
  2. (A + B + C) Установите все необходимое для своего экземпляра. По крайней мере, вам понадобится apache2 и любой язык (ы), который вы хотите использовать для любых внутренних скриптов, которые вы хотите запустить на вашем экземпляре. Я использовал php.
  3. (A + B) Если вы не хотите получать доменное имя для доступа к вашему экземпляру EC2 или хотите получить имя домена, но не нуждаетесь в балансировке нагрузки, вам нужно получить эластичный IP-адрес для ваш экземпляр. Это можно легко сделать через AWS. (C) Если вы хотите использовать имя домена и балансировку нагрузки, вам не понадобится эластичный IP-адрес. Идем дальше и получим доменное имя. Я использовал namecheap.com. Они в настоящее время (август 2015 года) имеют .xyz TLD всего за 1,18 доллара США в год.
  4. (A + B + C) Добавьте свои серверные файлы на веб-сервер apache, который вы установили на свой экземпляр EC2, на шаге 2.
  5. (B + C) Настройка зоны размещения в маршруте Amazon 53. ПРИМЕЧАНИЕ. Маршрут 53 НЕ входит в свободный уровень AWS и поэтому НЕ БЕСПЛАТНО. Стоимость здесь . (Только B) Добавить запись (ы) в зону вашего маршрута 53, которая указывает на эластичный IP вашего экземпляра EC2.
  6. (B + C) Перенесите серверы имен вашего доменного имени на 3-5 серверов имен. Маршрут 53 дал вам после завершения шага 5. Передача будет осуществляться с сайта, на котором вы зарегистрировали свое доменное имя.
  7. (C) Настройте балансировку нагрузки для вашего экземпляра EC2 в AWS. Обратите внимание на конечную точку балансира нагрузки.
  8. (C) Добавьте запись псевдонимов в вашу зону хоста Route 53, которая указывает на конечную точку балансира нагрузки.

Доступ к вашим файлам на EC2

Допустим, у вас есть php-скрипт myscript.php, который вы сохранили на своем сервере на шаге 4. Чтобы запустить этот скрипт на вашем сервере EC2 после завершения настройки, вы можете сделать следующее:

A – Откройте веб-браузер и введите в адресную строку следующее: elastic_IP_of_your_EC2_instance / myscript.php

B + C – откройте веб-браузер и введите в адресную строку следующее: yourdomain.com/myscript.php

Надеюсь, это полезно!

  • AWS DynamoDB Batch Get Request - iOS
  • Создание логина для пользователя / разработчика для AWS iOS с использованием iOS SDK Cognito Lambda и DynamoDB
  • Использование AWS Mobile Hub для получения рабочего знака в
  • AWSS3PresignedURLErrorDomain, iOS, AWSSDK v2
  • Используя флаг компоновщика force_load с RestKit (iOS)
  • Продвинутая пропускная способность Amazon DynamoDB (SDK для iOS)
  • Amazon Web Services Objective-C SDK для подписи запроса на запрос
  • Загрузка изображения с помощью Alamofire с помощью PUT
  • aws s3 sdk для iOS putObjectRegquest в «новый» регион не работает
  • Получение URL-адреса изображения из корзины Amazon Web Service iOS после загрузки
  • AWS Cognito Identity Null
  • Interesting Posts

    PresentViewController без полноэкранного режима

    Проблема с автоматической компоновкой на iOS 8 (код отлично работает на iOS 7)

    Сегментированное управление, изменение непрозрачности оттенка, но не границы

    Объектно-от C до C # единственной оболочки, которая может вызвать утечку памяти?

    Ошибка: использование необработанного типа «NSObject» в Xcode

    Проблемы с компоновкой UICollectionViewCell iOS9

    Обнаруживать, удалено ли (текущее) приложение в iOS?

    ZUUIRevealController показывает пробелы над окном

    ios, когда удаленная nofication получена в то время как на 3G (не Wi-Fi)

    @property @synthesize эквивалент в быстрых

    Могу ли я запустить приложение на реальном устройстве (iPhone) с ноутбука (Mac) с помощью Appium – WebDriver?

    Ответ URL-адреса NSURLSession не кэшируется, если больше нескольких килобайт

    Сравнение правил часовых поясов iOS

    образ круга в изображении ячейки и как изменить его размер?

    Фильтрация разделов таблицы с использованием сегментированного элемента управления

    Давайте будем гением компьютера.