- 1. SAM Pipelineで、設定ファイルから別々のパラメータを与える方法
- 2. Next.jsをElastic Beanstalkにデプロイする
- 3. EKS Podにセキュリティグループを適用する
- 4. AWS EC2でEC-CUBEを超簡単に構築
- 5. Amazon Comprehend とは
- 6. Redshift Serverlessの使用制限を使ってみた
- 7. 【Elastic Beanstalk】ebextentionsに設定したコマンドの実行ログを確認する
- 8. Amazon Redshift で 行レベルアクセス制御(RLS)
- 9. IAMユーザにIAMロールをアタッチする話
- 10. AWSでIAMユーザーを作る
- 11. [小ネタ] AWS Amplify 本のサンプルのデプロイについて
- 12. AWSのCloudWatchを使って請求アラームを設定してみる
- 13. 【AWS】検証タスクのマニュアルを作ってみた。
- 14. AWS Lambdaで動かすStable Diffusion/Waifu Diffusionをちょっと効率的に使うTips
- 15. Amazon Redshift で 列レベルアクセス制御
- 16. 初心者がPythonのDjangoでポートフォリオを作成してみた(AWSデプロイ)
- 17. AWS上にStreamlitの動作環境を作ってみた
- 18. AWS初心者は必ず読むべき!必見!AWSの基本①(AWSとは、初期設定)
- 19. AWS CDK Merit Badgesってなに?
- 20. AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その1:Systems ManagerからのAnsible実行)
SAM Pipelineで、設定ファイルから別々のパラメータを与える方法
# はじめに
SAM Pipelineで、リソース作成時のデプロイに対して、ファイルから設定値を渡す方法がわかりましたので、環境及び実行コマンドごとに設定ファイルを分けてみました。# 概要
– デプロイ時に実行されるコマンドに、直接ファイルと環境名を引数で与えるよう修正
– mainブランチの際は、artifactsにて使う設定ファイルを指定する必要あり# 経緯
## 生じた問題
– 今までの記事でサンプルとして用いていたものは、パラメータを与えて、それに応じた名前を持つLambda関数やIAMロールなどを作成
– パラメータの指定なしの場合は、デフォルト文字列を使用
– SAM Pipelineでは、bootstrapやinit、パイプライン作成のいずれの段階でも、上記サンプルへの`sam deploy`の引数の指定を行わない
– 同じアカウント上に2つ目を生成しようとする場合、同じ名前があるため必ず失敗する
– featureブランチ用パイプラインが、複数ある場合
– 本番の2ステージモデル(TestDeploy、Pr
Next.jsをElastic Beanstalkにデプロイする
Next.jsをElastic Beanstalkにデプロイする方法をまとめてみました。
## 1. Next.jsプロジェクト作成
まず`create-next-app`でNextjsプロジェクトを作成します。
今回はblogという名前で作成します。“`bash
npx create-next-app blog –ts
“`実行が完了するとblogという名前のディレクトリができているのでcdで移動します。
ディレクトリ内は以下のようになっていると思います。“`bash
ls -a
. .. .eslintrc.json .git .gitignore README.md next-env.d.ts
next.config.js node_modules package.json pages public styles tsconfig.json yarn.lock
“`## 2. プラットフォームフックファイルの作成
次にプラットフォームフックファイルを作成します。
プラットフォームフックはアプリケーションをデプロイする際にデプロ
EKS Podにセキュリティグループを適用する
## はじめに
以前投稿した、prometheusのメトリクスを使ってHPAする際に、promethues-operaterは **`EC2`** に、sidekiq-exporterは **`Fargate上`** に存在し、インバウンドルールで通信が許可されていないので通信できないという状況になっていました。
https://qiita.com/ymktmk/items/090c8a32e059920a7370
**`EC2 -> Fargate`** へ通信するには「FargateのクラスターSG」 or 「PodにSecurityGroupPolicy」 のいずれかが必要です。しかし、FargateのクラスターSGの場合は全てのPodに対して9292番ポートの通信を許可してしまうのでPod単位で設定できる **`SecurityGroupPolicy`** が適しています。今回はSecurityGroupPolicyを正しく設定してEC2からFargateのPodへの通信を可能にしていきたいと思います。
## セキュリティグループ用の VPC CNI アドオンの設定
AWS EC2でEC-CUBEを超簡単に構築
# 前提
AWS EC2の1台のみで構築
1台だけなのでネットワーク系の設定は説明を省略します
EC-CUBEは「eccube-4.1.2.zip」を使用、予め/home/ec2-user/配下に保管## 1. EC2の初期設定
“`bin/bash
sudo su –
echo (hostname) > /etc/hostname
timedatectl set-timezone Asia/Tokyo
yum update -y
shutdown -r now
“`## 2. Appacheインストール
“`bin/bash
sudo su –
yum install httpd -y
amazon-linux-extras list
amazon-linux-extras install php7.4
php -v
systemctl status httpd
systemctl start httpd
systemctl status httpd
#ブラウザでテストページが表示されることを確認
“`
## 3. MariaDBインストール
“`bin/bash
Amazon Comprehend とは
## 勉強前イメージ
Comprehendって理解するって感じ?だから・・・
理解して概要とか議事録とか作ってくれるのかな## 調査
### Amazon Comprehend とは
機械学習を使用してテキスト内のインサイトや関係性を検出できる自然言語処理(NLP)のサービスになります。
キーフレーズ抽出、実態認識など利用できます。
他のアプリケーションと連携させることも出来ます。### Amazon Comprehend の機能
– キーフレーズ抽出
文章の中のキーフレーズやポイントを表します。
検索キーワードとしても使えるかもしれません。– 感情抽出
文章全体的な感情を表します。
肯定的な文章か、または否定的な文章化ほかにも混在しているのか見ることが出来ます。
レビューの書いた人の感情の数値化をしてくれます。– 構文分析
文章の単語の境目を定義して、関連する品詞にラベル付をします。
難しい文章でも読み解きやすくなります。– エンティティ認識
テキスト内にある場所や位置、人などカウントをして信頼スコアを返します。
この文章内でどれだけその単語が使わ
Redshift Serverlessの使用制限を使ってみた
Redshift Serverlessの使いすぎを防ぐべく、使用制限を使って利用料の監視をしました。
1日あたり$2以上使った場合はSNSトピックに通知するという設定をして、動作確認をしてみました。## 使用制限の設定
マネジメントコンソールで設定する場合、Amazon Redshift サーバーレス→ワークグループの設定→ワークグループ名→制限→使用制限を管理→Redshift 処理ユニット (RPU) の最大数→制限を追加から設定します。
設定画面で入力するのは以下4点です。* 頻度:どのスパンで利用料を計算するか指定します。[毎日/ 毎週 / 毎月]から選択します。
* 使用制限 (時間):RPU hourの閾値を入力します。計算方法は後ほど記載します。
* アクション:閾値を超えた場合のアクションを指定します。[アラート / システムテーブルへのログ / ユーザークエリを無効にする]のいずれかから選択します。
* SNSトピック:アクションで[アラート / ユーザークエリを無効にする]のどちらかを選択した場合、通知先を指定します。
![image.png](https:
【Elastic Beanstalk】ebextentionsに設定したコマンドの実行ログを確認する
.ebextensionsの中にデプロイ時に実行したいコマンドを書いたconfigファイルを設置して
Elastic Beanstalkにアプリをデプロイしたところエラーが発生。
その時実行したコマンドのログファイルを見つけるのに悩んだので書き残しておく。“`sh
eb deployERROR Instance deployment failed. For details, see ‘eb-engine.log’.
“`エラー内容に書かれている通りElastic Beanstalkのログからエラー内容を確認してみる。
“`:cfn-init.log
2022-09-24 01:22:09,313 [INFO] ———————–Starting build———————–
2022-09-24 01:22:09,319 [INFO] Running configSets: Infra-EmbeddedPostBuild
2022-09-24 01:22:09,322 [INFO] Running conf
Amazon Redshift で 行レベルアクセス制御(RLS)
– 例えば、各自が所属する部門に関する行(レコード)だけを表示させたい場合など、ROLEに応じて操作範囲を制限したい場合に使えるRedshiftの機能 (2022年7月GA)。
– `RLS` : Row-level Securityといい、基本は`RBAC`(Role-Base Access Control)を使う。
– SQLだけで操作できる。
– [列レベルのアクセス制御機能](https://qiita.com/suzukihi724/items/675fc743459be189079b)と組み合わせることで、より細かい制御が可能。参考)
– AWS公式ブログ:[Achieve fine-grained data security with row-level access control in Amazon Redshift](https://aws.amazon.com/jp/blogs/big-data/achieve-fine-grained-data-security-with-row-level-access-control-in-amazon-redshift
IAMユーザにIAMロールをアタッチする話
### 記事を書くきっかけ
自分「IAMユーザにIAMロールをアタッチして、権限制御することを考えていて〜」
同僚「IAMロールはAWSリソースにつけるもので、IAMユーザにはアタッチできないよ」
自分「確かに書いてあるな。だけど、以前の現場でマネコンにアクセスする際、環境ごとにリンクを踏んでスイッチロールした記憶があるぞ???」
ということで調べてみました。https://qiita.com/montama/items/90bb8a3973d101be4690
### 検索してみた
– どうやら、あるアカウント内にあるIAMユーザについて、他のアカウントでのロールを引き受けることはできるよう。
– 例えば、ユーザ管理用アカウントを作っておき、別に○○システム動作用のアカウントを作るとすると、以下のような設定が必要です。
– ○○システム動作用のアカウント内で、以下のポリシー・ロールを作成する。
– ユーザ管理用アカウントのIAMユーザを信頼するポリシー
– 動作用アカウント内で必要な動作を許可するポリシー
– 上記
AWSでIAMユーザーを作る
## IAMユーザーとは
AWSアカウントを作成するとrootユーザーが自動的に作成されますが、なんでもできるrootユーザーは使わずに、適切に権限を付与して作ったIAMユーザーを使うことを、AWSは強く推奨しています。
– 使用料無料
– アクセス権限
各IAMユーザーが利用できるサービスに制限をかけれます
– 多要素認証(MFA)
個々のアカウントに付与することできて、セキュリティ強化につながる
– etc## 1. IAMユーザーでも請求金額を見れるように設定
– 画面右上のアカウントを押下して、開いたメニューの中から “アカウント” を選択
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674934/bd84e4fd-dece-624b-0203-f7f0e3581bb7.png)– ” 編集” 押下
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674934/d73fc6d8-
[小ネタ] AWS Amplify 本のサンプルのデプロイについて
## はじめに
書籍「AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発」を購入しました。
p.30にサンプルアプリを作成する手順が記載されています。
2022年9月時点で私のAWSアカウントでは書籍どおりに行かなかったので、同じような状況の方向けのメモとして残しておきます。p.30下部の図には AWSのコンソールで「フルスタックのサンプルから」という項目が表示されていますが、私の環境では表示されていませんでした。(下図)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/26e232a5-d699-a1bb-d8c5-a30e7e91d143.png)
GitHubからの操作で同じサンプルをデプロイすることができますので、手順を残しておきます。
まず、ブラウザ上でAWSのマネジメントコンソールにログインしておきます。
同じブラウザで作成済みのGitHu
AWSのCloudWatchを使って請求アラームを設定してみる
## はじめに
自己啓発のためにAWSを使おうと思いましたが、いろんなサービスが従量課金で用意されており、出費がかさむのを避けたいので、まずはサービス使う前に、一定金額に達したらアラームを通知するように設定しました。
まだまだ分からないことだらけですが、お金の面の不安がある程度は解消できたので、AWSを使っていけそうです。### 利用するサービス
– CloudWatch
各システムの異常などを監視してくれるサービスですが、今回は請求額の監視です。
– Amazon SNS(Simple Notification Service)
購読先に対して通知してくれるサービスで、今回は請求額超過のメール通知で使用します。## 1. 請求アラートの受信手順
### 1.1. 請求設定画面を開く
– 画面右上のアカウントを選択し、”請求ダッシュボード” を選択します
![請求ダッシュボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674934/e0e6e2d9-7bf6-01ec-39a1-0
【AWS】検証タスクのマニュアルを作ってみた。
お疲れ様です。最近は振られる検証タスクをこなしています。少しずつ要領を掴めてきた感があります。
(とはいってもまだまだですが・・)この間まではまるまる1ヶ月かかっていたのが3週間、2週間と縮めることができました。
検証用の手順書もない中、作業を進めていたので、混乱していた時期もありました。
そこで、これまでの作業を振り返って検証タスクのマニュアルを作ってみました。
検証以外でのタスクを任されるときでもこれは役に立つだろうと思い、備忘録として残したいと思います。
## 全体のフロー
検証タスクの進め方として大まかなフローを紹介します。大きく分けて9つになります。**①検証の目的を把握するためにミーティングする**
・どのサービスを使いたいのか?
・顧客のシステムに実装するのか?
・期限日は?**②前提条件・環境設定・パターンの確認**
・サーバーのOSやインストールしておくべきソフトウェアのバージョン、デフォルトなのか確認をする。
→キャプチャを撮る、公式のドキュメントURLを控えておく
・揮発性のある設定なのか?その都度設定しなければならないものか?
AWS Lambdaで動かすStable Diffusion/Waifu Diffusionをちょっと効率的に使うTips
# はじめに
LambdaでStable Diffusion/Waifu Diffusionを動かすと、画像生成に1枚当たり約3分かかります(パラメータで前後します)。
基本的な作業の流れとしては次のとおりですが、、**prompt等のパラメータの設定→Lambda実行→【画像生成[3分待機]】→画像ダウンロード→チェック→パラメータの・・・(略)**
面倒です。特に3分待機が。煩雑です。
ということで本記事はこの辺りの状況を少しだけ改善するための小ネタです。
なお、AWS LambdaでStable Diffusion/Waifu Diffusionを動かすためのプロジェクトは次のものを使用します。
最新版のソースコード一式をクローン or ダウンロードしてご利用ください。https://github.com/densenkouji/stable_diffusion.openvino.lambda
# 前提
– AWS CLI、Docker、Pythonはインストール済み
– 「aws configure」でAWS Access Key ID、AWS Secret Acc
Amazon Redshift で 列レベルアクセス制御
例えばPIIやPCIなどの機密情報対策として、テーブル、ビュー、マテリアライズドビューで列(カラム)レベルでGRANT/REVOKE形式のアクセス制御ができるRedshiftの機能.
SQLだけで操作できる。参考)
– AWS公式ブログ:[Amazon Redshift で列レベルのアクセス制御を行い、よりきめ細かなデータセキュリティを実現する](https://aws.amazon.com/jp/blogs/news/achieve-finer-grained-data-security-with-column-level-access-control-in-amazon-redshift/)
– [公式ドキュメント](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html#r_GRANT-usage-notes-clp)# 列レベルでの権限追加例
公式ブログの内容抜粋をベースに、一般的にはユーザ単位よりグループ単位やROLEで権限管理が便利なので、ここではグループ単位での例で。
### 1) まずはサン
初心者がPythonのDjangoでポートフォリオを作成してみた(AWSデプロイ)
## 紹介
どうも、独学でウエブアプリを作っているクリスと申します!
最初はただの問題解決のため自分でアプリを作ろうとしましたが、まさかポートフォリオになるとは思いませんでした。(笑)今回作ってみたものを紹介したいと思いますが、まずはその背景から語ります。
## 背景
自分は会社の寮に住んでいます。
寮は11部屋の一軒家ですが、なぜか電気代を計算してるメーターが6個しかない。
5部屋は各自のメーターで、残りの部屋はシェアという感じです。
なので毎月光熱費を計算するのを苦労してました。
そのうえ、他の部屋に住んでいる者は変わったりしますので、みんなが何日間、どのくらい使っているかを計算するのもかなり難しいです。(サービス業の従業員の出入りは激しいです)そのため、自動的に計算してくれるアプリを作りたいと決めました。
## アプリ概要
MVCアプリ、基本的なCRUD処理と自分で作ったアルゴリズムで一人一人の光熱費を計算して、ユーザーに表示する。### メイン機能
– 光熱費照会
– 日別で部屋のデータ照会(誰が何の部屋にいつ住んでいるか)
– 光熱費入力
– 部屋データ入力
AWS上にStreamlitの動作環境を作ってみた
## 概要
[**Streamlit**](https://streamlit.io/) という Python のWEBアプリケーションフレームワークを動かすための環境をAWS上に作ったのですが、とにかく詰まりに詰まったので覚えている範囲で記録を残しておこうと思います。誰かしらのお役に立てば幸いです。ということでいってみましょう。
## EC2環境
– Amazon Linux 2
– Apache 2.4.54
– Python 3.7(Amazon Linux 2 に最初から入っていた)## インフラ構成
大まかにはこんなかんじですが特に凝ったことはしていません。
アベイラビリティゾーンやパブリックサブネットは実際は複数ありますが、本筋にあまり関係ないのでここでは省略してます。![streamlit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70638/8b447a25-f5a7-ad3e-9bf5-8e605cba711a.png)
唯一の注意点として、
AWS初心者は必ず読むべき!必見!AWSの基本①(AWSとは、初期設定)
# 資料
https://www.udemy.com/course/aws-and-infra/
# この記事の概要
AWS初心者向けの記事です。
これから学習する方などは参考にしてみてください。## 注意
AWSがアップデートされて画面が変わることがあるのでご了承ください。# インフラができるメリット
・自身でサービスが作れる
・システムが全体的にわかるのでシステム全体の対応可能# インフラはどのように構築するのか
1. ***サーバーの構成***
どんなサーバーが必要か考えたり、OSをインストールして設定をしたり、
必要なソフトウェアインストールして設定したり、サーバーを設置したりします。2. ネットワークの構成を考える
構築したネットワークをネットサーバーに接族し、
ネットワークで使用するIPアドレスの範囲を決めたり、割り当てたりします。# AWSとは
“`AWS“`とは“`(Amazon Web Services)“`の略称で
***Amazonが提供する世界最大のクラウドサービス***です。### AWSの特徴
サービスが豊富で100
AWS CDK Merit Badgesってなに?
# はじめに
表題の通り、CDKのアップデートで`AWS CDK Merit Badges`が採用されたようです。
何だろう、ということで簡単にまとめてみた。※2022/09/23時点の情報です。
## 読んでみる
– 原文はこちら
https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md#badges-pilot-program
大体ニュアンスはわかりますが、念のためGoogle翻訳してみましょう。
“`text
CDK Merit Badges はパイロット プログラムです。取得するバッジは実験的なものであり、変更される可能性があります。CDK Merit Badges は、CDK コントリビューターのエクスペリエンスを向上させることを目的としたプログラムです。CDK リポジトリに新しいプル リクエストを送信すると、リポジトリへの以前の成功した貢献の数を反映するメリット バッジを受け取ります。現在、これらのバッジは楽しみのためのものであり、CDK への継続的な貢献へのささやかなインセンティブを目的としてい
AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その1:Systems ManagerからのAnsible実行)
# はじめに
最近勉強がてら「**[AWS Hands-on for Beginners](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/)**」の「**[AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-cicd-2022-reg-event.html?trk=aws_introduction_page)**」を視聴し、自分でも`CI/CD`の環境を構築してみたいと思ったので、[前回](https://qiita.com/sakai00kou/items/5f8e9ecbc1e38f958eb2)手放しでおすすめできるとは言い難いと記事に書いておきながらも、`Systems Manager`から`Ansible`実行機能を使って、`CodeCommit`に`Ansible`実行用のソースをコミットしたら指定のインスタンスに対して`A