【技術ブログ】初めてのOracle Cloud ①~インスタンスを作成してSSH接続する~
CLINKS 株式会社 OCS 事業部の佐藤です。
「OCI Archtect Associateの資格は取得したものの、実際に何をどう操作すれば良いのか分からない…。」
そんな悩みを抱えている方も多いのではないでしょうか。
今回は、そのような方に向けて、仮想マシンの作成からSSH接続までの基本操作を丁寧に解説します。
初めての方でも安心して取り組めるよう、ステップごとにわかりやすく説明していきますので、ぜひ参考にしてみてください。
左のハンバーガーメニューに様々なリソースメニューが集まっています。
また、右上の開発者ツールからCloud Shellを開くと、CLIで操作が可能です。
コンパートメントとは?
リソースの管轄区域で、各リソースは必ずどこかのコンパートメントに所属させる必要があります。
インスタンスを作る際にも、所属コンパートメントの選択が必須項目になります。
デフォルトではRootコンパートメントのみ存在する状態ですが、Rootコンパートメント直下にリソースを置くことは推奨されていないので、まずはRootコンパートメントの下位にサブコンパートメントを作成していきます。
作成手順
左上のハンバーガーメニューから「アイデンティティとセキュリティ>アイデンティティ>コンパートメント」を選択します。
次に、コンパートメントの作成を押下すると、コンパートメントの作成ウインドウが表示されます。
任意の名前と説明を入力し、親コンパートメント選択欄はrootを選択したあと、コンパートメントの作成を押下すれば、コンパートメントが新規に作成されます。
ネットワーク構成
次に、インスタンスが所属するネットワークを作成していきます。
大枠のVCNのブロックがあり、その中にサブネット単位で関連リソースをまとめていくのが一般的です。
今回は、以下の図のように、VCNの中にパブリックサブネットが1つ入っているものを作成しました。
VCNの作成
まずは、大枠のVCNを作成していきます。
左上のハンバーガーメニューから「ネットワーキング>仮想クラウドネットワーク」を選び、VCN作成ボタンを押下します。
ウインドウが表示されたら、任意の名前を付けて、先ほど作成したサブコンパートメントを指定します。
次に、ネットワーク内でプライベートアドレスとして使うCIDRブロックを指定。
OCIでは、16~30までのCIDRブロックサイズをサポートしています
RFC準拠の形式で指定するならば、10.0/8または172.16/12が推奨されますが、先述の理由でOCIではサポートされないため、10.0/16、172.16/16、192.168/16などを使用します。
今回は、192.168/16をVCNのアドレス範囲としました。
サブネットの作成
次にサブネットを作成します。
サブネットはVCN内の構成単位として機能します。
ルート表・セキュリティ・リスト・DHCPオプションはサブネット単位で設定されるため、サブネット内のリソースはセキュリティルールを共有していると言えます。
VCNのリストから、作成済みのVCNの名前を押下すると、VCNの詳細が表示されるので、詳細画面からさらにサブネットの作成を押下します。
まずは、サブネットの名前と、コンパートメントを指定します。
構成表のとおり、今回はSubnet01_Pubという名前を割り振りました。
次にサブネットタイプを選択します。
サブネットタイプは、リージョナルまたは可用性ドメイン固有を選択できます。
OCIでは、1つのサブネットが複数のデータセンターにまたがって存在できるリージョナルサブネットを推奨しているので、すべてリージョナルを選択しました。
サブネット・アクセスについては、アクセスタイプとして、パブリックまたはプライベートネットワークが選択できます。
インスタンスにインターネット通信を許可したい場合はパブリックサブネットを選択し、VNICを関連付ける必要があります。
今回は、外部のSSHクライアントを使用して、インスタンスに接続したいので、パブリックサブネットを1つ作成しました。
CIDRブロックは、VCNの作成で設定したブロックの下位に収まるように192.168.1.0/24を指定しました。
セキュリティリストについては、パブリックサブネットを選んだ時点で、デフォルトでインターネットアクセスを許可しているものが適用されているので、今回は特に自分で設定しなくても大丈夫です。
これで、インスタンスを置くための区画の設定は完了しました。
次に、インスタンスを作成していきます。
ハンバーガーメニューから、「コンピュート>インスタンス>インスタンスの作成」を選択し、VCN設定の時と同様に、コンパートメントの指定と名前付けを行います。
イメージとシェイプの選択
イメージの選択では、OSを選択する。Windowsや各種LinuxディストリビューションがOCI側で用意されているほか、自分でカスタムイメージを作って持ち込むこともできます。
Windowsなどのイメージは有料ですが、無料で使えるものも多く存在します。
今回は試しに作ってみるだけなので、Always Free対象のOracle Linuxを選択しました。
課金が発生するものを選ぶと右下に推定コストが表示されるので、個人で使っていて、うっかり高額請求が届くリスクを減らせて安心です。
シェイプ、つまりマシンの選択では、仮想マシンの形態を選択できるほか、様々なCPUの種類が選択可能です。シェイプの種類によっては、CPUのコア数やメモリ容量を柔軟に変えることができたりします。
ですが、今回はお試しでということで、最小スペックで固定されたAlways Free枠のVM.Standard.E2.1.Microを選びました。
VNICの設定
次に、インスタンスにアタッチするVNICの設定をしていきます。
ここで、VNICをどこのネットワークに所属させるかを設定していくのですが、先にVCNを作成していれば、既存のネットワークをポチポチ選ぶだけで大丈夫です。
ここでネットワークを作成することもできます。
インターネット経由でインスタンスにアクセスするには、パブリックサブネットを選ぶ必要があるので、先ほど作成したSubnet01_Pubを選択しました。
作成したインスタンスをパブリックサブネットに配置すると、パブリックIPアドレスを自動または手動で設定することができます。
SSH接続をする際は、ここで設定したパブリックIPアドレス宛てに接続することになります。
SSH接続キーの生成・アップロード
インスタンスにSSHログインする際、デフォルトでは鍵認証でのみログインが可能です。
デフォルトではパスワード認証は無効になっているため、ここで公開鍵と秘密鍵を保存しておく必要があります。
SSHログインする際は、インスタンスにある公開鍵と、ログインしようとするユーザーが持つ秘密鍵の組み合わせを照合して認証を行うため、インスタンスに公開鍵を置いておく必要があります。
公開鍵のアップロードは、「SSHキーの追加>公開キーファイルのアップロード/公開キーの貼り付け」から行うことができます。
.pubファイルを直接アップロードするか、公開キーの貼り付けからキーの文字列を直接貼り付けても大丈夫です。
1.teraterm等のSSHクライアントから接続する方法
ホストにパブリックIPアドレスを入力し、TCPポート22に接続します。
次に、ユーザー名とログイン方法を聞かれるので、ユーザー名にはopc(Oracle Linuxのデフォルトユーザー名)を入力します。
秘密鍵には、インスタンス作成時にダウンロードした秘密鍵のファイルを指定して、接続すればSSH接続をすることができます(間違えて公開鍵を選ばないようにしてください!)。
2.Cloud Shellを使って接続する方法
仮想マシンにアクセスするたびに、外部のSSHクライアントを起動して、秘密鍵を指定して・・・とやるのも少々めんどうなので、OCIのコンソール上からアクセスする方法も示しておきたいところです。
右上の「開発者ツール>Cloud Shell」からCloud Shellを開くことができます。
Cloud Shellを開くと、OCI側でデフォルトで用意されている、bash shellを実行するための仮想マシンが起動します。
このShellマシンのホームディレクトリ直下に秘密鍵を置いておくことで、sshコマンドを使って、作成した仮想マシンにSSH接続することができます。
具体的な手順としては、「歯車のマーク>アップロード」を選択して秘密鍵をアップロードします。
その後、「chmod 600 秘密鍵ファイル名」を実行して、秘密鍵の権限を600に設定します。
あとは、 「ssh -i 秘密鍵ファイル名 仮想マシンのIPアドレス」を実行するとSSH接続が可能になります。
以上、OCI Archtect Associate資格を持つ方向けに、仮想マシンの作成からSSH接続までの基本操作をご紹介しました。
最初は少し戸惑うかもしれませんが、手を動かしながら学ぶことで徐々に慣れていくはずです。
この手順を一度覚えれば、今後のOCI環境での作業がスムーズになると思います。
ぜひ実際に試してみてください。