X

A blog about Oracle Technology Network Japan

  • October 24, 2019

無料クラウドへ -AWSからOCIへの移行

先週のOracle Open Worldで、オラクルは驚くべき発表をしました。Oracle Cloudで完全に無料のサービス枠(「Free Tier」)を提供するというものです。Twitterでは批判の声を見かけましたし、本当だろうかと疑っている人もいるでしょう。完全無料だなんて、ウソでしょう?いえ、本当です。完全に無料の枠があるのです。1か月限定ではありません。12か月だけでもありません。ずっと無料です。「Always Free」のサービスにはAutonomous Databaseが含まれ、2つのインスタンス(それぞれ1つのOCPUと20 GBのストレージを搭載)を利用できます。これだけあれば何ができるでしょうか。実にいろいろなことができます――それについては近いうちにまた記事を書きますので、注目しておいてください。2台の仮想マシン(それぞれ1/8 OCPUと1 GBのメモリを搭載)のコンピューティング能力も利用できます。驚くべき速さ、というわけにはいきませんが、一定のアプリケーションを実行するには十分ですから心配は無用です。この点についてもいずれ、ブログに記事を書くつもりです。ストレージも用意されており、2つのブロック・ボリューム(合計100 GB)、10 GBのオブジェクト・ストレージと10 GBのアーカイブ・ストレージ、ロードバランサ(1インスタンス)、帯域幅は10 Mbpsとなります。他も監視、通知、電子メール配信などの機能が提供されます。このチャンスを見逃す手はありません。ぜひ詳しい情報をご覧になり、今すぐにサインアップしてください。確認のためにクレジット・カード情報を入力する必要はありますが、知らないうちに課金されるということはありません。最近、他にもいくつか、クラウド・プロバイダの無料サービスにサインアップしてみたのですが、いずれの場合もまずクレジット・カード情報を登録する必要がありました。

実際に使ってみた

私はOracle Cloudの支持者ですが、開発者の1人ですから(マーケティングや販売の担当ではありません)、まずFree Tierを自分の手で触ってみて、その価値を確かめ、他の開発者にも役立ちそうであると確信してからでなければ、このような記事を書くことはしません。そのようなわけで、私はまず個人アカウントを作成し、自分のプライベートなブログを、Amazon Web ServicesからOracle CloudのFree Tierに移すことにしました。Oracleに入る前は、個人ブログをホストするのにAWSを何年も使っていて、Oracle Cloudに移行しようと動いたことはまだなかったので、今回Free Tierで試してみるというのはうってつけの機会でした。私のブログは非常にシンプルなアプリケーションになっています。データベースにはAmazon RDSでMySQLを使用し、ブログウェアはカスタマイズしたGrailsアプリケーションで、Apache TomcatでWARファイルとしてデプロイしています。イメージのホスティングにはS3、電子メール配信にはAmazon SESを使用しています。移行プランの概要はこうです。

  • DBをMySQL RDSからAutonomous DBに移行
  • イメージをS3からOCI Object Storageに移行
  • 電子メール配信をOCI向けのSESに切り替え
  • OCI VMでアプリケーションをデプロイ

最初の手順はもちろん、無料アカウントにサインアップして、新しいDBインスタンスとVMを起動することです。サインアップのプロセスと、最初の無料Autonomous DBインスタンスの起動については、以前に記事を書いていますので、必要であれば参照してください

DBの移行

DBの移行は、SQL Developerを使用すれば面倒なこともなく、簡単です。SQL Developerでは、ウィザードの案内に従って移行を進めることができます。ただし注意点が1つ。移行を実行するには、いくつかの大きな権限を付与されたユーザーを使用する必要があります。移行を始める前に、このドキュメントをすべて読んでおいてください。いや、正直になりましょう。ドキュメントを最初から最後まで、本当に読みますか?そんなことしませんよね。でも、少なくともこのセクションだけは読んでください。移行時のユーザーに必要な権限について説明されています。 

データの移行後には、MySQLではなくOracle DBを使うために、Grailsアプリケーションに少し変更を加える必要がありました。Hibernateの言語の設定を変更する、自動採番のキーではなくシーケンスが使用されるようにする、などの作業です。特別やっかいな作業はありません。アプリケーションのバックエンドを変更する場合は、こうした小さな調整作業は避けられないものです。

オブジェクトをS3から移行

私の場合、移動しなければならないイメージが100個ほどしかなかったので、これは比較的楽な作業でした。S3からすべてを手動でダウンロードし、Oracle Cloud Object Storageに自分でアップロードしました。もっと複雑な移行にも、もちろん対応しています。必要な場合はこちらのホワイトペーパーをご覧ください。オブジェクトの移動が済んだところで、SQLの更新クエリーを実行して、私の全ブログ記事にあるリンクを、OCI Object Storageの新しいリンク先に差し替えました。最後にコードを修正して、S3に指定されているものをOracle Cloudに変える必要がありました。そうすれば、新しくアップロードしたものも、古いAWSのバケットではなく、Object Storageに保存されることになります。私のGrailsアプリケーションはAWS SDKをGrailsプラグイン経由で使用するので、OCI SDK向けに変更しなければならないかと思っていましたが、OCI Object Storageには、既存のAWS SDKで使用できる、互換性のあるS3エンドポイントが用意されているので、問題ありませんでした。プラグインで手を加える必要があったのは、エンドポイントの変更と、いくらかの設定だけでした。私のControllerで、3行のコード(以下の4~6行目)を実行すれば完了です。

