- 1. クラウドとIaaS、PaaS、SaaS
- 2. AWS Route53+ACM+CloudFront+S3で静的Webサイトの構築
- 3. 【AWS】Lambdaで「StartQuery へのリクエスト中にエラーが発生しました」と表示された場合
- 4. PythonでAWS CLIコマンド実行の練習 (boto3編)
- 5. データ基盤学習必見 クラウドデータレイク(OREILLY出版)早速読んでみた 2024/5/17
- 6. Amazon Route53 でドメインを登録してみた
- 7. 【AWS SageMaker】SageMaker Ground Truthで手持ちの画像をラベリングしてみた
- 8. Amplify Gen2がGAしたので再Quickstartしてみた
- 9. EC2とRDSでWeb環境構築するよ!(第4回:RDS編)
- 10. マルチアーキテクチャーでのコンテナデプロイワークショップを受けてきて
- 11. Amazon BedrockからClaudeを使う
- 12. S3書き込みするLambda関数のDockerイメージを作成しEventBridgeで定刻実行させる「サーバレスバッチ」をTerraformで自動構築する
- 13. AWSセレクトパートナーへの道のり ~BeautyTech企業を目指して~
- 14. Docker内で「ProfileNotFound(profile=profile_name) botocore.exceptions.ProfileNotFound: The config profile (xxxxx) could not be found」が出た時の対処法
- 15. Amazon DataZone のアカウント連携してデータ公開
- 16. EC2のWindowsでPythonが認識されない
- 17. 【AWS】S3のストレージクラスを変更してコストカットする
- 18. [ECS] CPUアーキテクチャ違いでクラスターのタスクが強制停止になってしまう件について。
- 19. スタートアップ/自社開発企業のWeb&データインフラ基盤でありそうな構成
- 20. ECSについて理解した事をまとめた
クラウドとIaaS、PaaS、SaaS
## IaaS、PaaS、SaaSって何さ
#### ざっくり言うと…
– クラウドサービスの利用形態の分類
– IaaS: Infrastructure as a Service
– PaaS: Platform as a Service
– SaaS: Software as a Service– IaaSはハードウェアの保守管理を中心に行い、PaaSは開発環境を提供する為のミドルウェア、サーバOSまでを運用管理し、SaaSはエンドユーザが利用するアプリケーションまで運用管理をする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765079/3d3bfb56-f5fc-d3a6-94fa-b63cec731d4a.png)
#### そもそもクラウドって何
クラウドを話す前に知っておく必要があるのが「オンプレミス」というもの。
オンプレミスって?
>オンプレミスとは、サーバーなどのハードウェアやIT機器、ファイルソフトなどのソフトウェアを自社で保
AWS Route53+ACM+CloudFront+S3で静的Webサイトの構築
## 今回の意義
AWSへの知見を深める
代表的なサービスに触れるため## 使用サービス
【AWS】
・AWS Certificate Manager
・Amazon CloudFront
・Amazon S3
・Amazon Route53
・AWS CLI(VSCODE)## 参考資料
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-StaticWebsiteHosting-2022-confirmation_254.html## 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3557022/307886cd-f6da-9a93-b043-435a71468d31.png)## S3の設定
・バケットの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3557022/40080
【AWS】Lambdaで「StartQuery へのリクエスト中にエラーが発生しました」と表示された場合
# 概要
AWS LambdaをCloudformationで作成した際、
「StartQuery へのリクエスト中にエラーが発生しました」
というエラーに遭遇しました。原因と解決法を紹介します。
# エラー概要
以下でCF実行。
“`yaml
LambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: ‘2012-10-17’
Statement:
–
Effect: Allow
Principal:
Service:
– sns.amazonaws.com
– lambda.amazonaws.com
Action:
– sts:AssumeRole
Path: “/”
R
PythonでAWS CLIコマンド実行の練習 (boto3編)
# 目的
https://qiita.com/sincere_networker/items/acc5f86244fe5e50e290上記ではsubprocess.runでAWS CLIコマンドを実行していたが、boto3に変更してみる
https://docs.aws.amazon.com/ja_jp/pythonsdk/
# Pythonスクリプトの作成
直近3ヶ月間の最大スループット値(In/Out)を取得する
“`python:get_ec2_throughput_boto3.py
import boto3
import json
import time
from datetime import datetime, timedeltadef cloudwatch_get_metric(metric_name):
# boto3クライアントを作成
cloudwatch = boto3.client(‘cloudwatch’)# CloudWatchからメトリクスデータを取得
response = cloudwatch.get_me
データ基盤学習必見 クラウドデータレイク(OREILLY出版)早速読んでみた 2024/5/17
# 1.前置き
みなさんこんにちは、私は日頃データ基盤の構築を行なっております。
近年、オライリー者からデータ基盤の本が多数出てきていること、本当に嬉しく思います。
さて、2024年5月17日にそのオライリー社から新たに
クラウドデータレイクという本が出版されました今回はその本の感想をしていきたいと思います。
https://www.oreilly.co.jp/books/9784814400676/
解説は思ったのですが、内容がかなり網羅的に記載されている分、記事にすると余計抽象的になってしまい記事の内容を考え中です。
# 2.まずはこの本の感想
## 現場のエンジニアにとってはちょっと浅いと感じるかもしれない。
これが一番の感想でした。
この本の本当のターゲットは恐らく、
『これからデータ基盤を構築したいけど、概略もよくわからない』
『データレイクってなに?』
『なんでデータレイクにデータを入れる必要があるの?』
これがあまり理解できていない方に対しての本なのかなと思います。また、最近機械学習などの流行から
『データレイクハウス』
という言葉が出てきていると
Amazon Route53 でドメインを登録してみた
# 背景・目的
以前、[Amazon Route 53を整理してみた](https://qiita.com/zumax/items/f9b617d3d8df6ff1d4ab)や、[Amazon Route 53 Resolverを整理してみた](https://qiita.com/zumax/items/715de9f932f07a7ffceb)では、Route 53関連の知識について整理しました。今回は、実際にRoute 53を使ってドメインを登録してみます。
# まとめ
下記に特徴を整理します
|特徴|説明|
|:–|:–|
|Route 53 プロファイル|・DNS関連のRoute 53の設定を多くのVPC、AWSアカウントに適用して管理が可能
・プロファイルを使用すると、多数のVPCのDNS設定を1つのVPCで管理するように、簡単に管理可能|
|プロファイルに関連付けることができるリソース|・プライベートホストゾーンとそこで指定された設定
・Route 53 リゾルバルール
・DNS ファイアウォール ルールグループ
|VPC設定の一部は、プロフ
【AWS SageMaker】SageMaker Ground Truthで手持ちの画像をラベリングしてみた
# 背景
AWS SageMakerについて勉強していたところ、SageMaker Ground Truthは画像にラベリングを行うものとあったので、実際に触ってみました。# 試した事(概要)
漫画家の矢吹健太郎先生の作品である「ToLoveる-ダークネス-」のヒロインキャラクター画像に対して、キャラクター名をラベリングしてみました。例えば、
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779844/1b78b8e5-64e3-b359-3d0e-622808bfa127.png)
これは「ヤミ」のラベルを付けて、
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779844/425398c7-50e3-e046-8987-51c50af73e7b.png)
これは「モモ」のラベルを付けてみる形です。# 試した事(詳細)
## 1. S3にラベリングを行いたい画像をアップロード
!
Amplify Gen2がGAしたので再Quickstartしてみた
Amplify Gen2がこの5月にGAしました。
それに際してドキュメントのQuickstartの内容も若干変化していたので、もう一回Quickstartしてみました。
参考; [Amplify Gen2ドキュメント](https://docs.amplify.aws/react/start/quickstart/)
これに続いてStorage機能を試す予定です。# フルスタックアプリをAWSにデプロイする
デプロイはこんな流れです。
1. リポジトリの作成
1. 最初のアプリをデプロイ
1. アプリを確認する
## リポジトリの作成
ドキュメントの”Create repository from template”をクリックします。
![画像](https://d39oe90ddnxn3x.cloudfront.net/01_AmplifyGen2_ReQuickStart/01_AmplifyGen2_ReQuickStart01.png )
クリックするとGitHubのリポジトリ作成画面になります。説明とリポジトリ名はあらかじめ記入してあります。
![画像](https://
EC2とRDSでWeb環境構築するよ!(第4回:RDS編)
EC2とRDSのWeb環境構築の第4回目です。
第3回:Route53編はこちら
https://qiita.com/kikurage2030/items/46154965781b49b93e0d## サービスの全体象
作りたいサービスの概要はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/00cd9bdd-7272-b7c8-213d-616e17591a30.png)EC2にWebサーバを立ててPHPのプログラムがMySQLにアクセスしてテーブルの情報を表示する画面を作ります。
いわゆる一般的なWebシステムの構成でWebサーバはPublicサブネットに公開し、DBサーバはPrivateサブネットで冗長構成としてEC2のみのアクセスを許可する制御とします。また独自ドメインを取得してDNSでの名前解決も行えるようにします。このシリーズで取り組む内容は
第1回:VPC・サブネット周りの作業
第2回:EC2の構築
第3回:Route53の登録
マルチアーキテクチャーでのコンテナデプロイワークショップを受けてきて
# 経緯
会社の人がGravitonがこの後重要になってくるからGraviton勉強してきてとAWSのアーキテクトの人にお願いした結果、
このワークショップを案内されて受けてきました。受ける前の私
– GravitonってEC2みたいなAWSのサービスか何かか?って認識
– マルチアーキテクトって何がいいのか、流行ってるのかなでてくる用語すらわかってない何もわかってない状態がスタート時点だった。
# Gravitonからマルチアーキテクトの必要性について
## Gravitonとは
GravitonはAmazonが設計したarmベースのプロセッサ
AWSのサービスで最適化されるように設計してるそう。Appleが独自のプロセッサを作ったりしてるように
Amazonも他社に振り回される要素を減らしたいので、推してる。
てことは、Intelのx86系よりGravitonを搭載してるインスタンスの方を安く、性能もでるようになっていきそう。
使える状態にしていった方が受けれる恩恵はありそうである。詳細は以下の資料に記載してあります。
[https://pages.awsclou
Amazon BedrockからClaudeを使う
# 業務で使えるAIチャットボットを立ち上げたい。
世の中に大規模言語モデル(LLM)を利用する事例が増えてくるにつれ、社内でも生成AIを使って問い合わせ回答のメールテンプレートを作ったりプログラムコードの生成とかができるような環境を作って生産性を上げようということでRAG環境の構築を始めた。
AWSのドキュメントやワークショップ環境を参考にしながら進めつつ、いったん想定としてはSlackからSlackアプリに質問チャットするのをトリガーとして【Slack Bolt(JS) → Lambda → Bedrock】の流れで構築してみようとしている。
まずはいったんAWS SDKからbedrockを使う土台を作るところから始めたので、その時のメモ。
# まずは必要なモジュールをインストール
`npm install @aws-sdk/client-bedrock-runtime`
※ credentialを使った認証が必要な場合は`@aws-sdk/credential-providers`も一緒に。
# プログラム(Node.js 20.xランタイムで実装)
### Be
S3書き込みするLambda関数のDockerイメージを作成しEventBridgeで定刻実行させる「サーバレスバッチ」をTerraformで自動構築する
忙しくてなかなか時間取れない( ; ; )
掲題のようなニーズってよくありそうなので公開しておきます。
# 概要
https://github.com/yagrush/serverless-scheduled-batch-by-terraform
terraformで以下を自動構築するための一式。
* tfstate管理をS3, tfstate_lock管理をDynamoDBに任せる(のに必要な環境を作成する)
* S3バケットを作る(こちらは業務処理用途のバケット)
* ECRにlambdaのdockerイメージを登録する
* S3にオブジェクトを書き込むlambda関数をdockerイメージから作成する
* EventBridgeで毎分lambda関数を実行するようスケジューリングするちなみにlambda関数の中身は `lambda/foo` 以下にpythonプログラム一式があります。
そちらをいじる場合は `lambda/foo` をワークディレクトリとしてVSCodeなどで開いて作業して下さい。# 自分が試した環境(&必要なソフトウェア、設定)
* M2,
AWSセレクトパートナーへの道のり ~BeautyTech企業を目指して~
# はじめに
弊社はCCoEの活動としまして2024年2月22日に[APNセレクトパートナーに認定](
https://www.po-holdings.co.jp/news/pdf/20240405_topics.pdf)されました!参画経緯は弊社エンジニア採用サイトにて詳しくお話しておりますのでぜひご覧ください:sparkles:
https://engineer.po-holdings.co.jp/articles/529/
当記事では、レジスタードからセレクトパートナーになるまでに行ったことを紹介します!
パートナーへの参画を検討されている皆様の参考になれば幸いです:relaxed:# APNとは?
AWSパートナーネットワークは、AWS上の開発や構築経験を持つ企業を対象に世界規模で展開しているパートナープログラムのグローバルコミュニティです。
このネットワークには、200を超える国々から130,000社を超えるパートナーが参加しています。https://aws.amazon.com/jp/partners/programs/
昨年AWS re:Inven
Docker内で「ProfileNotFound(profile=profile_name) botocore.exceptions.ProfileNotFound: The config profile (xxxxx) could not be found」が出た時の対処法
## 概要
ローカルで起動したコンテナ内からboto3を使用しようとしたら、表題のようにプロファイルが存在しないエラーが出て、少しハマったので、記録として残しておく。
## ハマった流れ
ローカル環境でDynamodbローカルを使用しようと思い、Dockerを構築した。
コンテナの起動がうまくいき、Dynamodb Adminなどにもアクセスできたから、「よし、boto3でDynamodbにCreateTableしてみよう」と思い、boto3のsessionを下記のとおり作成した。
“`python
session = boto3.session.Session(profile_name=settings.AWS_PROFILE)
“`そしたら、Dockerに怒られてしまった。
“`sh
raise ProfileNotFound(profile=profile_name) botocore.exceptions.ProfileNotFound: The config profile (xxxxx) could not be found
“`エラー内容を見ると、
Amazon DataZone のアカウント連携してデータ公開
Amazon DataZone における複数アカウントの関連付けを行った上で、ポータル内でデータ共有する流れを試してみました。(備忘録メモとしての記事となります。)
# Amazon DataZoneとは
Amazon DataZoneは、AWS、オンプレミス、サードパーティのソースに保存されたデータをカタログ化、検索、共有、管理するためのデータ管理サービスです。
Amazon DataZoneを使用して、組織間のデータアクセスを管理できます。
データのパブリッシュとサブスクライブのワークフローを提供しているので、これにより、データプロデューサーはアセットを、ドメイン内にデータカタログとして公開できます。
そして、データコンシューマーは、サブスクライプフローを通したアクセス制御メカニズムによって、カタログにあるデータにアクセスできるようになります。
Amazon DataZone では、さまざまなデータへのアクセス制御を一元化できるため、誰がどのデータをどのような目的で使用しているかを容易に確認することができます。あともう1つ、Amazon DataZoneが支援するユ
EC2のWindowsでPythonが認識されない
# はじめに
こんにちは、ユーゴです。MacでPythonをexe化したく、Windowsの環境を用意するために、AWSのEC2でWindowsのサーバーを立てて、そこから色々とやっていました。その時に、Pythonをダウンロードしてもうまく認識されなかったので、解決策を紹介します。# 環境
EC2側の環境は、以下の通りです。
|項目|詳細|
|:-:|:-:|
|インスタンスタイプ|t2.micro|
|プロセッサ|Intel(R) Xeon(R)|
|システムタイプ|64-bit operating system, x64-based processor|
|エディション|Windows Serer 2022 Datacenter|# 課題
Pythonをインストールしたが、pythonコマンドが認識されない。“`bash
python -V
“`“`
‘python’ is not recognized as an internal or external command,
operable program or batch file.
“`# 解決策
【AWS】S3のストレージクラスを変更してコストカットする
## はじめに
AWSのS3のストレージクラスはデフォルトではスタンダードが使用されています。ストレージクラスを変更することでコスト削減が期待できるため、今回はその変更について説明します。## S3 ストレージクラスとは
データの保管場所をリビングの棚にするか、外の倉庫の奥にするかで取り出しやすさとコストが変わりますよってやつです。データのアクセス頻度やユースケースに応じてコストを最適化するためのものです。アクセス頻度が高いデータは高速に返すことができ、アクセス頻度が低いデータはアーカイブして取り出しに時間がかかりますが保管料を抑えることができます。
## Intellijent Tiering(インテリジェントティアリング)
ほんの少しの管理料金を払うことで、殆ど使わないデータを外の倉庫にしまってくれてコストを下げられるサービスです。しかも取り出し時間はスタンダード(ミリ秒)と変わらずに利用できます。使う頻度が高くなったらリビングの棚に戻してくれます。https://aws.amazon.com/jp/s3/storage-classes/intelligent-ti
[ECS] CPUアーキテクチャ違いでクラスターのタスクが強制停止になってしまう件について。
# 目的
CPUアーキテクチャの違いを解決し、タスクが強制停止されないようにする# 前提
– ECRにdocker イメージプッシュ済み
– タスク定義作成済み# タスクが強制停止になってしまう?!
タスク定義を作成後、クラスターでタスクを起動設定しました
ただ、タスクがいつまでも実行中になりません
タスクのログを確認すると以下のようにエラーが出ています“`
exec format error
“`![タスクログ___Elastic_Container_Service___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515002/a1688c9f-7c69-de1b-2e0c-d2763b2d82fc.png)
少し時間がタスクが停止してしまいました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515002/83876dd2-cbfb-34c
スタートアップ/自社開発企業のWeb&データインフラ基盤でありそうな構成
# はじめに
スタートアップや自社開発企業でインフラ環境を0から構築する際、よくある構成を列挙してみました。
※この記事は個人の見解に基づいています。もし偏見があるように感じられたら、申し訳ございません。
※クラウドは、AWS前提とさせてください。# 環境構成
dev, prod用のAWSアカウントが必要なので、二つあるといいかなと思いました。
理想は、金銭的に余裕があればですが、stg用のアカウントも欲しいです。# IaC
Terraformが使いやすく、いいかなと思いました。
手動で実行した方が早いので、スキルさえあればそんなにヒューマンエラーが発生するものでもないです。
そのため、最初のうちは無理してGitHub Actionsなど使って自動化する必要はないかなと思ってます。# コンテナリポジトリ
ECRがいいかなと思いました。
タグはlatestで管理せずに、GitHub ActionsのHash値で設定することで、障害対策やロールバックがしやすくなります。# フロントサーバー
静的サイトやSEOを検討しない構成であればS3+CloudFront、SSRやSEO
ECSについて理解した事をまとめた
# 概要
ECSの基本的な概念を理解していなかったので、自分なりにまとめてみました。# ECS(Amazon Elastic Container Service)の特徴
– ECSは、コンテナ化されたアプリケーションの管理・運用を自動化する為の技術。この技術の事を**コンテナオーケストレーション**と言う
– 他のAWSサービスと連携する事で、コンテナを使用した大規模なサービスの構築が容易
– フルマネージドでコンテナを管理してくれる## AWS上でのコンテナ実行における選択肢
コンテナオーケストレーションは、「**コントロールプレーン**」と「**データプレーン**」という2つの概念から成り立っている**コントロールプレーン** : コンテナを管理する為のサービス
– **ECS**
– **EKS**ECS、EKSには、オーケストレータと言う機能が備わっており、この機能でコンテナの管理を行なっている