めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

AWSクラウドプラクティショナーの出題範囲をざらッと眺める

この記事は何

AWSの機能について全体を把握するためにAWSクラウドプラクティショナーの範囲+アソシエイトレベルの知識について一通り調べてみるページ。

正直一通りのサービスは数年前に使ったことがあるため、復習の意味が大きいです。

勉強内容

AWS認定とは

カテゴリがいくつかあり

  • FOUNDATIONAL = AWSの基本的な知識を身に着けるのが主な目的であり業務経験は不要
  • ASSOCIATE~SPECIALTY = 一定以上のオンプレミス環境での開発・AWSクラウド開発の経験がある人向け

今回は一応ASSOCIATE~PROFESSIONALの間のレベルをターゲットに勉強したいと思います。

基本知識

  • 固定費が柔軟な変動費へ
  • AWS Well-Architected Framework
  • SPOF = 単一障害点、ひとつのXXXだけで構成しないという考え方
  • 責任共有モデル=クラウド本体のセキュリティはAWSが、クラウド内のセキュリティの責任はユーザーが持つ
    • ルートユーザー=最も強い権限を持つユーザー
    • IAMユーザー=適切な権限を付与されたユーザー、普段はこのIAMユーザーを通じて操作をする

コンピューティングサービス

ストレージ

  • Amazon EBS
    • AZ内にあるためAZが使えなくなると同時に使用不可能になる
    • S3にバックアップ(スナップショット)を取っておくとよい
    • EBSのデータはインスタンスの状態とは関係なく保存される
  • Amazon S3
    • アクセス権限はACL・バケットポリシー・IAMポリシーから設定する
    • 用途はデータレイク・静的コンテンツの配信・レプリケーションが多い
  • Amazon Elastic File System = AWS Direct Connectと組合わせるとオンプレ環境からもアクセスできる・容量は自動で伸縮する

データベース

  • Amazon RDS
    • EC2にデータベースをインストールするのと異なり、バクアップやスケールも自動化する
  • Amazon Aurora = クラウド向けに最適化されたRDBでありMySQLなどと互換性あり
  • Amazon DynamoDB = フルマネージドのNoSQLデータベースサービス、「フルマネージド」、つまりユーザーの責任範囲がさらに狭くデータベースエンジンなども管理を任せてしまう
    • NoSQLでありRDBではない
  • Amazon Neptune

機械学習

ネットワーク

自動化・監視

  • AWS CloudFormation
  • AWS CodeCommit = githubのようなもの
  • Amazon CloudWatch = EC2やDynamoDBの状態をモニタリングする
  • Amazon CloudTrail = AWS内でのAPIリクエスト履歴の確認
  • Amazon EventBridge = AWS内のイベントをトリガーにして何かを実行する際に使う
  • Amazon GuardDuty/Macie/Firewall Manager/Detective をAWS Security Hubで管理する

【エラー解決】『Another git process seems to be running in this repository』のメッセージが出てコミットやプッシュができない

現象

VSCodeにてcommitメッセージを書きコミットしている最中に停電が起き、再起動後にコミットができず以下のメッセージが出た。

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.

原因

コミットの途中でターミナルが閉じられたことにより、ロックファイルが破損していた(コミット途中の状態のままになっていた)。

解決方法

.git/index.lock.git/.COMMIT_EDITMSG を削除する。

※検索した感じ、同時に複数のターミナルでgitコマンドを実行する際も同様のエラーが見られるみたいです。

pythonで一時的にFutureWarningを非表示にする方法

パターン1

warnings.simplefilter(action, category=Warning, lineno=0, append=False) を使用して FutureWarning のみを指定して非表示にする。

import warnings
warnings.simplefilter('ignore', FutureWarning)

warnings.filterwarnings('ignore') としてwarningすべてを無視することもできるが、今回は 「FutureWarning だけを消したい」のだから非表示にするwarningもFutureWarningに絞るべき。

パターン2

特定のコードブロックのwarningのみを非表示にするには、with文を使う。

import warnings

with warnings.catch_warnings(record=True) as w:
    # ここにwarningが出るコードを書く

    # warningの内容を確認できる
    for wi in w:
        print(wi)

Python import error: cannot import name 'six' from 'sklearn.externals' のエラー

エラー内容

をインストールして実行した際に、

Python import error: cannot import name 'six' from 'sklearn.externals'

のエラーが表示された。scikit-learn含め他のライブラリのインストールは正しく行われており、環境設定も正しい(=conda install/pip install/他 install等のコマンドを行ったり来たりしていない)と思われる。

解決方法

import six
import sys
sys.modules['sklearn.externals.six'] = six
from skrules import SkopeRules

from sklearn.externals import six が削除されたためにエラーになっていた。該当箇所が動作するように sklearn.externals.six の参照先を指定することで解決。

※これは実験でコードをとりあえず動かすための一時的な対処法です

【エラー解決】OSError: 'seaborn-deep' is not a valid package style

エラー内容

PyPortfolioOptをインストールしてからサンプルコードを実行する際、以下のエラーが表示され実行できない。

OSError: 'seaborn-deep' is not a valid package style, path of style file, URL of style file, or library style name (library styles are listed in `style.available`)

使用しているmatplotlibのバージョンは3.8.0

解決方法

'seaborn-deep' が3.8.0で使用できなくなっているのが原因だった。matplotlibをアンインストールした上でpip install matplotlib==3.7.3として実行可能になった。

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。