次に、Grails Mailプラグインの設定を、AWS SESサーバーからOCIサーバーに切り替えました。コンソールのサイドバーにあるメニュー、「Email Delivery」→「Email Configuration」で設定できます。

このようになりました。

Configurationページの「Manage SMTP Credentials」をクリックすると、ユーザー管理セクションに移動し、アプリケーションで使用する認証情報を生成できます。

アプリケーションのデプロイ

さて、この時点で、DBを作成して移行し、オブジェクトを移行し、アプリケーションを構成して、新しい環境で使えるようになりました(Oracle CloudでDB、オブジェクト・ストア、電子メール配信サービスが使えるようになった)。次のステップは、アプリケーション自体のデプロイです。つまりコンピュート・インスタンスの作成が必要になります。まず、コンソールのダッシュボードに戻って、「Create a VM Instance」をクリックします。

インスタンスに名前を付け、OSイメージを選択します。

次に、インスタンスへの接続に使用するSSH公開鍵をアップロードし、「Create」をクリックします。

インスタンスを作成すると、インスタンスの詳細が表示されます。パブリックIPアドレスをメモします。これはマシンにSSH接続する際に使用されます(ユーザー名'opc'と、先ほど指定したSSH鍵を使用)。Webトラフィックを許可するには、受信ルールをいくつか追加する必要があります。ここに表示されているサブネットをクリックします。

サブネットの詳細ページの左のサイドバーで「Security Lists」をクリックし、デフォルトのセキュリティ・リストを選択して編集します。

受信ルールを追加して、ポート80と443のトラフィックを許可します。

これでコンピュート・インスタンスの準備ができました。トラフィックがブロックされている場合は、VM自体でローカルのファイアウォール・ポートを開く必要がある場合もあります。

ここで私は、Tomcatをインストールして、WARファイルをアップロードし、デプロイしました。私の場合、SSLの証明書をセットアップするという追加作業が必要になりましたが、この移行作業もたやすいものでした。

AWSとOCIの比較

さて、この移行で何が成し遂げられたのか、詳しく振り返ってみましょう。

コスト

これは回答の出しやすい問題です。私はブログをホストするために、Amazonに毎月35ドル支払う必要がなくなりました。OCIの「常に無料」のサービスは、そう、常に無料です。AWSの無料枠のように、12か月限定ということもありません。

コスト:「常に無料」のOCIが文句なしの勝者です。

コストは重要ですが、他の点も考えてみましょう。

信頼性

AWSの数値データはなかなか見つからないので、比較は困難です。しかし、Autonomous DBは自己保護と自己修復が可能であり、実行中に実際に自らパッチを適用します。SLAでは99.995 %の信頼性が保証されています。1か月あたりの停止時間は2.5分未満ということです(パッチ適用を含む)。AWSの定期メンテナンス、パッチ適用、アップデートは、これにまったく及びません。

信頼性:Autonomous DBとAutonomous OS(Oracle Linux)は停止時間が少なく、Oracle Cloudの方が信頼性が高いことを、データは示しています。勝者はOCIです。 

ユーザー・エクスペリエンス

スクリーンショットを何枚かご覧ください。それが一番分かりやすいと思います。どちらのコンソールの方が統一感があり、見やすく、整理されていて、使いやすいか、ご自分の目で確かめてほしいのですが、結果は一目瞭然ではないでしょうか。以下のサンプルはすべて、1つ目がOCI、2つ目がAWSの順になっています。

コンピュート・インスタンスの一覧:

セキュリティ・ルールの編集:

オブジェクト・ストレージ・バケットの一覧。S3のインタフェースは使いやすくなってはいますが、AWSで提供される他のサービスの見た目や使い勝手とはまったく統一が取れていません。

DBインスタンスの作成。こちらも同じく、RDSのインタフェースはすっきりしてはいますが、他のAWSサービスとの統一感はありません。一方、OCIのインタフェースは整然としていて見やすく、統一感もあります。OCIコンソールに慣れてしまえば、ダッシュボードで他のサービスを使用する場合も戸惑うことはありません。Oracle Cloudのその他のサービスと、見た目や操作性が同じだからです。

ユーザー・エクスペリエンス:AWSにも素敵なインタフェースがいくつかありますが(サービスによって異なる)、EC2のように、時代遅れで古くさいものもあります。この分野の勝者はOCIです。OCIのインタフェースは整然としていて見やすく、統一感もあります。すっきりしていて、ごちゃごちゃした感じはありません。これまでのオラクル製品のユーザー・インタフェースの多くは、この点で優れていたとは言いがたいものもありますが、今回は近代的で見やすく、使いやすくなっています。 

まとめ

オラクルにはFree Tierがあります。本当に、無料です。支払いは一切発生しません。ずっと無料です。すばらしいことです。ぜひ使用すべきです。 



Oracle CloudのFree TierでコンピュートおよびAutonomous DBを使用するにあたっての、あなたのアイデアをお聞かせください。共有してくださったアイデアは、今後のブログやビデオでご紹介させていただくことがあります。

Photo by Nghia Le on Unsplash

 

※本記事は、Todd Sharp (OracleのDeveloper Advocate) による”Journey To The Free Cloud - Migrating From AWS To OCI“を翻訳したものです。


AutonomousDatabaseを無期限 / 無料(Always Free)で使用可能になりました。

Cloudをまだお試しでない方は、無料トライアルをご利用下さい。

 

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.