- 1. CloudFrontのキャッシュ削除をCLIでやる手順
- 2. golangとAWS Cognitoで認証機能を実装してみた
- 3. AWS CLI の使い方メモ(windows)
- 4. 現役インフラエンジニアがAWS Certified Cloud Practitioner(CLF-C01) を受けた話
- 5. AWSハンズオン_1_IAM1_EC2からS3へアクセスするロールを作って、接続する
- 6. [CDK pipelines]同一アカウント&同一リージョンに環境の数だけcdk pipelinesを実装する方法
- 7. AWSソリューションアーキテクトアソシエイト忘備録(暫定11月分)
- 8. 「ついで」に管理してたインフラに対する気付きを殴り書き
- 9. 「手軽に、身軽に、行きたいお店」が見つかるサービスを作った話(ハッカソン参加レポート)
- 10. 【Rails】Carrierwaveを用いてAWSのS3にPDFのアップロードとダウンロードを可能にする。
- 11. 初心者エンジニアが『Hello, World!をサーバーレスで実行する』公式チュートリアルやってみた。
- 12. コンタクト追跡レコード(CTR)のFirehose~S3~経由のデータ連携 (後編)
- 13. 金食い虫のglueエンドポイントの監視の仕組みを作った話
- 14. S3のインターフェース型エンドポイントとゲートウェイ型エンドポイントの違いと使い方について
- 15. [AWS Lambda Powertools Python]ログに実行ファイル名を含める
- 16. Athena Query Result Reuseを試してみた
- 17. ARM DevSummit 2022 Quick Note
- 18. 【オンプレからクラウド移行】3つのVPCをTransit GatewayでつないでPingさせてみた【AWS】
- 19. S3の特定プレフィックス以下のファイル名をBashの配列に格納するワンライナー
- 20. バースト可能インスタンスの損益分岐点について
CloudFrontのキャッシュ削除をCLIでやる手順
CloudFrontのキャッシュ削除をCLIでやる手順をメモ
## 手順
“`bash
# CloudFrontのディストリビューションIDを入手
aws cloudfront list-distributions –profile {profile} | jq ‘.DistributionList.Items[] | .Id + ” ” + .Aliases.Items[0]’ -r
# 希望のディストリビューションIDとキャッシュ削除するパスを指定して作成
aws cloudfront create-invalidation –distribution-id {distribution id} –paths ‘{キャッシュ削除したいパス}’ –profile {profile}
# キャッシュ削除結果を確認、前のコマンドンの結果のjson Invalidation.Id を {invalidation id} に指定する
aws cloudfront get-invalidation –id {invalidateion id} –distribution-id
golangとAWS Cognitoで認証機能を実装してみた
# 環境について
## Cognitoへのアクセス準備
Cognitoへ接続するためには
`aws_access_key_id`
`aws_secret_access_key`
がそれぞれ必要なので、[AWS SDK for Go](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#creating-the-credentials-file)を見て下記のファイルを作成します。
“`text:credentials
[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“`
それぞれのKeyについてはIAMでCognitoへのアクセス権限を持ったユーザーを作成すると発行される。上記で用意したDockerfileにコンテナ内へコピーするコマンドを追加
“`docker:Dokerfile
〜略〜
#
AWS CLI の使い方メモ(windows)
# インストール方法
1. AWS 公式から [AWS CLI MSI インストーラ](https://awscli.amazonaws.com/AWSCLIV2.msi) をダウンロード
1. ダウンロードしたインストーラを実行して端末にインストールする
1. インストール後にコマンドプロンプトで以下を実行し、インストールできたか確認する
“`
$ aws –version
aws-cli/2.8.10 Python/3.9.11 Windows/10 exe/AMD64 prompt/off
“`
# 設定
以下の方法でユーザ情報を設定する
“`
$ aws configure
AWS Access Key ID [None]: {アクセスキー}
AWS Secret Access Key [None]: {シークレットアクセスキー}
Default region name [None]: ap-northeast-1
Default output format [None]: json
“`
# 使い方
* 指定したインスタンスIDで取得できるメトリクスの一覧を表示
`
現役インフラエンジニアがAWS Certified Cloud Practitioner(CLF-C01) を受けた話
# きっかけ
急に受けてみたくなったので受けてみました。
さらっと合格できたので社内/社外向け備忘録レビューを書きます。# 受けた人のスペック
受けた人はこんなスペックです。
2-3時間程度勉強したら合格しました。– 新卒2年目インフラ/NWエンジニア
– おうちでESXiやルータを愛でている
– AWSの実務経験1年
– 高可用性のあるWebインフラをつくったことがある
– DirectConnectやDirectryService、ClientVPNも触ったことある# 受験に必要なこと
– 試験をピアソンVUEで予約すること
これ一択です。後に引けなくなりますし1か月後くらいまでできるのでお勧めです。
# 思ったこと(個人の感想)
AWS用語クイズのような内容でしたがAWSをお客様に提案していく上ではとても重要な資格に感じました。
クラウドを一緒に提案するプランナーさんが持っているととても嬉しいなと思いました。
大学生の方はITパスポートと一緒に持っておくといいのかなと思いました。# 思ったこと(試験内容)
## できたこと
EC2
AWSハンズオン_1_IAM1_EC2からS3へアクセスするロールを作って、接続する
AWSの初心者のさとしです
AWSの現場仕事を触れるチャンスが全くないです
趣味として、ハンズオンする形で勉強メモを取ります
ご覧になったみんなさんにお役に立てればうれしいです
※:間違うところがあれば、ご指摘していただければ幸いですEC2からS3へアクセスするロールを作る手順は下記です
1,S3へアクセスポリシーを作る
2,ロールを作る(1のポリシー)
3,EC2を起動して、ロールを付与する
4,teraTermでEC2へ接続して、S3を接続するそれでは、始まります
1,S3へアクセスポリシーを作る
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/f8afdd9f-013d-336e-8f12-960ae3e1939f.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/f30e5859-256a-6e58-59ca-791440
[CDK pipelines]同一アカウント&同一リージョンに環境の数だけcdk pipelinesを実装する方法
# はじめに
複数人でのCDK開発を進める上でcdk pipelinesは非常に便利ですが、
**同一アカウント&同一リージョン上で環境別のcdk pipelinesを走らせる**といった要件で検討した際に– gitのブランチ運用
– 環境変数の定義方法
– cdk pipelinesを動的に生成する為のスタック定義方法等々、運用上考慮した点や工夫した点があった為、実際の構築例を紹介する記事となります。
## 対象
– 環境別(dev、test等)のcdk pipelinesを構築しようとお考えの方
– cdk内の環境変数を使いまわす方法を模索中の方## 検証環境
cdk version
2.50.0 (build 4c11af6)
node -v
v18.12.1
tsc -v
Version 4.8.4## ゴール
今回は`test1`、`test2`という環境用のcdk pipelinesを構築する想定です。
▼実際に作成したpipeline
![image.png](https://qiita-image-store.s3.ap-northeast-1
AWSソリューションアーキテクトアソシエイト忘備録(暫定11月分)
目的として
AWSソリューションアーキテクトアソシエイトの資格取得のため、また、知識を蓄えて案件参画時に活かせるようにしたい!!
ということで、いつでも見返せるように以下にまとめる(量が多いため検索して該当の部分を参照できることをひとまず目的とする)# 複数リージョンのS3バケット上にデータを保持し、それらのデータをバージョン管理するためのソリューション
⇒複数のリージョンでバージョン管理を行うS3バケットをそれぞれ作成してリージョン間のレプリケーションを有効にする# 人為的なミスが原因でファイルを削除してしまった場合にどのような方法で復旧するかのソリューション
⇒S3には過去の履歴を保持しておくバージョニング機能があるため有効にしておくことにより古いバージョンのファイルも復元可能であり最適解となる# オンプレミスシステムからクラウドシステムへのデータバックアップに関するソリューション
⇒StorageGatewayのファイルゲートウェイの利用によりオンプレミス環境にソフトウェアアプライアンスという形でVMを導入することでNFSやSMBプロトコルを使ってS3
「ついで」に管理してたインフラに対する気付きを殴り書き
## 経緯
新卒から4.5年間, ソシャゲ運用のプロジェクトに携わっていました。
自分が担当した全てのプロジェクトでインフラ専門の方がいなかったので, 3年目くらいからアプリ運用の「ついで」に AWS 管理も行っていました。
当時はコストが大きくなりすぎずとりあえず動けばいいみたいな管理でした。この記事はそんなとりあえず動いているインフラに少し手を加えるだけで改善しそうなことを、思いついたときに書き留めていきます
別業界のインフラエンジニアに転職したので気づいたことを備忘として書いてって、今後役に立てばいいなって思ってます。
思いつきで試してないので実際にやったら実用的じゃないことのほうが多いかもしれません。
もちろん間違ってることもあると思うんで信じすぎないようにお願いします。qiita の使い方もよくわからんけどな
## 目次
1. EC2 インスタンスタイプは定期的に見直す
1. 機能別メンテナンスは ALB でできるかも
1. AWS Timestream 使ってみたい
1. このアーキテクチャ構成図すごくない?### EC2 インスタンスタイプは定期的に見直す
「手軽に、身軽に、行きたいお店」が見つかるサービスを作った話(ハッカソン参加レポート)
## はじめに
当資料はとあるハッカソンでの成果物をまとめたものです。※テクニカルサポーター賞(LINE)いただきました!
初めてのハッカソン参加でしたがいろいろと学びがあったので共有しようと思います。
ハッカソン自体の概要 ※運営の方に転載許可いただいています。
# ハッカソン概要
### テーマ:シン・ノーマル時代のHappy
2020年の緊急事態宣言から2年が経過をし、Covid-19の影響も少しずつ変化し、「ニューノーマル」は、それぞれの「新しいノーマル」に形を変えている。
本ハッカソンでは、そのような現在(シン・ノーマル時代)の幸せについて、改めて考察し、Happyな気持ちになるプロダクトを創造頂きます。### 開催概要
##### 開催日程
– アイデアソン・チームビルディング(全員参加) :10/11(火) 10:00-16:00
– LINEハンズオン(任意参加・別途申し込み):10/26水 14:00-17:00
– M5Stack ハンズオン(任意参加・別途申し込み):10/25火【Rails】Carrierwaveを用いてAWSのS3にPDFのアップロードとダウンロードを可能にする。
# はじめに
PDF投稿機能。cloudinaryではpdfに対応していないので、AWSのS3を使ってPDF投稿を実現しました。
# 開発環境
– Ruby 3.0.4
– Rails 6.1.7# 前提
– tweetsコントローラーで投稿機能作成済み
– tweetsテーブルにはpdfカラムstringで用意
– [AWSアカウント登録済](https://aws.amazon.com/jp/free/?gclid=Cj0KCQjwqoibBhDUARIsAH2OpWjwD6i56zlT62LqzwhLLLs-Pwqdqo91PMZ_10Pre8KXy7wURDGgIOkaAuJXEALw_wcB&trk=94c18984-27d1-4395-8dae-cdbf523f1ae5&sc_channel=ps&s_kwcid=AL!4422!3!568105078079!e!!g!!aws&ef_id=Cj0KCQjwqoibBhDUARIsAH2OpWjwD6i56zlT62LqzwhLLLs-Pwqdqo91PMZ_10Pre8KXy7wURDGgIOkaAuJ初心者エンジニアが『Hello, World!をサーバーレスで実行する』公式チュートリアルやってみた。
# はじめに
今回はAWS公式から出ている、『「Hello, World!」をサーバーレスで実行する』というチュートリアルをやっていきます。
この記事はAWSアカウントを作り終わってることが前提条件になりますので、下記URLから作成をお願いします。https://aws.amazon.com/jp/getting-started/hands-on/run-serverless-code/
### 自分のスペック
新卒でエンジニアになったが、Pythonに関しては簡単なものを読解、コーディングするぐらいの知識しかないです。
ほとんど初心者な人が今回はやっていきます。### 環境
* Windows10
* Chrome# 実行していく
### 関数作成までの手順
まず、AWSに入ってもらって左上の検索ボックスで「lambda」と検索して**Lambda**をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629918/4a9de036-5538-2b19-d56f-コンタクト追跡レコード(CTR)のFirehose~S3~経由のデータ連携 (後編)
# 前提条件
Saleforce API Version : v55.0
serverlessrepo-AmazonConnectSalesforceLambda : 5.19.0
この記事は、2022/10頃に書かれています。AmazonConnect自体には、コンタクト追跡レコードをFirehoseに流す機能があるけど、連携用のLambdaは提供されてないけど、提供されてるLambdaを流用して、どうにかならないかな?というお試しした話の後編。
+ serverlessrepo-AmazonConnectSalesf-sfIntervalAgent-xxxxxx
+ serverlessrepo-AmazonConnectS-sfContactTraceRecord-xxxxxx設定に迷った時に参照するのは、上記2つの『Amazon Connect Salesforce CTI Adapter』で作成されるLambdaです。
# Lambdaの作成
Lambdaの一覧画面から作成画面へ遷移する。![Lambda_01.JPG](https://qiita-image
金食い虫のglueエンドポイントの監視の仕組みを作った話
### AWS Glueを使う理由
Glueとは、ETLジョブの開発を行うための仕組みのことです。大規模なデータ処理や抽出を行いたい時に使うのがSparkというフレームワーク。
弊社では過去取引の動向を分析するデータセットを作るときによく利用します。Spark実行時には、Glueの開発エンドポイントを立ち上げる必要があります。
### AWS Glueは金食い虫
Sparkの実行終了時には、Glueの開発エンドポイントを切る必要があります。
使わなくなったら自動で消してくれるわけではありません。(SageMakerのNotebook Instanceと同じ)もし停止し忘れると、1日で約7,000円かかります….!
(5個のDPUを24時間利用した場合。5 * 0.44 * 24 * 130(円))
[AWS Glueの料金](https://aws.amazon.com/jp/glue/pricing/)
> 開発エンドポイントのプロビジョニング時には、5 個の DPU が割り当てられます。開発エンドポイントを 24 分 (5 分の 2 時間) 実行すると、DPU 時S3のインターフェース型エンドポイントとゲートウェイ型エンドポイントの違いと使い方について
S3使われるインターフェース型のエンドポイントとゲートウェイ型エンドポイントについて整理してみました。
S3にアクセスするためにゲートウェイ型のエンドポイントが使われますがもう一つのエンドポイントがあります。
それがインターフェース型のエンドポイント。
この二つのエンドポイントのメリットデメリットを理解してどのような使い方をするのかをまとめてみました。結論から言うと、他のAWSアカウント、データセンター側からアクセスするときはインターフェース型のエンドポイントを使用する。
内部でアクセスしたいならゲートウェイ型のエンドポイントを使用します。
## それぞれのエンドポイントの特徴
* インターフェース型のエンドポイント
・VPCのプライベートIPアドレスを使用してS3にアクセスする
・オンプレミスからのアクセスを許可する
・VPCのピアリング、Transit Gatewayを使用する別のAWSリージョンにあるVPCからのアクセスを許可する
・課金あり* ゲートウェイ型のエンドポイント
・S3パブリックIPアドレスを使用する
・オンプレミスからのアクセスを許可し[AWS Lambda Powertools Python]ログに実行ファイル名を含める
# 経緯
[AWS Lambda Powertools Python](https://awslabs.github.io/aws-lambda-powertools-python/latest/) [^1] のLogger機能はとても強力です。
ログを出力する目的は色々ありますが、デバッグ時のように処理を追いかける場面では「そのログがどこで出力されたのか」をまず知りたいのではないでしょうか。
デフォルト設定の出力では、 `location` 属性として出力されています。
下記の例だと、 `get_users` 関数内で、そのソースコードの40行目で出力したログであることがわかります。“`json
{
“level”: “DEBUG”,
“location”: “get_users:40”,
“message”: “…
“`シンプルな構造であれば「ああ、get_users()はあそこだな」とわかるでしょうが、いくつものファイルで構成されている場合は「get_users()ってどこの?」となりませんか?
# 出力内容の変更
出力内容をカ
Athena Query Result Reuseを試してみた
# 背景・目的
11/8に[Amazon Athena announces Query Result Reuse to accelerate queries](https://aws.amazon.com/about-aws/whats-new/2022/11/amazon-athena-query-result-reuse-accelerate-queries/)が発表されましたので、試してみました。# まとめ
– Athena Engine 3 が必要
– 最大7日間再利用可能(デフォルト60分)。以下の単位で指定可能。
– 分
– 時間
– 日にち
– 同じ結果であれば、ミリSecで結果が返される。# 概要
## Reusing query resultsとは?
Athenaでクエリを再実行する場合、オプションで、最後に保存されたクエリ結果を再利用することを選択が可能。
これにより、パフォーマンスが向上し、スキャンされるバイト数に関してコストが削減される。
特定の時間枠内で結果が変化しないことがわかっている場合に役立つ。クエリ結果を再利用する最
ARM DevSummit 2022 Quick Note
### ARM DevSummit 2022
Here are some topics interesting.
That was so sad that they have shifted this conference into fully virtual, but totally understood the situation.#### [Adventures in Debugging](https://devsummit.arm.com/flow/arm/devsummit22/sessions-catalog/page/sessions/session/1656625050492001JRlR)
– using same interfaces to print out the error messages may be the problem since the buffer might not be emptied out from driver.
– time code is the worst, make sure unit tests cover futur【オンプレからクラウド移行】3つのVPCをTransit GatewayでつないでPingさせてみた【AWS】
最近1つの現場が終わりまして、次の現場の面談を多く受けていました。その中で多かったのがオンプレからクラウド移行の案件、もしくは他の環境を移行する案件がありました。
ここしばらくオンプレからクラウド移行の案件、もしくはハイブリッドな環境を構築する案件にまた当たった時に色々問われるだろうと思い、クラウド移行について調べていました。
ちょっと調べてみるとすぐに出てくるのがDirectConnectとTransit Gatewayです。
DirectConnectについては業者が作業をしてくれるらしいのですが、SEがコンソール画面から作業する必要があるのはTransit Gateway。
オンプレとクラウドのネットワークをつなぐ際にどのような役割、メリットがあるのか、そしてメインの機能である複数のVPCを接続ができるか実際に試してみました。
# Transit Gatewayとは
VPCとオンプレのネットワークを中央ハブで接続して数千のVPC、VPN、ダイレクトコネクトを接続可能にし複雑なルーティングを簡素化してくれる。これまでは複数のVPCをつなぐときはピアリングを使って迂回し
S3の特定プレフィックス以下のファイル名をBashの配列に格納するワンライナー
# とりあえず結論
“`bash
S3_BUCKET=sample-bucket
S3_PREFIX=sample_prefix/
FILES=(`aws s3 ls s3://${S3_BUCKET}/${S3_PREFIX} |awk ‘{print $4}’ |sed -z ‘s/\n/ /g’ |awk ‘{print substr($0, 1, length($0)-1)}’`)echo ${FILES[@]}
#=> sample1.txt sample2.txt sample3.txt
“`# 前提
特定プレフィックス以下にフラットにファイルが存在している想定で行っている。
# 順に見ていく
#### 1. S3 からファイル一覧を取得する
“`bash
aws s3 ls s3://${S3_BUCKET}/${S3_PREFIX}
“`出力は次のようになる。
“`
2022-01-01 01:01:01 0
2022-02-22 12:34:56 123 sample1.txt
2022-10-01 1バースト可能インスタンスの損益分岐点について
## 概要
文脈としては、EC2インスタンスをt系のインスタンスで運用していて、c/m/r系に変更するさいの損益分岐点を計算したいとします。
損益分岐点はの資料[1]をもとに計算できますが、直感的に何をしているのかわからなかったので図にしてみました。
個人で考えたものなので、図や議論の内容は正確でないかもしれないです。また、AWS側のサービス変更などで将来的に情報が古くなるかもしれません。正確な情報は公式ドキュメントを見てください。## 損益分岐点の計算
資料[1]をもとに考え方をたどると、損益分岐点の CPU 使用率は、以下の式で計算できます。
$$\beta = \alpha + \frac{nI}{B^\prime – B}$$
ここで、変数は以下のように定義しました。
* $\beta$: 損益分岐点(=t系とc/m/r系のインスタンスの料金が同じになる)のCPU使用率
* $\alpha$: t系インスタンスのベースラインのCPU使用率
* $B^\prime$: c/m/r系インスタンスの時間あたりの料金
* $B$: t系インスタンスの時間あたりの料金
*関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.20
JAVA関連のことを調べてみた
-
- 2024.09.20
iOS関連のことを調べてみた
-
- 2024.09.20
JavaScript関連のことを調べてみた
-
- 2024.09.20
Rails関連のことを調べてみた
-
- 2024.09.20
Python関連のことを調べてみた
-
- 2024.09.20
Lambda関連のことを調べてみた