Using Refinitiv's Amazon EC2 Machine Image For a Real-Time Application
Using Refinitiv's Amazon EC2 Machine Image For a Real-Time Application
Learn how to set up and run an example application of Refinitiv's Amazon EC2 machine image .
Join the DZone community and get the full member experience.Join For Free
We are living in the cloud age, which means developers do not need to set up their own local machine or dedicate on-premise environment to implement, test and run their application. They just create a VM machine in the cloud to perform those tasks.
In the financial world, what would you need to get the actual update of the stock price that you just bought? You can use your phone to watch it live with any apps, but was it live? And as a developer, how do we transfer such data to the hands of app users?
In the past, in order to consume financial data from exchanges or data providers, banks or financial service providers would require a lot of investment in their infrastructure including:
Planning the network, computing, and storage capacities,
Buying network devices, computers, and storages,
Installing required operating systems and libraries.
This may take several weeks or months before the clients can really see the actual data. With cloud technology, developers and market data scientists can get real-time streaming market data from the cloud feeds to application or machine-learning directly over the internet connection.
Refinitiv Cloud Solution
Amazon Elastic Compute Cloud (Amazon EC2) is world-class web service that provides secure and resizable compute capacity in the cloud for developers. Using the Amazon Web Services, Refinitiv's Elektron Real-Time in Cloud (ERT in Cloud) gives developers access to real-time market data delivered in the cloud (over 70 million securities covering 500 exchanges globally, and thousands of over the counter markets). ERT in Cloud supports both standard WebSocket connection and Refinitiv's proprietary highly-optimized connection protocol, RSSL.
ERT in Cloud provides Refinitiv Amazon Machine Image (AMI) for quick and easy learning on how to implement market data application. Developer can setup and launch an EC2 instance based on Refinitiv AMI to run ERT in Cloud streaming examples.
The following accounts and softwares are required in order to run this quick start guide:
1. Amazon AWS account
2. Web browser
3. Internet connection
4. SSH client software or Putty application
5. Amazon AWS key pair
6. ERT in Cloud Username/machine ID, password, and clientid access credentials. Please reach out to your Refinitiv sales associate to acquire ERT in Cloud access credentials.
If you are new to Amazon AWS, you can subscribe to a AWS Free Tier account which gives you free hands-on access to AWS platform and services. We highly recommend you follow the Amazon AWS Setting Up with Amazon EC2 and Getting Started with Amazon EC2 Linux Instances tutorials before proceeding futher in this quick start guide to create your key-pair, VPC, and Security Group that are required for your EC2 instance.
Launch the EC2 Amazon Linux Instance
1. First, log in to the AWS Management Console with your IAM user.
2. Refinitiv AMI is available in all Regions. This article will use "US East (N. Virginia)" Region as a demonstration. Once you are logged in to the AWS Management Console, choose your desired Region In the Region section. There might be unavailability of AMI in some Regions for maintenance, please choose other Regions instead.
3. Go to the EC2 Dashboard page, then choose Images -> AMIs section from the left panel.
4. In the AMIs page, select "Public images" and then search Refinitiv' AMI name with the Refinitiv name filter.
5. Select Refinitiv's AMI name Refinitiv Elektron Real-Time Examples - Amazon Linux AMI , right click and choose "Launch" menu.
6. Select your Instance type based on your preference and requirements, then select the "Review and Launch" button. You may choose the "Configure Instance Details" button to configure the instance network and public IP address (see more details here), storage, etc., based on your requirements. Click the "Launch" button to launch your EC2 Linux instance.
7. Select your key pair to be used to connect to your instance with your local machine. You can also create a new key-pair for this instance here. Click the "Launch Instances" button to launch your Linux instance.
8. Back on the EC2 Dashboard, you will see your newly-created Amazon Linux instance is running with the instance information such as the Instance ID, Public DNS (IPv4), and IPv4 Public IP. The most important information is the Public DNS (IPv4), which is required to connect to this instance.
How to Connect to Your EC2 Amazon Linux Instance
Once your Amazon Linux instance is running, you can connect to your Amazon Linux instance using Putty or SSH client applications. The following information is required to connect to your instance.
Your private key file (example: key-pair.pem)
Your Linux instance Public DNS
You can find more details regarding how to connect to your Amazon Linux instance from the following AWS documents links below:
This Quick Start Guide uses a Git Bash application as an SSH client to connect to Amazon Linux instance with the following command:
ssh -i "<your private key filename>" ec2-user@<Your Linux instance Public DNS>
ssh -i "Administrator-key-pair-us-east-1.pem" firstname.lastname@example.org
Run an ERT in Cloud Demo Application
Once you have connected to your Amazon Linux instance, you will be available in your home folder /home/ec2-user location. Your home folder contains the following example and API folders:
Elektron-SDK folder: contains the ERT in Cloud's RSSL connection examples for both C++ and Java languages.
WebsocketAPI folder: contains the WebSocket API examples in Python, Java and C# languages for ERT in Cloud's WebSocket connection. The WebSocket connection and message structure are based on Elektron WebSocket API.
Each subfolder contains a README.md file which gives you a full description of the example details and how to run examples.
The Elektron SDK is a suite of modern and open-source APIs that aim to simplify development through a strong focus on ease of use and standardized access to a broad set of Refinitiv and proprietary content and services. The SDK consists of a set of capabilities ranging from low level "Transport" interfaces (ETA API) to very high level content aware stateful interfaces (EMA API).
The Elektron WebSocket API is a direct access WebSocket API that enables easy integration into a multitude of client technology environments such as scripting and web.
Note: This Refinitiv based AMI machined already installed all examples required libraries for users.
Q: I do not have a private key pair file.
A: Please follow the steps in AWS Document: Create a Key Pair link to create your private key pair file.
Q: My Amazon EC2 instance does not have a Public DNS IP address
A: The instance Public DNS and IP address need to be configured before launching the instance. Please refer to this AWS Document: Assigning a Public IPv4 Address During Instance Launch link. This public IPv4 address is automatically released in certain cases (stop instance, etc). If you already launched an instance or need a persistance public IP address, you can associate an AWS Elastic IP Address with the instance.
Note: AWS Elastic IP Address is not included in the AWS Free Tier services.
Q: What should I do after I finish running an example application?
A: You can "Terminate" instance to delete your E2 instance permanently or "Stop" instance to just shut down your instance and release all public DNS IP addresses. Please refer to Cleaning Up Your Amazon ECS Resources for more details.
For any question related to this quick start guide or Elektron Real Time in Cloud, please use the Developer Community Q&A Forum.
Opinions expressed by DZone contributors are their own.