- 1. Terraform v1.6でTerraform testを試し、S3バケット名の確認を行った
- 2. mongoDB-shellの日本語文字化けでくっそ苦労した
- 3. APIGatewayでrobots.txtを公開する
- 4. [STEPBYSTEP]初めてAWSサービスからAmazonS3 AWS CloudFormationテンプレート作成まで
- 5. EC2 で CloudBeaver 環境を簡単に用意する
- 6. Python Lambda DynamoDB ServerlessFrameworkでAPI作ってみた(ローカル開発)
- 7. AWS Certified Cloud Practitioner体験記
- 8. AWS CloudWatch Logs のJSONログをイベントフィルタでAND検索/OR検索する構文
- 9. パブリック IPv4 アドレスの有無を確認しよう
- 10. AWSが生成AIのサービスを始めた話を聞いて触った話
- 11. ユーザー定義のコスト配分タグ
- 12. ECSバッチ起動に失敗した時にEventBridgeを使って、slackに通知を飛ばす話
- 13. AWS KMS (Key Management Service)まとめ
- 14. 動いているEC2を全部問答無用で停止するLambda
- 15. RHEL9 libmemcachedねぇぞって話
- 16. AWS ECSを使ってとりあえずnginxをデプロイしてWebブラウジングする
- 17. AWSの最新アップデートを楽しく追いかける方法
- 18. 初めてEC2のインスタンスを立ててVScodeでSSH接続してみたけどエラーに襲われた話
- 19. [AmazonLinux2023版] Webサーバ公開手順メモ
- 20. terraformでS3バケットを作成しようとしたときに起きた変なエラー
Terraform v1.6でTerraform testを試し、S3バケット名の確認を行った
# やりたいこと
・2023/08にリリースされたv1.6のTerraform testの動作を知りたい# 前提
・AWSアカウント作成済み
・AWS IAMユーザーを作成し、access_keyとsecret_keyを発行済み
・Terraformインストール済み
(v1.6であること)
・AWS CLIインストール済み
・VSCODEインストール済み
(お好みのエディターで大丈夫)
・Pythonインストール済み
(今回はpython3.9でlambadaを作ってみたいですが、極簡単なソースコードなのでバージョンどうてもいいかと思う)# 環境
“`
$ terraform -v
Terraform v1.6.0
on windows_amd64
+ provider registry.terraform.io/hashicorp/aws v5.19.0$ python -V
Python 3.9.13“`
# 構築リソース
・AWS S3# ディレクトリ構成
“`ruby:qiita.rb
root
┣━ main.tf
┣━
mongoDB-shellの日本語文字化けでくっそ苦労した
# 環境
– 移行元
– OS:Ubuntu 22.06
– DB:mongo 4.0.3
– 移行先
– OS:Amazonlinux 2
– DB:mongo 4.0.3
– クライアント
– OS:windows 10– Shell:Powershell
# 概要
– mongoDump、restoreを使ってデータベース移行を行ったら移行先のmongoShellで文字化けが発生した。
# 事象の整理
| DB | AP | ターミナル | 接続方法 |
| —— | ———— | ———— | ——– |
| 移行元 | 文字化けなし | 文字化けなし | SSH |
| 移行先 | 文字化けなし | 文字化けあり | AWS SSM |# なぜ移行元は文字化けしなかったのか
– おそらくOpenSSHの文字コードを使ってる
# なぜ移行先は文字化けしたのか
– PowerShellがshift-jisだったから# ま
APIGatewayでrobots.txtを公開する
APIGatewayからtext/plainを出力したいだけなのに、えらい苦労したのでメモ。
Lambda、APIGatewayの使い方はある程度分かっている前提です。# Lambda関数を作る
APIGatewayからrobots.txtを出力するだけのLambdaを作ります。
以下Pythonのソースコード。“`python
def lambda_handler(event, context):
return {
‘statusCode’: 200,
‘headers’: {
‘Content-Type’: ‘text/plain’
},
‘body’: “””
User-agent: *
Disallow:
“””
}
“`Pythonからはapplication/jsonが返却されるのでAPIGatewayでそれを受け取ってtext/plainに変換します
# APIGatewayの設定
ここで苦労した。新しいコンソールになって分かり
[STEPBYSTEP]初めてAWSサービスからAmazonS3 AWS CloudFormationテンプレート作成まで
今回は初心者向けにAmazon S3のAWS CloudFormationテンプレートの作成方法についてご紹介いたします。
説明と共に実際に作成する時の動画もYoutubeで配信しておりますので、ご確認いただけますと幸いです。**日本語版**
**英語版**
### テンプレートの作成手順
1. **ステップ1: CloudFormationテンプレートの基本セクションを作成**
AWS CloudFormationテンプレートはいくつかの基本セクションから構成されます。今回は、`AWSTemplateFormatVersion`, `Description`, `Parameters`, `Resources` を利用します。これらのセクションを定義することで、AWSリソースの作成と管理が行えます。2. **ステップ2: S3 Bucketのリソ
EC2 で CloudBeaver 環境を簡単に用意する
こんにちは。インサイトテクノロジーの松尾です!
みなさまデータベース接続のクライアントに DBeaver を使ってますか?私は結構使ってます。DBeaver は様々なデータベースに接続可能な無償のデータベースクライアントで、非常に便利ですよね。アプリケーションとして利用することができ、Windows PC などにインストールして使用します。
非常に便利なのですが、難点としてはPCにインストールする必要があるということです。
今回は、ブラウザから利用できる DBeaver である、CloudBeaver について、簡単に環境を用意する手順を紹介します。
ブラウザから利用するため当然アプリケーションサーバーを起動する必要があります。AWS Marketplace でも提供されておりますが、わずかながら費用が発生するのと、AWS Marketplace を利用できない場合もあると思いますので、本投稿では Amazon Linux 起動時に Docker で CloudBeaver を立ち上げる手順を紹介します。
https://aws.am
Python Lambda DynamoDB ServerlessFrameworkでAPI作ってみた(ローカル開発)
# はじめに
Python / Lambda / DynamoDB / ServerlessFramework でのAPI開発手順を記しておきます。AWSの方から「Lambda × Pythonは起動が速く(コールドスタートが起きない)相性がいい」と伺っていたので、デプロイして計測するのが楽しみです!
# 環境
– macOS Ventura
– Python 3.11.4
– ServerlessFramework 3.34.0
– npm 8.19.2
– node v18.18.0“`terminal: バージョン確認コマンド
$ python3 –version
$ python3 -m pip -V
“`# Lambda作成
## 1. 事前準備
“`terminal:
$ mkdir project-v1 #プロジェクト用ルートディレクトリ作成
$ npm install -g serverless #必要なプラグインのインストール
$ npm install –save serverless-iam-roles-per-function serve
AWS Certified Cloud Practitioner体験記
# 1. はじめに
少し前のことになりますが、今日は2023年6月に受けたAWS Certified Cloud Practitioner認定試験(CLF-C01)の勉強法や試験を受けた感想などについて書きたいと思います。ちなみに現在はCLF-C01が終了し、CLF-C02になっているようです。
これまでアカデミアとしてのキャリアを通して、GRIDなどの大規模分散型コンピューティングシステムを活用したビックデータ分析をおこなってきましたが、商用のクラウドシステムというと馴染みが薄いものでした。ただ近年はアカデミアの業界でもクラウドの導入が進んでいます。ましてやビジネスにおいては、クラウド上でのデータ分析が当たり前のように行われているため、クラウドシステムの基礎をしっかりと理解することは、データサイエンティストにとっても必須であると考え、資格を取っておこうと考えました。このような目的であれば、AWSでなくMicrosoft AzureやGoogle Cloud Platformでもよいかもしれませんが、AWSのクラウドシェアがトップであるため、AWSの資格を取られている方が多い気がし
AWS CloudWatch Logs のJSONログをイベントフィルタでAND検索/OR検索する構文
# AND検索
こんな風に `&&` で繋げばOK
“`
{ $.key1 = “xxx” && $.key2 = “yyy” }
“`# OR検索
`||` でつなげばOK
“`
{ $.key1 = “xxx” || $.key2 = “yyy” }
“`# チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ
パブリック IPv4 アドレスの有無を確認しよう
2023年7月30日にAWSから、パブリックIPv4アドレスに対して、新しい料金体系が発表されました。
https://aws.amazon.com/jp/blogs/news/new-aws-public-ipv4-address-charge-public-ip-insights/簡単に言ってしまえば、AWS上で利用しているすべてのパブリック IPv4 アドレスに対して課金しますよ!ということです。
これまで 利用中のElastic IPアドレスや通常のパブリックIPv4アドレスであれば、課金の対象外でした。今回の発表で設定された課金額は 1つのパブリック IPv4 アドレスあたり、 0.005USD/時間です。。
執筆時の2023年9月29日に確認した為替レートは、148.73円/USD なので、1カ月を30日として計算すると・・・**0.005 x 30 x 24 x 148.73 = 535.428 円!!**
パブリックIPアドレスが1つあるだけで、 535.428 円利用額が上がるということです。
もちろん、システム上パブリックIPv4アドレスを使わないと
AWSが生成AIのサービスを始めた話を聞いて触った話
# はじめに
Amazon Bedrockは、Amazon が AWS で提供しているフルマネージドの AI サービスで、Amazon 自社開発の Titan モデルのほか、 Anthropic 社の Claude や Stability AI 社の Stable Diffusion など様々なモデルを選んで利用できるのが特徴です。今年4月にプレビューとして一部企業向けに公開されたあと、9月末には一般向けにサービスが開始されました。そして、10月3日に Amazon が「日本企業のビジネスニーズに応える生成系 AI」と題し[日本国内で初めて Bedrock に関するセミナーを開催しました。](https://generativeai-seminar-oct-inperson.splashthat.com/)
今回、そちらのセミナーに参加する機会がありましたので、発表内容をまとめると共に、Bedrockを試しに使った感想を書いておこうと思います。
# セミナーの発表内容まとめ
セミナーでは初めに、AmazonよりBedrockの機能紹介や新情報が発表されました。目玉となったのは
ユーザー定義のコスト配分タグ
##タグによってコスト管理する
###手順
①管理したいリソースにタグを付与する
②Billingコンソールにてタグをアクティブ化する
③Cost Explorerでタグごとにコスト管理できる*アクティブ化してからCost Explorerに反映されるまで最大24時間かかる
###参照
https://aws.amazon.com/jp/blogs/news/cost-allocation-tag/
ECSバッチ起動に失敗した時にEventBridgeを使って、slackに通知を飛ばす話
# 初めに
私が担当している案件ではECSを使って、バッチ処理を動かしているのですが、ある日、バッチ処理が動かずに、次の日に原因を調査していると、CloudTrailのイベントレコードに以下のようなメッセージがありました。“`
Capacity is unavailable at this time. Please try again later or in a different availability zone
“`直訳すると、
**現時点で容量オーバー。しばらくしてから、または別のアベイラビリティーゾーンでもう一度お試してね。**
ってことなので、対策としてはこのメッセージが出た時に手動でバッチ処理を動かそうということになりました。
しかし、このメッセージが出ていることをそもそも気づけなかったら、そもそも手動でも動かせないよってことでその時の対策をご紹介します。# 構成
本チャプター下部添付画像のような構成を取りました。
ECSでバッチ処理を動かして、転けた時にCloudTrailでイベントを記録します。なお、ECSはCloudTrailと統合されている
AWS KMS (Key Management Service)まとめ
# KMSの概要
*AWS KMS (Key Management Service)*
データ暗号化に利用するキーを作成・管理を行うためのマネージドサービス。
CMK(マスターキー)と呼ばれる鍵が存在する。
この(CMK)の可用性は99.999999999%(イレブンナイン)
# KMSの仕組み
## エンベロープ暗号化
データを暗号化する鍵(データキー)とデータを暗号化する鍵を暗号化する鍵(マスターキー)を利用する方式。データ暗号化用の鍵をさらに暗号化するので、セキュリティが強化される。
KMS で使用される鍵
– CMK(Customer Master Key)
– データキーを暗号化するマスターキー
– AWSが管理する[HSM](https://e-words.jp/w/HSM.html)内でマスターキーも暗号化される
– CDK(Customer Data Key)
– データを暗号化するキー
– ユーザーが都度生成する## CMK の種類
– カスタマー管理CMK
– AWSユーザー側で作成、管理している
– アプリ内で使用するデータなどの暗号化に使用
動いているEC2を全部問答無用で停止するLambda
## さくっとコピペでどうぞ
“`python:python
import json
import boto3client = boto3.client(‘ec2’)
def lambda_handler(event, context):
response = client.describe_instances(
Filters=[
{
‘Name’: ‘instance-state-code’,
‘Values’: [
’16’,
]
},
]
)
targetInstances = []
for i in response[‘Reservations’]:
targetInstances.append(i[‘Instances’][0][‘InstanceId’])if not targetI
RHEL9 libmemcachedねぇぞって話
# pgpool-II入れたい
“`bash:bash/terminal
[ec2-user@ip-xxx-xx-xx-xx ~]$ sudo dnf install pgpool*
Updating Subscription Management repositories.
Unable to read consumer identityThis system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 0:11:40 ago on Wed 04 Oct 2023 03:46:29 PM UTC.
Error:
Problem 1: cannot install the best candidate for the job
– nothing provides libmemcached needed by pgpool-II-4.4.2-1.rhel9.x86_64
AWS ECSを使ってとりあえずnginxをデプロイしてWebブラウジングする
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。今回はAWSのコンテナサービスであるECSを見よう見まねで使用してみたいと思います。
具体的にはECSでnginxコンテナをデプロイして、Webブラウザでアクセスしてみたいと思います。# 用語
## AWS ECS
Elastic Container Serviceの略。
説明は公式に委ねますが、AWS側でデプロイとかスケーリングとか色々マネージングしてくれる便利なやつ位のイメージしかありません。今後頭の中のイメージを具体化していけば良いと思っています。>コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを容易にするフルマネージドコンテナオーケストレーションサービスです。アプリケーションと必要なリソースを記述するだけで、Amazon ECS が柔軟なコンピューティングオプションで、アプリケーションを起動、モニタリング、スケーリングし、アプリケーションが必要とする他の AWS サポートサービスと自動的に統合します。カスタムのスケーリングルールやキャパシティルールの作成などのシステムオペレー
AWSの最新アップデートを楽しく追いかける方法
クラウドサービスのAWS、毎日のように多数の機能アップデートがあり、追いかけるの大変ですよね!
https://aws.amazon.com/jp/new/
# そもそも最新情報なんてずっと追わなくてよくない?
そんなことないんです! アップデートを毎週追っているとメリットも多数。
– 常に最新機能に詳しくなれる。業務にも生きる
– 最新情報をきっかけに普段触れていないサービスにも詳しくなってくる
– 同僚やコミュニティの仲間と毎日ワイワイ盛り上がれる。大きなアプデ時はお祭り!# アップデートってどこを見ればいいの?
### What’s New at AWS
https://aws.amazon.com/new/
日本語環境でアクセスすると日本語ページにリダイレクトされると思います。
残念ながら本当に最新のアップデートは英語でしか出ておらず、2週間ほど経ってから日本語版になっています。なので最新の英語What’s Newを見たい場合、ページ内の言語切り替えを「English」にしてから確認しましょう!また、有志が運営している非公式のTwitter版もあります
初めてEC2のインスタンスを立ててVScodeでSSH接続してみたけどエラーに襲われた話
# はじめに
– エンジニア歴半年とちょっとの備忘録
– AWSのEC2を使いたかった# やっていく
### EC2を選択
![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.08.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/d0649f1e-8226-3680-e533-0d22fd8e32f4.png)### インスタンスを起動を選択
![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.07.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/0d0ffb29-1da6-a86a-
[AmazonLinux2023版] Webサーバ公開手順メモ
最近AmazonLinux2023でちょっとしたWebサーバを稼働させたので、作業を残しておく。
– 単一のEC2、m3.smallなど、とにかくSpecの小さいインスタンスで動作させる
– 非エンジニアがWebサーバを見に行くときに困らないよう、信頼済み証明書を入手
– ある程度安定して動くよう自サーバ内で死活監視。+αでCloudWatchEventでインスタンス自体の再起動設定もいれとく# セキュリティグループの設定
443,80を開けておく# Apache install
~~~
sudo su –
yum update
yum install httpdecho “test” > /var/www/html/index.html
systemctl restart httpd
~~~
ブラウザで確認(httpで)# SSL対応
– 自前でserver_keyを生成する場合、自己署名となってしまい、ブラウザアクセス時に「信頼できないサイト」と表示されてしまう。
– フリーでSSL証明書を入手できる手段として、letsencryptを利用する
terraformでS3バケットを作成しようとしたときに起きた変なエラー
## エラー内容
“`
│ Error: creating Amazon S3 (Simple Storage) Bucket (backetname): AuthorizationHeaderMalformed: The authorization header is malformed; the region ‘us-east-1’ is wrong; expecting ‘us-east-2’
│ status code: 400, request id: xxxxx, host id:xxxxx│
│ with module.s3.aws_s3_bucket.backetname,
│ on module\s3\main.tf line 1, in resource “aws_s3_bucket” “backet_name”:
│ 1: resource “aws_s3_bucket” “backet_name” {
“`## 原因
同名のバケットを消した後にterraformでデプロイしようとしたから。## 対策
1. 別名で作る。
2.