弊社にて昨年から提供開始しました Oracle Cloud Infrastructure (以下、 OCI)のトレーニングですが、トレーニング時に使える実習環境のOracle MyLearnがあります。
本記事では、その実習環境であるOracle MyLearnを使って簡単にチャットシステムを構築する具体的な手順を画像付きでご紹介します。
OCIをこれから学ぼうとする方や、より実践的なスキル習得をしたい方のご参考になれば幸いです。
目次[非表示]
まず記事を読む前にどんなことが学べるのか前もって記載します。
最後の実習については皆さんも実習利用できますので、早ければ10分ほどでさくっとインフラの自動構築ができます。
Oracle では各種トレーニング用の教材が無料でインターネット上に公開されています。
それが、Oracle MyLearn です。
Oracleアカウントの登録が必要ですが、アカウントを開設すると各種教材の利用が可能になります。
Oracleアカウントを登録した後に、Oracle MyLearn を確認してみると多数の教材が公開されています。
あまりに多くて探しづらいのですが、そんな時には検索機能が利用できます。
検索欄に、Japanese、日本などのキーワードで検索すると日本人にもありがたい教材がたくさん探すことができます。
教材資料としてはクラウドに留まらず、昔からおなじみのデータベースやOracle Linuxなども資料公開がされています。もちろん無料で閲覧することが可能です。
※注記、なお無料公開されているのはOCI Learning Subscriptionと一部のSaaSのFoundationカテゴリとなります。
教材資料としては、PDFや動画での説明があり閲覧することが可能なのですが、個人的におすすめなのはサブスクリプション契約です。
Oracle Cloud Infrastructure (OCI) Self-Paced Labs Subscription - 1 Month
月額で$29ほどになるのですが、OCI Self Paced Labs Subscriptionというサブスクリプション契約に加入すると、OCIに関連する特定のコースの実習環境が利用できるようになります。
サブスクリプション契約を有効(アクティベーション)すると48時間利用できる実習環境を立ち上げる事が可能になります。
もちろん48時間経過後は自動終了します。自動終了したらあらためて実習環境の立ち上げが出来ますので、何度でも操作をしながら学ぶ事が可能になります。
なお、サブスクリプション契約で実習環境の立ち上げが可能なコースは以下となります。
そう!月額$29で上記の実習環境が使い放題となります。
ではその実習環境では何ができるのか?ご紹介していきます。
細やかな手順がイラスト付きで公開されており、実習が出来ます。
実習の数としても多数あり、細かく手順の説明が記載されています。
構成図もついているので、構築作業を行う際に参考になりますね。
実習環境を立ち上げると指定の接続先URL、ユーザー名、パスワードの確認ができます(なお立ち上げ申請後10分ほど経過するとメールでも案内が来ます)
ユーザー名とパスワードを入力するとちゃんとOracleサービスが使えるようになります。
なお初回はパスワード変更が求められますので、事前に変更後のパスワードもご準備ください。
無事に初期パスワードも変更をしてログインすると、コンソール画面が表示されます。
多言語対応してますので日本語表記も大丈夫です!
実習の資料に記載されている手順の通り進めると、さくっとサーバーの立ち上げも簡単に出来たりします。
AWSやAzure、Google Cloudなどを使っている方は違和感なく普通に使えます。
OracleCloudの利用が可能と判りました。サーバーの立ち上げも出来ます。
じゃぁこの環境に私がトレーニング時、受講者が匿名で質疑応答が出来るチャットシステムも立ち上げもできるのではないか?と考えました。
さらに「どうせなら2日間限定の使い捨ての環境なんだし自動化しよう」ということでTerraformで、サクッと自動作成できるように準備してみました。
どういうチャットシステムが出来るのかまずは完成版を提示します。
なお、GitHubでもTerraformコード類を公開してます。
https://github.com/maijun2/oci-with-rocketchat/
Terraformで自動化するにあたり、以下の情報類が必要となります。
設定ファイルに記載する情報類ですね。
コードを元にインフラ準備をするのですが、そのためのツールが実はコードエディタで既にインストール済です。
画面右上にあるコンピュータアイコンからコードエディタを立ち上げます。
VScodeのようなコードがかけるツールがブラウザ上に立ち上がります。
メニューよりターミナルを選択し、フランクフルトでターミナルが動作しているのか確認します。
まずはサーバに付与する公開鍵情報を作ります。ssh-keygenコマンドを入力し公開鍵ペアを作成します。
$ ssh-keygen
次にGitHubに公開済のリポジトリをクローンしちゃいます。
$ git clone https://github.com/maijun2/oci-with-rocketchat.git
無事に左側のファイルエクスプローラーで対象ファイルが確認できました。
構築するにあたり設定ファイルが必要です。
terraform.tfvars.exampleを準備してますので、複製してterraform.tfvarsを作成し編集していきます。
terraform.tfvarsに記載が必要なのは箇所は3個所です。
テナンシーのOCIDはターミナルでコマンド実行して取得することが可能です。(README.mdにコマンド内容も記載してます)
$ oci iam tenancy get --tenancy-id $(oci iam compartment list --compartment-id-in-subtree true --all | jq -r '.data[0]."compartment-id"')
コンパートメントのOCIDもコマンドで実は検索できるのですが、実習環境はコンパートメントが多いので探すのが大変です。まだコンソール画面から確認するほうが楽です。
メニューからアイデンティティ > コンパートメントを選択して、自身のユーザー名の部分をクリックするとコンパートメントのOCIDが取得できます。
リージョンについてはターミナルに記載されている内容からコピペできますが、今回のOracle MyLearnではリージョンごとに使える環境も限定されています。
とりあえずフランクフルトだと利用したいサーバーも立ち上げできるので、フランクフルトを選びました。
設定ファイルの準備完了です!
準備が整いましたので、Terraformの設定ファイルがあるディレクトリに移動して、各種Terraformコマンドを実行していきます。
teffaform initで初期化
$ terraform init
次にterraform planでデプロイ前準備
$ terraform plan
あとはterraform applyで反映です
$ terraform apply
途中で「本当に反映してよいのか?」と聞かれるのでyesと入力します。
あとは待つと無事に作成が完了します。
フレキシブルロードバランサーが作成され、パブリックIPアドレスも表示されてますね!
そのパブリックIPアドレスにhttp:// 付きでブラウザでアクセスします。
たぶんアクセスできません。
これは立ち上げたサーバー側の準備がまだなので、フレキシブルロードバランサーが「サーバーまだ動いてないですよ」と教えてくれてます。
マネージメントコンソール画面を開いても準備中の様子です。
10分ほど待つと無事にロードバランサのヘルス状態もOKとなります。
再度、フレキシブルロードバランサーのパブリックIPアドレスにhttp://でアクセスしてみると、無事にチャットシステム、RocketChatのセットアップ画面が表示されました\(^o^)/
ちなみに私はRocketChat運営元に登録するのが嫌なのでいつもスタンドアロンモードで使ってます。
(なのでいつも古いバージョンのRocketChatを使っているという)
設置が終わったら片付けもサクッとできます。
terraform destroyで削除ができます。
$ terraform destroy
また途中で「本当に消してよいのか?」と聞かれますのでyesと入力して消します!
ちゃんと削除もされてますね!楽だ!
演習環境については、適宜更新されます。
これはクラウドならではの特性で、随時機能アップデートや機能権限の見直しも随時行われている状況です。
OCIに限らず様々なクラウドプロバイダーは常に最新版へアップデートされていきますので、上記 Terraform での環境構築は、2025年4月10日時点で実現可能な情報だとご認識ください。
今回ご紹介したOCIの実習は、一見制限されたトレーニング環境での体験ですが、内容をきちんと理解すれば、実際の業務にもすぐ応用できる強力なスキルとなります。
TerraformのようなIaCツールを使いこなせると、OCIはもちろん、他のクラウドにも応用できる「マルチクラウド人材」への第一歩にもなります。
また、今回の実習で登場した「コンパートメント」や「フレキシブルロードバランサー」など、OCIならではの概念についても、私が担当するトレーニングコースでは、他クラウドとの違いや実例を交えて、より深く・実践的に学べるように構成しています。