～クラウド1年生に贈るクラウド利用Tips～

この記事は、 JPOUG Advent Calendar 2022 15日目の記事です。
14日目の記事はora_gonsuke777さんの「シェルスクリプトで sqlplus から SQL を実行する時のお作法をあれこれ整理してみる。(Oracle Database)」でした。

JPOUG Advent Calendar 2022
https://adventar.org/calendars/7680

Oracle Cloud Infrastructure Advent Calendar 2022
https://qiita.com/advent-calendar/2022/oci

### 本記事の想定読者

クラウドを利用して間もない方・これから利用してみようと思っている方
（すでに利用されている方にとっては退屈な内容だと思います）

# はじめに

私はクラウドを利用して1年が経ったクラウド2年生なDBAです。

今回は、クラウドを使い始めたときに知りたかったTipsをまとめてみました！

超基本的な話題ばかりですが、これからクラウド利用する方の一助になれば幸いです。

具体的な記述をするときはOCIかAWSの話題に触れていきます。用語の違いは以下を参考にどうぞ。

[AWSと比較したOCIの特徴](https://qiita.com/dingtianhongjie/items/64af52f47af36f027d66)

# Tips(クラウド利用の些細なヒント)

1. アイコン・・・OracleもAWSもクラウドのアーキテクチャ図を描きたい方向けに、アイコンを提供しています。お絵描きする際利用しましょう。

    [AWSのアイコンダウンロードはこちら](https://aws.amazon.com/jp/architecture/icons/)

   ![AWS-Icon.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292149/ade0c1e5-e5dc-1cfc-151e-9bc8459e582d.png)


   [OCIのアイコンダウンロードはこちら](https://docs.oracle.com/ja-jp/iaas/Content/General/Reference/graphicsfordiagrams.htm)

   ![OCI-Icon.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292149/3e5ebab6-bb9d-0809-6075-8d6a3c27bdb9.png)

1. CLI操作・・・そもそもクラウドを初めて利用する際、マネージメントコンソール（マネコン）でGUI操作をまず利用するかと思いますが、CLI操作ももちろんあります。
CLIを利用するには自端末にクライアントをインストールして、認証認可を用意することが必要です。CLIだとGUIでは上手くいかない操作ができる場合がありますよ。
以下は、「Amazon S3のフォルダごとダウンロード」がマネコンからの操作だとできないがCLIだとできる例です。マネコンだとS3のオブジェクトをダウンロードするとき一つずつしかできないんですよね。。。
    
    例：[S3上のオブジェクトをフォルダごとダウンロードする方法](https://dev.classmethod.jp/articles/s3_object_folder_download/)

1. 複数アカウント利用者はChromeのプロファイル切り替えが楽・・・複数のクラウドアカウントに対して、マネコンを同時に操作している場合ログアウト/ログインは面倒なのでChromeのプロファイルを複数用意して切り替えるのが便利です。
紹介されて知ったんですが、ChromeのプロファイルってGoogleアカウントと紐づけなくていいんですよね。なのでGoogleアカウントを作成する必要はありませんよ！

1. サービスごとの料金をざっくり事前把握・・・各社サービスごとの見積もりツールを公開しています。まずはサービス単体の見積もりの参考にできます。

    [OCI見積もりツールはこちら](https://www.oracle.com/jp/cloud/costestimator.html)

    [AWS見積もりツールはこちら](https://calculator.aws/#/)

1. リージョンごとの料金・・・一般的に性能を考慮して、東京（国内）リージョンを使いたい場合が多いですよね。AWSはリージョンごとにサービスの料金が異なります。対してOCIはリージョン毎で料金が変わりません。AWSでは東京リージョンは高いので、可能な場合は安いリージョンを検討しましょう。OCIでは（サービスが利用できる場合）東京リージョンを選べばいいと思います。

1. 関連リソースの料金把握をしよう・・・例えばマネージドデータベースなサービスを使おう。となった時、マネージドデータベースの料金だけ調べると痛い目を見るかもしれません。データ転送料・ログ連携サービスなどなどデータベース以外の料金がかかることに気を付けなければならないのです！是非以下のリンクをご覧ください。IAMロールは無料なのにAWS Configにより課金請求された件です。

    [IAM ロールを 1000 個作って遊んでいたら AWS 利用費が 50 ドルを超えていた話を JAWS-UG 初心者支部で LT しました](https://dev.classmethod.jp/articles/jawsug_bgnr-36-shikujiri-iamrole-1000/)

1. 無料枠・・・OCIの無料枠(Always Free)がすごい。特にArmアーキテクチャコンピュート4インスタンス(24GBメモリ)とAutonomous無料は嬉しい。AWSにもOCIと比較すると少ないですがDynamoDBやLambdaなど常に無料な枠はあります。枠を超えたら有料なので気を付けて利用しましょう。私は最近無料枠で利用しているコンピュートを削除して、新たに作り直しました。しかし、削除したときにブート・ボリュームが残ってて課金されちゃいました。Azureでもボリューム消し忘れてた記憶があります（笑）

1. 料金アラート・・・クラウドは知識が無く思わぬ高額請求があった場合にごめんなさいでは通用しません。自分の予算に合わせた閾値を設定してアラート発行されるようにしておきましょう。

    ![Alert.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292149/70ad48ac-e4ec-72e0-78ea-ab7390e7ba13.png)

1. サービスはできるだけ新しい世代を利用たほうが得する・・・基本的に新しい世代は性能がよく、コストが安いです。


    [EC2 インスタンスタイプの種類や選び方！AWS初心者向けに今一度整理](https://techblog.forgevision.com/entry/aws-ec2-instance-bgr)

1. バックアップをリストアする場合、新規インスタンスとしてのリストアが強制されがち・・・例えばAというRDSインスタンスを作成したのちスナップショット（手動バックアップ）を取得したとします。「インスタンスAの状態をスナップショット時点に戻す」ことはできません。Bという新規インスタンスをスナップショット取得時点のデータで復元することになります。新規インスタンスとなるため、名前解決まで含めたリストア方法をきちんと検証しましょう。

    ![Restore.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292149/cfb9725e-dacb-001e-0f2e-a0de60a3a911.png)

    [【初心者向け】エンドポイントを持つサービス（RDSなど）とRoute53をセットで使うことのメリット](https://dev.classmethod.jp/articles/endpoint_and_route53/)

1. RDSは7日間で自動起動する(一時停止しかできない)・・・マネージドデータベースサービスであるAWSのRDSは作成後、ずっと停止しておくことはできません。検証後のデータベースを残しておきたい場合はバックアップを取得し削除するか、EventBridge Schedulerで自動停止をするよう実装するのがおすすめです。

    [【5分で簡単！】Amazon EventBridge SchedulerでRDSの自動定期停止を実装してみた](https://dev.classmethod.jp/articles/amazon-eventbridge-scheduler-rds-stop/)

1. 静的コンテンツのホスティング・・・実は私は一番好きなサービスが、オブジェクトストレージ（S3）です。静的コンテンツのみではありますが、S3だけでWeb構成が成り立ちます。もちろんCloud Frontなど周辺サービスを組み合わせがち、ここでは紹介まで。
ただのストレージ（保存領域）って訳ではないんですね。サーバーがいらないんですよ。もちろんEC2などよりめっちゃ安い（使い方による）。やばいですよねー。

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292149/0e7e746a-753d-1c2e-307b-55f5c72d6776.png)


    しかし2022/12/14現在、OCIのオブジェクトストレージにはこの機能が実装されていませんorz またキャッシュの役割をしてくれる、Cloud FrontのようなCDNサービスも無いんです。なのでこの話題は今のところAWSだけの話題。今後に期待デス。
    以下AWSとOCIの記事です。

   [S3で静的ウェブサイトを作成してみた](https://zenn.dev/mn87/articles/0a9026edb86dac)

    [CloudFront + S3 の静的Webサイト構築に役立つ情報まとめ](https://dev.classmethod.jp/articles/useful-information-to-build-cloudfront-s3-website/)

   [Oracle Cloud (OCI) オブジェクト・ストレージでの静的ウェブサイト(仮) の構築](https://qiita.com/Skogkatter112/items/beb3b0a5cd203ed53628)

1. タグが便利・・・クラウドではリソースが散らかりやすいです。作成したリソースの削除忘れなどなど。クラウド利用する組織では「タグ利用ルールの標準化」は必須だと思います。色々な利用方法があるかと思いますが、例えば以下のような利用方法があると思います。

    ![タグ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292149/0ee30e58-543b-a6a9-a423-33f424abbad3.png)

   ・タグごとにリソースを検索する（例：誰のリソースか把握する）
   ・タグごとに料金を把握する(例：検証目的ごとの料金を把握する)

   [AWS タグの活用方法と命名ルールを考える](https://dev.classmethod.jp/articles/aws-tagging-basic/)

1. DDoS攻撃によるお財布破壊・・・オブジェクトストレージやサーバーのエンドポイントなど、”必要のない”パブリックエンドポイントは避けましょう。
DDoS攻撃で利用料金が高騰してしまった事例があるらしいです。被害者は支払ったんですかね。怖すぎぃ。（記事のリンクどっか行ったので）

1. 踏み台サーバー・・・初心者のとき踏み台用にコンピュートを立てたくなりますよね。OCIには踏み台としてBastionサービスがあります。パブリックエンドポイントを持たないサーバーへ踏み台経由でアクセスできます。AWSにはまさに「踏み台サービス」というものは無いですが、SSMのSession Managerがこの用途に合うようです。

    [踏み台EC2を廃止してSession Manager接続に置き換えました](https://medium.com/eureka-engineering/started-to-use-ssm-session-manager-49dcd1e867a6)

1. 円安による負担費用増加リスク・・・ご存じの通り2022年は円安が進んだ年でした。大手パブクラは基本的にドルでの支払となるため、円安はダイレクトに直撃して実質値上がりしました。

1. 資格の有効期限・・・クラウドは資格の有効期限が短め。サービスのアップデートが激しいのでしょうがないですね。各社有効期限の長さは異なると思いますが、更新の労力を考えると12冠とかしてる人の努力ハンパじゃないです。。。ただ、どの資格を取ることが自分のエンジニアのキャリアにいい影響があるのかは見極めたくなってしまいますね。

1. 学びにおすすめなリンク・・・以下おすすめなリンクです。クラウドはサービスが多くて最初は面食らうと思います。基本的な抽象化されていないサービス（ストレージ、データベース、コンピュート、ネットワーク、IAMなど）を抑えれば十分な場合が多く、「基礎サービスの使い方」を勉強するのがおすすめです。
資格取得を目指すとたくさんのサービス覚えるのが必須なんですが、サービス名覚えるマンになるとその次はアップデートを追うマンになるので時間が溶けやすいです。。。そして現場では使わないとなると、あんまりお勧めできない。
もちろん”クラウドで”プロフェッショナルになるならそちらの努力も必要です！

[AWS 初心者向け資料](https://aws.amazon.com/jp/events/aws-event-resource/beginner/)

[AWSサービス別資料集](https://aws.amazon.com/jp/events/aws-event-resource/archive/?cards.sort-by=item.additionalFields.SortDate&cards.sort-order=desc&awsf.tech-category=*all#management-tools)

[OCIサービス別資料](https://oracle-japan.github.io/ocidocs/services/)

[OCIソリューション別資料](https://oracle-japan.github.io/ocidocs/solutions/)

# まとめ

為替変動や関連リソースの料金を考えると、料金をぴたっと言い当てることはなかなか至難の業ですね。

料金の不確実性から、怖くなって学習へ進めなくなる。という状況を排除するためにも本気度が高い方は「検証用のクラウド料金」を支払ってくれる会社に入社しましょう！！間違いなくIT企業が用意すべき福利厚生デス。

また、クラウドは進化が早く知識のアップデートが必要です。Twitterやコンパスで勉強会をキャッチアップすることをオススメします！

[コンパスはこちら](https://connpass.com/)

まだまだ私もクラウド勉強中なため記事の中に誤りがあるかもしれません、ご指摘がある場合コメントにてお願いします！orz