- 1. AWSにアクセス制限をかける
- 2. 【未経験エンジニア就職希望】ポートフォリオ作成【PHP,Laravel,Docker,Github,AWS】
- 3. Amazon EMRの入門チュートリアルを試してみた
- 4. GuardDuty Malware Protectionの挙動
- 5. AWS Serverless デジタルバッジを取得する② Lambda編
- 6. 【AWS】AWS Batch(Fargate タイプ)の CLI コマンドメモ
- 7. OpenID ConnectによるID連携をして、Lambdaにデプロイする
- 8. 【React】AWS Cognito+Amplifyを用いたログイン機能
- 9. 【AWS】Lambda関数のトリガーを同じS3にした時にハマった話
- 10. 【参加レポート】Amazon Personalize 入門ハンズオン
- 11. AWS Clean Rooms(プレビュー)を触ってみた
- 12. React + AWS Amplifyのスタートアップ
- 13. AWS CDK – Identifiers
- 14. (Amplify/Cognito)ログイン画面を実装の際に’./aws-exports’を使うと後々ハマるのでベタ書きが良い。
- 15. AWS CDK – Environment
- 16. Databricks on AWSのPrivateLink環境でクロスアカウントS3アクセスに苦労した話
- 17. AWSのここが便利(フリーランスエンジニアから教えてもらった使える知識)
- 18. Cloud9(クラウドナイン)
- 19. CloudFront(クラウドフロント)
- 20. S3(エススリー)
- 21. Lightsail(ライトセイル)
- 22. 【IoT入門】MQTTについて1から丁寧に解説
- 23. Amazon EMRを整理してみた
- 24. APIGateway + Lambda + DynamoDB を利用したサーバレス構築ハンズオン
AWSにアクセス制限をかける
# 課題
AWSにアクセス制限(IP)をかけたい# AWS公式情報
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html# 流れ
1. IAMポリシーの作成
2. IAMユーザーもしくはIAMユーザーグループにIAMポリシーをアタッチする
(IAMユーザーグループにアタッチするのが一般的)# 1. IAMポリシーの作成
IAMポリシーを作成し、以下のjsonで記述する。
xxx, yyyy としているところを許可したいIP郡に書き換える。
**[IAMコンソール] > [IAM] > [ポリシー] > [ポリシーを作成]**
“`
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Deny”,
“Action”: “*”,
“Resource”: “*”,
【未経験エンジニア就職希望】ポートフォリオ作成【PHP,Laravel,Docker,Github,AWS】
実務未経験からエンジニア転職を希望しています。
勉強したことやポートフォリオ作成について書いていきます。
アドバイスを頂けると大変うれしく思います。よろしくお願いします。ポートフォリオ概要(作成期間約1ヶ月)
サービス名:Travel_log
・サイトURL:http://travel-log.xyz
・githubリポジトリ:https://github.com/mana0902/travel_log旅のしおりとアルバムをまとめて、時系列で思い出を管理できるツールが欲しいと思い作成しました。
課題はたくさんありますが完成させることを目標に作成しました。+ 使用技術
※実際の開発現場でよく使われている技術を意識して選びました
・PHP8.1.13
・Laravel9(laravelbreeze)
・vite(node.js)
・tailwindcss
・Mysql
・nginx開発環境
・WSL2
・Docker本番環境
・AWS(EC2, RDS, Route53)参考教材
| 教材 | コメント |
|:———–|:———–
Amazon EMRの入門チュートリアルを試してみた
# 背景・目的
[こちら](https://qiita.com/zumax/items/4b641f49616e03bd6c76)でEMRを整理しましたが、今回は、[ドキュメント](https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-gs.html)をもとにEMRのチュートリアルを試してみます。# まとめ
– わずか数クリックでクラスタが起動できます。# 概要
EMR を使用すると、ビッグデータフレームワークを使用してデータを処理および分析するクラスターをわずか数分でセットアップできる。
このチュートリアルでは、Spark を使用してサンプルクラスターを起動する方法と、S3 バケットに格納された簡単なPySpark スクリプトを実行する方法について試す。
次の 3 つの主要なワークフローカテゴリにおける EMR の必須タスクを取り上げる。
– 計画と設定
– 管理
– クリーンアップ![image.png](https://qiita-image-store.s3.ap-northeast-1.a
GuardDuty Malware Protectionの挙動
# はじめに
昨年リリースされたMalware Protectionを利用する機会があったので、挙動をまとめておきます。https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/malware-protection.html
# Malware Protectionとは
>GuardDuty Malware Protection は Amazon GuardDuty の拡張機能です。GuardDuty は、マルウェアによって既に侵害されたリソース、または危険にさらされているリソースを特定します。Malware Protection は GuardDuty のサポート機能として、この侵害の原因として疑われるマルウェアを検出します。公式では上記の通り説明があります。完結にいうとGuardDutyでマルウェアを検知(削除とかは実施できない)可能という内容です。名前の通りの機能ですね。
# 仕組み
![スクリーンショット 2023-01-22 22.18.59.png](https://qiita-image-store.s3.ap
AWS Serverless デジタルバッジを取得する② Lambda編
[このデジタルバッジ](https://aws.amazon.com/jp/blogs/news/introducing-new-aws-serverless-digital-learning-badges/)取得のために、AWS Skill Builderの[このコース](https://explore.skillbuilder.aws/learn/lp/1585/serverless-learning-plan-japanese)を学習している記録
自分のスキルレベルは以下。
– SAAは取得
– 4年前ぐらい
– 実務利用なし
– 趣味レベルではあり# AWS Lambda Foundations (Japanese) 日本語実写版
https://explore.skillbuilder.aws/learn/course/621/play/1727/aws-lambda-foundations-japanese;lp=1585
## アクセス許可の概要
– IAMリソースポリシー・関数ポリシー
– Lambdaにアクセスするための許
【AWS】AWS Batch(Fargate タイプ)の CLI コマンドメモ
# 初めに
コマンドを調べるのが大変なのでメモしておきます。
## 実行環境
– CloudShell
# 手順
:::note alert
**Important**バックスラッシュ前のスペース有無は重要です。
## 例
– オプション前行の行末は、` \` (スペース + バックスラッシュ)とすること。
**NG**
“`
aws batch create-compute-environment\ ←バックスラッシュ前にスペースが必要
–compute-environment-name demo-computing-env
“`**OK**
“`
aws batch create-compute-environment \
–compute-environment-name demo-computing-env
“`– オプションに対する値の途中の行末は、バックスラッシュ前にスペースを入れないこと。
**NG**
“`
aws batch create-compute-environment \
–compute-resourc
OpenID ConnectによるID連携をして、Lambdaにデプロイする
# やること
– OpenID ConnectによるID連携をして、Github ActionsでAWSのresourceにアクセスするのを試す成果物を作るがてら、OpenID Connect周りの理解を深めればと思います。
# OpenID Connectとは
– OpenID Connect 1.0 は、RFC6749のOAuth2.0を拡張した簡単な識別レイヤー
– OpenIDはIDトークンを発行する仕組み
– IDトークンを発行する際の登場人物は、クライアント、OpenIDプロバイダー、ユーザの3つで、
– ①クライアント→OpenIDプロバイダーにトークン発行のリクエスト
– ②OpenIDプロバイダーはユーザから認証を得る
– ③OpenIDプロバイダー→クライアントにIDトークンとアクセストークン返す
– ④クライアントはアクセストークンでユーザ情報のエンドポイントにリクエストする
– ⑤クライアントはユーザ情報のレスポンスを受け取る
– 上記でIDプロバイダーで発行したIDトークンを引き回すことで、別の場所でユーザ認証を繰り返す必要がなく、こ
【React】AWS Cognito+Amplifyを用いたログイン機能
## Reactとは
Reactとは、主にSPA (Single Page Application : Webブラウザ側でページの移動を行わず、スクリプトがサーバとの通信や画面遷移を行う方式) のUI構築で使用されているオープンソースのJavaScriptライブラリである。Facebook(現:Meta)のソフトウェアエンジニアであるJordan Walkeが開発し、その後オープンソース化した。https://reactjs.org/
Reactの記法として、JavaScriptとHTMLを組み合わせたような記法 JSX(JavaScript XML)がある。
## Reactの始め方
1. node.jsをインストールする
https://nodejs.org/ja/download/
1. 基本パッケージのインストール
“`
npm install -g create-react-app
“`
1. プロジェクトを作成
“`
create-react-app hello_world
“`
1. Develop
【AWS】Lambda関数のトリガーを同じS3にした時にハマった話
タイトルの通りです。
エラー解消のため、調査したので備忘録となります。結論
======
– AWS Step Functionsを使うhttps://aws.amazon.com/jp/step-functions/
経緯
======
– Lambda関数のトリガーでS3バケットをしていたところ、以下のエラーが表示。
“`
Configuration is ambiguously defined.
Cannot have overlapping suffixes in two rules
if the prefixes are overlapping for the same event type.
“`
Google翻訳の結果
“`
構成の定義があいまいです。
プレフィックスが同じイベントタイプで重複している場合、
2つのルールでサフィックスを重複させることはできません。
“`
つまり、同じ条件のS3トリガーを作成することができない。
この場合、AWS StepFunctionsを使うこととなる。対処法
======
色々調査した結果、以下の投稿者様の記事
【参加レポート】Amazon Personalize 入門ハンズオン
# はじめに
JAWS-UG DE&I(旧名:JAWS-UG 関西女子会)にて開催された[Amazon Personalize 入門ハンズオン](https://jawsugkgirls.doorkeeper.jp/events/147142)に参加してきました。
会場はグランフロント大阪にある[アールスリーインスティテュートさん](https://www.r3it.com/)のオフィスです!JAWS-UG DE&IのAmazon Personalize 入門ハンズオン
グランフロント大阪にあるR3さんのオフィスにお邪魔してまぁす〜〜?#jawsug #jawsugdeandi #ashibinaa pic.twitter.com/NmCLPdARpZ
— 鈴木健斗 (@k_suzuki_pnx) January 22, 2023
# Amazon Personalize 入門ハンズオン
講師はアマゾンウェブサービスジャパンの小林さん。## Amazon Personalizeの概要説明
Amazon.comやAmazon Prime Video,Amazon Musicでも使われているパーソナライゼーション。以下の観点でビジネスに貢献している。
– エンゲージメント
– 商品の発掘
– コンバージョン
– 売上ただ実際にパーソナラ
AWS Clean Rooms(プレビュー)を触ってみた
# はじめに
昨年末のre:InventでAWS Clean Roomsというサービスが発表されました。https://aws.amazon.com/jp/clean-rooms/
昨今、データクリーンルームという言葉が聞かれ始めたので、AWSはどういうサービスを提供するのか興味ありました。
そして先日プレビューが開始されました。
https://aws.amazon.com/jp/about-aws/whats-new/2023/01/aws-clean-rooms-now-available-preview/
なので触ってみた内容や、所感などを書いていきます。
まだプレビュー版であり、私自身素人ですので、判断される際は他の情報と照らし合わせたり、自身で試用して確認してください。# サービスの概要
– 「コラボレーション」という場が作れます
– コラボレーションには、AWSアカウントが参加できます
– メンバーと呼ぶようです
– 最大5メンバー
– メンバーには2種類あります
– クエリを実行して結果を受け取ることができるメンバー
React + AWS Amplifyのスタートアップ
React + AWS Amplifyのチュートリアルをメモ書き程度に書いてます
なお基本は以下記事に書かれているところ通りに進め、問題が発生したところをメモ書きしています
https://www.cresco.co.jp/blog/entry/20393/## Reactアプリ作成
– 以下コマンドでアプリを作成“`
npx create-react-app todo
“`
### アプリを立ち上げる
“`
cd todo
npm start
“`
![スクリーンショット 2023-01-22 0.00.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3117864/27000517-183c-ec1c-27ff-79bb9423c3ff.png)### アプリの止め方
「control+C」## GitHubリポジトリ作成
GitHubにてリポジトリを作成し、リポジトリにアプリケーションをpush“`
git init
git remote add origin h
AWS CDK – Identifiers
# Identifiers(識別子)
識別子は、作成されたスコープ内で一意である必要があります。
使用される識別子の種類について理解しておきます。
CloudFormation を利用したことのある方であれば、さらっと読んでおく程度で良いかと思います。Construct IDs(コンストラクト ID) のみ理解しておれば良さそうである。
## Construct IDs(コンストラクト ID)
コンストラクトをインスタンス化するときに 2 番目の引数として渡されます。
以下の例では、アプリに `MyBucket` という識別子を持つ 2 つのコンストラクトがある例です。
1 つ目は、識別子 `Stack1` を持つスタックのスコープで定義されています。
2 つ目は、識別子 `Stack2` を持つスタックのスコープで定義されています。
これらは異なるスコープで定義されているため、競合は発生せず、同じアプリ内で問題なく共存できます。“`python
from aws_cdk import App, Construct, Stack, StackProps
from
(Amplify/Cognito)ログイン画面を実装の際に’./aws-exports’を使うと後々ハマるのでベタ書きが良い。
# はじめに
IoTデバイス用のログイン画面を実装したく、Amplify+Cognito+Reactを使用した。
様々な記事を参考にして進めてみたがハマったポイントが多く、私のようにフロントに精通していない人の参考になれば幸いです。# よく紹介される方法と問題点
チュートリアルの流れとして、
“`
$ sudo npm install -g @aws-amplify/cli
$ amplify configure
“`
上記コマンドを使用して、“`
./aws-exports
.aws/credentials
“`を作成することが多いだろう。
しかし、その方法では“`./aws-exports“`が原因で後々ハマってしまう。
* GithubからAmplifyでデプロイする際に、ビルドエラーになってしまう。
* ローカルにファイルが残るので、開発環境の共有しにくい。
* どのプールと連携しているか、わかりにくい既にビルドエラーになってしまった人は下記記事を参考にしてください。
https://engineers.weddingpark.co.jp/
AWS CDK – Environment
# Environment
環境 (env) は、スタックがデプロイされる AWS アカウントと AWS リージョンを表します。
AWS CDK は、現在の AWS CLI プロファイルでデフォルトのリージョンとアカウントを選択します。
デフォルトとは異なる値のセットを指定することで、明示的に手動で環境を上書きすることができます。
# 1.作成前に AWSアカウントと AWSリージョンを決定する
AWSアカウントと AWSリージョンをハードコーディングすると、スタックは常にその特定のアカウントとリージョンにデプロイされます。
次の例は、東京リージョンと大阪リージョンに作成する例です。
“`python:app.py
#!/usr/bin/env python3import aws_cdk as cdk
from pysample.pysample_stack import PysampleStack
app = cdk.App()
env_tokyo = cdk.Environment(account=”123456789012″, region=”ap-nor
Databricks on AWSのPrivateLink環境でクロスアカウントS3アクセスに苦労した話
こちらでPrivateLink環境を構築し、
https://qiita.com/taka_yayoi/items/15426201a982e0922b5f
こちらでクロスアカウントのS3バケットにアクセスできるように設定しました。ここまででも結構な道のり。
https://qiita.com/taka_yayoi/items/e7e86c02c8dcb567c717
問題なく接続できるだろうと思ったらエラーに。
“`py:Python
display(dbutils.fs.ls(“s3a://ty-databricks-cross-account-bucket”))
“`![Screenshot 2023-01-22 at 14.18.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/51e6b37f-87ca-1a81-9372-0ab2b57d7b96.png)
“`
org.apache.hadoop.net.ConnectTimeoutException
AWSのここが便利(フリーランスエンジニアから教えてもらった使える知識)
Cloud9(クラウドナイン)
- クラウドサービスの統合開発環境(IDE)
- ブラウザからどこでもコードを編集、実行、デバッグできる。
- 環境構築の手間が省ける
- 稼働時間のみ課金されるのでお安い(為替状況にもよるが、月100時間稼働で$3くらい)
CloudFront(クラウドフロント)
- コンテンツデリバリーネットワーク(CDN)
※CDNとは:地理的分散されたサーバーを使用することで、Webコンテンツの配信を高速化する。 (関連:オリジンサーバー、エッジサーバー)S3(エススリー)
- オブジェクトストレージサービス(どこからでもデータの保存と取得ができるストレージサービス)
- HTML,CSS,imageなどを保存
- 格納容量無制限、従量課金制
Lightsail(ライトセイル)
【IoT入門】MQTTについて1から丁寧に解説
## MQTTとは何か?
MQTT(エムキューキューティーティー)は、IoT向けのOASIS標準メッセージングプロトコルです。Publish/Subscribeパターンのメッセージングにより、非同期に1対多の通信をすることが可能です。MQTTは、組み込みデバイス、センサー、産業用PLCなどのIoTおよび産業用IoT(IIoT)デバイス間のメッセージングとデータ交換など、メモリの制約が厳しかったり、ネットワーク帯域幅が限られているような環境での利用に適しています## なぜMQTTを用いるのか?
### 軽量で効率的
MQTTクライアントは非常に小さく、最小限のリソースしか必要としないため、小型のマイクロコントローラーで使用できます。MQTTメッセージのヘッダは小さく、ネットワーク帯域を最適化します(MQTTのヘッダサイズは2バイト〜とHTTPに比べるとかなり軽量になっています)### 双方向通信
MQTTでは、デバイスとクラウド、クラウドとデバイスの間でメッセージをやり取りすることができます。このため、モノのグループに対して簡単にメッセージをブロードキャストすることができます
Amazon EMRを整理してみた
# 背景・目的
Amazon ERMは使用したことありますが、どのような機能があるか仕様など細かいところを把握してないため整理します。# まとめ
– 以下の特徴があります。
– ビッグデータアプリケーション、PBスケールのデータ分析をオンプレの半分以下のコストで高速に実行できます。
– カスタマイズされたEC2クラスタ、EKS、Outposts、EMR Serverlessで実行するオプションを備えた、最新のOSSフレームワークを使用してアプリケーションを構築する。
– パフォーマンスが最適化されたOSSのAPI五感バージョンでSpark、Hive、Prestoを使用してインサイトを導き出すまでかかる時間を最大2倍高速
– EMR NotebooksとEMR Studioの使い慣れたOSSを使用してアプリケーションを簡単に開發、視覚化、デバッグできる。
– 下記のユースケースで利用できます。
– ビッグデータ分析
– スケーラブルなデータパイプラインの構築
– リアルタイムデータストリーム
– データサイエンス、機械学
APIGateway + Lambda + DynamoDB を利用したサーバレス構築ハンズオン
## はじめに
普段DynamoDBをあまり使用しないので、CFnの練習がてら構築していきたいと思います。
[前回のブログ](https://cloud5.jp/lambda-dynamodb-serverless/)では、CLIからDynamoDBに値を渡していましたが、いっそのことフロント画面から送り保存すれば、より学習が捗るかと思いまして着手してみました。といってもフロント画面などさっぱりなので、前回に引き続き学習教本として、[AWS Lambda実践ガイド 第2版 著:大澤文孝](https://www.amazon.co.jp/AWS-Lambda%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E7%AC%AC2%E7%89%88-impress-gear/dp/4295013307/ref=asc_df_4295013307/?tag=jpgo-22&linkCode=df0&hvadid=553954433678&hvpos=&hvnetw=g&hvrand=2164190274868650654&hvpone=&hvp