- 1. 技術Memo 2023/01/01
- 2. Terraformを使用してECS環境構築し、Laravelサイトを立ち上げてみた。
- 3. Systems ManagerによるEC2インスタンス操作ログの取得方法
- 4. Aurora Global Database のハンズオン (Amazon Aurora Labs) を触ってみた
- 5. 【初心者】Amazon SageMaker Latent Dirichlet Allocation (LDA) アルゴリズムを試してみた
- 6. AWS Config Ruleの新たな評価モード「Proactive」モードを検証してみた
- 7. Lambdaローカル開発環境構築手順
- 8. AWS Lightsailで構築したWordPressで、管理者メールアドレスをデフォルトから変更するまっとうな方法
- 9. クラウドエンジニア(AWS)がアリババクラウドを触ってみた。アリババクラウドでAWSで一般的な構成を作ってみる。
- 10. Glue JupyterNotebookの(公式未記載の)設定値を変更する方法
- 11. なぁ、Amazon Athenaのクエリを実行したときにS3へ出力されるcsvとcsv.metadataって消していいん??
- 12. AWS日記50(Amazon EventBridge)
- 13. S3 Access Pointsによるクロスアカウントアクセスを検証してみた
- 14. AWS DatasyncとAzure File Sync 比較 ~共通点と相違点~
- 15. Lambdaから直接Parameter Storeの値を取得する
- 16. CloudWatchを利用したNginxのプロセス監視方法
- 17. 2022年のQuickSightの全アップデートをチェックしていく
- 18. EventBridgeを使ってLambda関数を月初のAM8:00に実行する
- 19. AWS CDK – API Gateway(REST)+ Lambda Authorizer
- 20. 【初心者】Amazon SageMaker BlazingTextアルゴリズムを試してみた
技術Memo 2023/01/01
あけましておめでとうございます。
早くも3日坊主になりそうな気配がありますが、今年からは気になった情報について毎週Memoを残していこうと思っています。# Cloud
## AWS
##### 2022/12/01* **[【開催報告】AWS Autotech Forum 2022](https://aws.amazon.com/jp/blogs/news/aws-autotech-forum-2022/)**
AWSの公式Youtubeにはリストされていない動画があります。##### 2022/11/30
* [Announcing Amazon DocumentDB Elastic Clusters](https://aws.amazon.com/jp/blogs/aws/announcing-amazon-documentdb-elastic-clusters/)
また新たな名前の付け方が登場しました。他のサービスだとServerlessという名前が付きそうですが、何かが異なるのでしょうね。MongoDBを使用したことが一度もないのですが、このあたりの技術習
Terraformを使用してECS環境構築し、Laravelサイトを立ち上げてみた。
# はじめに
[naritomo](https://twitter.com/naritomo08)と申します。
最近Terraformによるコードでのインフラ作成にハマっていて、
色んなところで使用されているGitHubActionsによるCI/CDにも気になっていたため、
とりあえず一通りの構築ができるTerraform/Laravelソースを公開してみました。いろいろアドバイスいただけると嬉しいです。
## 立ち上げ概要
以下のことを実施しています。
* TerraformによるECSインフラ環境構築
* Laravelサイトのローカル環境構築/ブランチ更新によるGitHubActionを使用したECS環境への自動デプロイ実施
必要なソースは以下にまとめてあります。
https://github.com/naritomo08/laravel-fargate-infra-public
https://github.com/naritomo08/laravel-fargate-app-public
## 動作確認済みのOS
* Windows11(wsl2上
Systems ManagerによるEC2インスタンス操作ログの取得方法
# 目的
AWSを利用したシステムの運用時にSystems Managerを利用してEC2インスタンスを操作することもあるかと思います。
その際にEC2インスタンスの操作ログを取得したい場合もあるかと思いますので、操作ログ取得手順をまとめたいと思います。
手順としては、以下となります。
1. 操作ログ格納用のS3バケット作成
1. EC2インスタンスのIAMロールにS3バケットへのアクセス権限の付与
1. Systems Managerのログ出力設定## 1. 操作ログ格納用のS3バケット作成
本手順では、「prjtest-dev-log-ssm-20230101」という名称でS3バケットを用意します。## 2. EC2インスタンスのIAMロールにS3バケットへのアクセス権限の付与
EC2インスタンスのIAMロールには、以下のIAMポリシーが必要となります。
– AmazonSSMManagedInstanceCore
– AmazonS3FullAccess *1*1 「AmazonS3FullAccess」ポリシーが必要と記載しましたが、以下の権限を備えたIAMポリシー
Aurora Global Database のハンズオン (Amazon Aurora Labs) を触ってみた
# はじめに
Amazon Aurora には、Global Databse 機能があり、複数のリージョンにまたがったレプリケーションを簡単に構成する機能があります。通常、Amazon Aurora では、1 つのリージョン間で Multi-AZ を構成する機能があります。Multi-AZ 構成は、高可用性なデータベースが簡単に作れる機能となっており、Global Database より先に Multi-AZ 構成を検討するのがお勧めです。単一のリージョンでは、どうしても難しくて、なおかつリアルタイムなレプリケーションが必要なときに、Global Database の利用を検討しましょう。マルチリージョン構成はシステム全体で考慮しなければならないポイントがあり、通常は Multi-AZ 構成のほうがシンプルでおすすめです。
と前置きを置きつつ、Global Database の機能をきちんと触ったことが無かったので、Amazon Aurora Lab for MySQL というサイトにあるハンズオンを触ってみます。これを検証しながら、わかった点を整理していきます。興味があればぜひ触
【初心者】Amazon SageMaker Latent Dirichlet Allocation (LDA) アルゴリズムを試してみた
# 背景・目的
Amazon SagemakerでLatent Dirichlet Allocation(以降、LDAという。)を試してみます。# 概要
## Latent Dirichlet Allocation (LDA) とは
– 一連の観測を異なるカテゴリの混合物として記述しようとする教師なし学習アルゴリズムです。
– LDA は、テキスト コーパス内のドキュメントが共有する、ユーザーが指定した数のトピックを検出するために最もよく使用されます。
– ここで、各観測値はドキュメント、特徴は各単語の存在 (または出現回数)、カテゴリはトピックです。
– トピックは、各ドキュメントに出現する単語の確率分布として学習されます。
– 各ドキュメントは、トピックの混合物として説明されています。
### Choosing between Latent Dirichlet Allocation (LDA) and Neural Topic Model (NTM)
トピックモデルは、一般に以下に使用される。
– (1) セマンティックな意味を首尾一貫
AWS Config Ruleの新たな評価モード「Proactive」モードを検証してみた
# はじめに
re:Invent2022でAWS Config Ruleに新しい評価モードとして「**Proactive**」モードが追加されました。これまではConfig Ruleに非準拠のAWSリソースが**作成、設定変更後**にCofigによるコンプライアンスチェックが実施されていましたが、この新しい評価モードにより**事前**にチェックすることができるようになりました。https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-config-rules-support-proactive-compliance/
AWSリソースのプロビジョニングや変更に対して**発見的統制**に加えて**予防的統制**によるガバナンスを効かせることが可能になるので、実際の所どんなもんなのか確かめたく検証をしてみました。
# 2種類の評価モード
|評価モード|概要|トリガー|対応マネージドルール数
(2022/12時点)|
|—|—|—|:—:|
|Proactive|リソースの**プロビジョニング前**に、リソ
Lambdaローカル開発環境構築手順
下記ブログを参考に、Lambdaのローカル開発環境構築手順をまとめる。
# 本記事執筆時の作業環境
– Windows11 Pro 22H2
– Windows Terminal
– PowerShell 7.3.1# Pythonインストール
下記を参考にPythonをインストールする。~~https://blog.pyq.jp/entry/python_install_221102_win~~
https://starter-guide.od.pythonic-exam.com/ja/latest/python-setup/install-py39-win.html
2023/01/02追記:LambdaランタイムのPythonのサポートが3.9までだったため、
参考記事を差し替えた。https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html
下記コマンドでPythonのインストールを確認
AWS Lightsailで構築したWordPressで、管理者メールアドレスをデフォルトから変更するまっとうな方法
# 背景
AWS Lightsailを使用してWordPressを構築したところ、管理者メールアドレスをデフォルトのuser@example.comから変更できない。正確に言うと、変更後の承認が、本来は新しいメールアドレス(自分の場合gmailアドレス)に送信されるはずだが、送信されない。(「新しいアドレスは確認が完了するまで有効化されません」のままになる)結論は仕様。デフォルトではメール機能が有効になっていない。これを有効化するのが今回のお題。ちなみに、管理者メールアドレスを変更したいだけなら、
`http://ワードプレスサイトのURL/wp-admin/options.php`にアクセスすれば書き換えられる。ただ、メールが機能しないと他にもいろいろ面倒そうなので、有効化する。# 大まかな流れ
公式で[手順](https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-enabling-email-on-wordpress)を公開している。ただこの通りに行かないのとわかりにくいので、でき
クラウドエンジニア(AWS)がアリババクラウドを触ってみた。アリババクラウドでAWSで一般的な構成を作ってみる。
# 初めに
本記事では、超個人的な興味で、アリババクラウドを触ったログを書いてます!AWSでよく使われる一般的な構成を作るのにどうすればいいかを調査したものです。AWSはこうだけどアリババクラウドはこうだったという知見を貯めていきたいと思います。仕事でテンセントクラウドなどAWS,GCP,Azure以外のメジャーなクラウドを知る機会も多く、一度学習してみようという気がしたので使ってみました。# 今回の検証
## 検証概要
今回の検証では以下の構成図を作成することを目指します。
![lucidapp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1507944/4431115c-9427-41af-af8c-308cf3a2debc.png)## 調査
今回の調査にあたり、全く初めての状況から執筆するので、まずは公式ドキュメントなど参考文献を漁ってみたいと思います!### アリババクラウドでのVPC
AWSで言うところのVPCですが、アリババクラウドでも存在するのか?アリババクラウドではどのよ
Glue JupyterNotebookの(公式未記載の)設定値を変更する方法
# はじめに
GlueのJupyter Nootebookは開発しやすく大変便利ですが、コンソール上からでは設定値がグレーアウトしており、変更できません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/38abde96-907c-e833-5b3e-0f65b4f0f608.png)公式ではマジックを使って変更できる、とあります。
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/interactive-sessions-magics.html
ですが上記ページ上では、最大同時実行数の変更方法の記載がありません。
最大同時実行数の変更方法を調べていく中で、設定を変更する方法をいくつか見つけましたので、今回はそれらを紹介します。
:::note warn
公式未記載の方法ですので、利用する際は自己責任でお願いします。
:::# 概要
– 変更方法は以下が存在
– スクリプト上にマジックで設定
–
なぁ、Amazon Athenaのクエリを実行したときにS3へ出力されるcsvとcsv.metadataって消していいん??
# はじめに
ある日のこと、
「Amazon QuickSightを触ってみたいなぁ〜」
と思い、「[BIサービス Amazon QuickSight のセルフハンズオンキット日本語版を公開(随時更新)](https://aws.amazon.com/jp/blogs/news/amazon-quicksight-handson-202006/)」というブログにある「QuickSight Basicハンズオン編 (更新 2022/1/7)」というハンズオンをやってみました。そのハンズオンの
「ハンズオン 4:大規模データを ATHENA 経由で可視化する」
という箇所でAthenaを触っていた際、Athenaのクエリの結果を出力するS3バケット(以下のスクショ参照)を設定しました。![Athena.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2109911/77663cdc-d91c-3871-1bf1-d906d7f5bd9b.png)
そのままハンズオンを進めていき、Athenaでクエ
AWS日記50(Amazon EventBridge)
# はじめに
今回は Amazon EventBridgeを試します
デベロッパーガイドの[チュートリアル: ファイルが Amazon S3 バケットにアップロードされたときに Amazon ECS タスクを実行する](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/CloudWatch-Events-tutorial-ECS.html)を参考に設定します# 準備
[バケットの作成](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/create-bucket-overview.html)[Amazon ECR を使用してセットアップする](https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html)
[Amazon ECS で使用するコンテナイメージの作成](https://docs.aws.amazo
S3 Access Pointsによるクロスアカウントアクセスを検証してみた
# はじめに
「S3 Access Points」が2022年のre:Inventでクロスアカウントにおける共有先側でアクセス権を付与する事ができるようになったのでどんなものなのか試してみようと思います。# S3 Access Pointsとは
– アクセスポイントごとに固有のアクセスコントロールポリシーを作成する事で共有データセットへのアクセスをコントロール
– 各アプリケーション用にカスタマイズした名前とアクセス許可によってアクセスポイントを個別化して作成
– VPCからのアクセスのみに制限することで、プライベートネットワーク内で完結も可能
– 追加料金なしS3 Access Pointsを使わない場合、例えば1つのS3バケットに対して複数のアプリケーション(ロール)やユーザからアクセスを想定すると1つのバケットポリシーに何処から、どんなアクションを、何処まで(Prefix)許可するかを対応する分だけ記述していく事になり、1対多のような関係性になります。
S3 Access Pointsを使用する場合、アクセス元のS3バケットポリシーにはアクセスポイントからのアクセス許可
AWS DatasyncとAzure File Sync 比較 ~共通点と相違点~
本年最後の記事です。
前回はAWS WorkSpacesとAzure Virtual Desktopをエンタープライズユーザ目線で、事前準備、構築、MFA実装の3つの観点から比較し、全10編にわたる連載形式になりました。
今回もAWSとAzureのサービス比較記事、AWS DataSync(以下、DataSync)とAzure File Sync(以下、File Sync)を比較します。
今回はファイルサーバをクラウド上に構築することを想定し、AWS WorkSpacesとAzure Virtual Desktopの時と同様、Active Directory環境が導入済みの環境とします。# DataSyncとFile Syncって何なの?
結構マニアックなサービスなので簡単に説明します。
どちらも各々のクラウド基盤上のPaaSのストレージサービスにオンプレミスのデータをアップロードするサービスです。
100TiB以上の大容量のデータであればAWS SnowballやAzure Databoxなどのサービス利用が考えられまし、数TiB程度、もう少し具体的には10TiB未満の容量であれ
Lambdaから直接Parameter Storeの値を取得する
今まではboto3を使ってParameter Storeから値を取得していました。
“`python
import boto3ssm = boto3.client(‘ssm’)
response = ssm.get_parameters(
Names=[Parameter Store Key],
WithDecryption=True
)
“`
が、以下のアップデートにより、直接Parameter Storeなどから値を取得できるようになったので、実際に試してみた際のメモです。https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-parameters-secrets-lambda-extension/
# 必要な権限
SDKを使って実装していたときと同様に、Lambdaの実行ロールに以下の権限を渡す必要がある。
* `ssm:GetParameter`
* `kms:DecryptSecureString` (SecureStringを取得する場合に必要)# 必要なレイヤーの追加
## AW
CloudWatchを利用したNginxのプロセス監視方法
# 手順
以下の手順に沿って実施することでCloudWatchを利用したプロセス監視を設定することが可能。
1. IAMポリシー、IAMロールの設定
2. Systems Manager(Run Command)によるCloudWatchエージェントインストール
3. CloudWatchエージェントの設定ファイル作成
4. Systems Manager(Run Command)による設定ファイル反映、CloudWatchエージェント起動
5. プロセス監視の閾値設定## 1. IAMポリシー、IAMロールの設定
監視対象のEC2インスタンスに対して、以下のIAMポリシーが紐づくIAMロールを設定する。
– CloudWatchAgentServerPolicy
– AmazonSSMManagedInstanceCore### 補足
IAMポリシー「AmazonSSMManagedInstanceCore」は、Systems ManagerのRun Commandを利用しEC2インスタンスにcloudwatchエージェントをインストールするために必要。
IAMポリシー「Cl
2022年のQuickSightの全アップデートをチェックしていく
# はじめに
ヘビーユーザーではないけれど幾つかのPJでは弊社でも使っているQuickSightですが、個人的に今年分のキャッチアップが追い付いていなかったのでこのタイミングで2022年にリリースされたアップデートを全て(whatsnew)ピックアップして、ここでは個人的なメモなどを書いていきたいと思います。# 2022年1月
## [Amazon QuickSightに日時の比較計算と累積計算を追加](https://aws.amazon.com/about-aws/whats-new/2022/01/amazon-quicksight-comparative-cumulative-date-time-calculations/)
– 比較 (前年比など) および累積 (年初来など) の期間関数のネイティブサポートを追加### 期間関数
関数名|機能タイプ|説明
|—|—|—|
|periodOverPeriodDifference|表計算|期間の粒度とオフセットで指定された 2 つの異なる期間にわたるメジャーの差異を計算します。|
|periodOverPeri
EventBridgeを使ってLambda関数を月初のAM8:00に実行する
個人で運用しているLambda関数を月初に動かす際に調査した内容のメモです。
# やりたいこと
今回やりたいことは『毎月1日の8:00に特定のLambda関数を実行する』こと。EventBridgeを使うことでcron形式での記述ができるが、タイムゾーンがUTCであるため時差を考慮する (JSTの9時間前を指定する) 必要がある。
`cron(0 0 1 * ? *)` のように月初を指定すると、9時以前に実行できなかったり、`cron(0 23 31 * ? *)` みたいに記述すると月末が31日まである場合は対応できるが、28日とか30日の場合にルールが複数出来そうで、可能な限り簡潔に記述したかった。
# 実現方法
EventBridgeのユーザーガイドを確認してみると、`L`を使うことで月末・週末を表現することができるらしい。
https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html
> * The L wildcard in the Day-of-mont
AWS CDK – API Gateway(REST)+ Lambda Authorizer
# 前回記事
– [AWS CDK – Node.js 18 TypeScript での Lambda 実装](https://qiita.com/takmot/items/83326c5e3e3213038dde)
# 前提条件
– IaC は CDK(CDK v2)
– Lambda のランタイムは Node.js 18(拡張子は.mjs)
– Lambda の実装は TypeScript(AWS SDK for JavaScript v3)
– API Gateway の API タイプは REST API# ファイル 構成
[前回](https://qiita.com/takmot/items/83326c5e3e3213038dde)から Lambda Authorizer を追加している。
“`
├─ src/
│ ├─ lib/
│ │ ├─ api-gateway/
│ │ │ ├─ handlers/
│ │ │ │ └─ sample-api/
│ │ │
【初心者】Amazon SageMaker BlazingTextアルゴリズムを試してみた
# 背景・目的
BlazingText アルゴリズムを理解し、試してみようと思います。# 概要
## BlazingText アルゴリズム
Word2vec とテキスト分類アルゴリズムの高度に最適化された実装を提供しているとのこと。
Word2vec アルゴリズムは、以下のような多くの下流の自然言語処理 (NLP) タスクに役立つとのことです。
– 感情分析
– 名前付きエンティティ認識
– 機械翻訳などWord2vecは、単語を高品質の分散ベクトルにマッピングします。結果として得られる単語のベクトル表現は、単語埋め込みと呼ばれ、意味的に類似している単語は、互いに接近しているベクトルに対応します。単語の埋め込みでは、そのような方法で単語間の意味関係をキャプチャします。
多くの自然言語処理 (NLP) アプリケーションは、ドキュメントの大規模なコレクションでトレーニングすることによって単語の埋め込みを学習します。これらのトレーニング済みベクトル表現は、セマンティクスおよび単語の分散に関する情報を提供します。通常、その後限られた量のデータでトレーニングされる他のモデルの一般化可能