This is not odd at all and very common. One easy way to do that is to use an vpn solution, e.g by deploying an openvpn VM from an openvpn AMI (almost everything is configured by default), or by installing another vpn solution on one of your instance.
Then, you will only have to log to this vpn and you will be able to resolve your instances with their private IP addresses
However, if you do want your instances to be routed between your LAN/VPC, this is slightly more complicated. you may have to consider using a more complex architecture, still based on VPN but with "Virtual Private Gateway / customer gateway" configuration
The following article has a full explanation on the process involved Technet However the following details the basic steps.
Download Azure Management Certificate
Get-AzurePublishSettingsFile
Import Azure Management Certificate
Import-AzurePublishSettingsFile "${env:USERPROFILE}\Documents\Azure.publishsettings"
Select Azure Subscription
$subscriptionName = (Get-AzureSubscription).SubscriptionName | Out-GridView -Title "Select Azure Subscription" -PassThru
Select-AzureSubscription -SubscriptionName $subscriptionName
Get Azure subscription information
$subscription = Get-AzureSubscription $subscriptionName -ExtendedDetails
$certificate = $subscription.Certificate
$subscriptionId = $subscription.SubscriptionId
Select Azure VNet for which to manage VPN certificates
$azureVNet = (Get-AzureVNetSite).Name | Out-GridView -Title "Select Azure VNet" -PassThru
Import saved copy of user's VPN client certificate
$certPassword = Read-Host "Enter VPN client certificate password" -AsSecureString
Import-PfxCertificate -FilePath "${env:USERPROFILE}\Documents\Azure\P2S VPN\VPN01Client.pfx" -CertStoreLocation Cert:CurrentUser\My -Exportable -Password $certPassword
Select VPN client certificate to Revoke
$vpnCertThumbprint = (Get-ChildItem Cert:\CurrentUser\My | Out-GridView -Title "Select VPN certificate to revoke" -PassThru).Thumbprint
Build web request header
$requestHeader = @{"x-ms-version" = "2012-03-01"}
Revoke a VPN Client Certificate
$revokeVPNCertUri = "https://management.core.windows.net/$subscriptionId/services/networking/$azureVNet/gateway/clientcertificates/$vpnCertThumbprint"
$response = Invoke-RestMethod -Uri $revokeVPNCertUri -Certificate $certificate -Method Post -Headers $requestHeader
Confirm Revoked VPN Client Certificates
$listRevokedVPNCertUri = "https://management.core.windows.net/$subscriptionId/services/networking/$azureVNet/gateway/clientcertificates"
$response = Invoke-RestMethod -Uri $listRevokedVPNCertUri -Certificate $certificate -Method Get -Headers $requestHeader
$response.ClientCertificates.Thumbprint
Best Answer
I haven't tried it yet, but here is a very detailed walkthrough of how to do set that up:
https://blogs.technet.microsoft.com/canitpro/2016/01/11/step-by-step-connect-your-aws-and-azure-environments-with-a-vpn-tunnel/