DUO 3.0 と仲良くなる大作戦(例文6)

今日も DUO 3.0 から、知らないと意味が取れない句動詞の例文を取り上げてだらだら雑談するコーナー。

えー……。

そろそろ数学かプログラミングの話がしたい!

まぁまぁ。

昨日まで分からなかった熟語が分かるようになる体験も楽しいものだよ。

lean against the pillar

6(DUO 3.0)
He leaned against the pillar and gazed at the Statue of Liberty.

pillar ってなんだっけ

……枕?

それは pillow

名詞がうろ覚えだと、それに引きずられて「枕にもたれかかった」みたいな奇妙な訳し方をしちゃうから気をつけて。

続きを読む

DUO 3.0 と仲良くなる大作戦(例文3)

はい、今日も DUO 3.0 の例文を眺める会を開催します。

最少催行人数は2名!

……僕と君しかいないじゃん。

let go of ... ってなんだっけ

3(DUO 3.0)
Let go of your negative outlook on life. Always maintain a positive attitude.

なんだこの Let go of ... って!

これの別バージョンで、let ... go っていうのがあるよ。

こっちは知ってるでしょ。

Let me go! We're through.”(後略)

「離して! 私たちはもう終わりよ!」みたいなやつだね。

let ... go というカタチで、「...を離す」とか「...を捨てる」とかの意味だね。

let ... golet go of ... は、ただカタチが違うだけだよ。 この例文も結局、「(of 以下を)離せ」、もしくは「捨てろ」みたいな意味になる。

続きを読む

DUO 3.0 と仲良くなる大作戦(例文2)

はじめに(DUO 3.0買った)

DUO Select を周回したのに英文がちっとも読めるようにならないたーせる君を見かねて、もうちょっとレベル高い版を買ってきました!

DUO 3.0

DUO 3.0

Amazon

なんでだよ……。

却って大変になったじゃん……。

まぁ、弱い薬が効かないときは、もっと強力なやつに切り替えたりするでしょ。

そういうことだよ。

どういうことだよ……。

続きを読む

英語と仲直りがしたいのですが #エピソード8

第8話 ── 同格の that

しばらく that の話が続いたので、今回も紛らわしい that の話。

まーた英語回か(・ω・ lll)

たまには数学とか理科とかやりたい……。

まぁまぁ。 さっそく軽く肩慣らしといこう。

All living things are composed of cells that contain a substance called DNA.

訳: すべての生物は DNA と呼ばれる物質を含む細胞で構成されている。

これは毎度おなじみ関係代名詞の文だね。

ちゃんと{名詞 〈関係詞 (S +) V〉}というカタチになっている。

そうだね。

that 以下はひとつの形容詞として、直前の名詞(先行詞)を修飾している。

なるほど解ってきたぞ……!

では、続いてこちらを見てください。

There was a myth that Japanese financial institutions would not go bankrupt.

訳: 日本の金融機関は潰れないという神話があった。

これも、関係代名詞の文?

残念ながら違うんだなぁコレが。

非常に紛らわしいんだけど、こっちの that は関係詞じゃないんだ。

一体さっきと何が違うの……。

よく見ると、that 節の中の構造が違うんだよ。

同格の that

最初の文は、that 節の中に「名詞の穴」が空いている。

こんなふうに。

All living things are composed of cells that 名詞の穴 contain a substance called DNA.

なるほど、確かに that 節は主語にあたる名詞がなくて、まるで穴が空いたように不完全な文になってるね。

一方で、2つ目の例文は、that 節のどこにも名詞の穴は見当たらない

There was a myth that Japanese financial institutions would not go bankrupt.

ホントだ。

こっちは欠けてる名詞がなさそう。

この that 節はね、直前にある抽象名詞を具体的に言い換える名詞節で、名詞が2つ並ぶように見えることから「同格の that」と呼ばれているんだ。

抽象名詞??

抽象名詞とは、「考え」「認識」「概念」みたいな系統の名詞(fact, idea, news, rumor, view など)。
同格の that は、抽象名詞の後ろにしか続かない。
ポイント

同格の that は、特定の抽象名詞にしかくっつかないので、文法書には代表的な抽象名詞の一覧が載っていたりするよ。

まーた覚える系か……。

とはいえ、ボクも myth の後ろに同格の that が続く例は初めて見た。

(たぶん、どうしても myth という単語を収録したかったんだと思う……知らんけど)

同格の that であれば、〈that S + V〉とその前にある名詞の間でイコールの関係が成り立つ。
日本語に訳すときは「〈S が V するという〉+ 名詞」という意味になる。
ポイント

抽象名詞 イコール〈that S + V〉になる、ということか。

関係代名詞とは文法上別モノなので、区別がついていないような訳し方をすると高確率で減点されるよ。

えぇ……。

There was a myth that Japanese financial institutions would not go bankrupt.

訳: 日本の金融機関は潰れないという神話があった。

こんなの、日本語に訳した時点で形容詞節と見分けがつかないじゃん……。

雰囲気的にも関係代名詞とあんまり変わらないし……。

まぁそこは、「わかってます感」が採点者に伝わればよいのかなぁと。

同格のthatの場合、「○○という××」という典型的な和訳の型があるので──。

ふむー……なんか受験英語っぽいね。

正直そこまで厳密な区別が必要なのか、ちょっとモヤモヤする。。。

とはいえ、単に英文の意味を取るだけなら、

「(そこには)神話があってぇ……、(それはどんな神話かというと)日本の金融は潰れないという神話でぇ……」

みたいに読んでいけば、とりあえず何を言わんとしているかは分かるね。

そうだね。

(……やばいな、ここちょっとニガテかも)

英語と仲直りがしたいのですが #エピソード7

第7話 ── so that 構文と仲直りする

おや、、

なんか元気ないね。

そうなんだよー。

最近、物凄くストレスが溜まっていて、そろそろ耐えられない

そっか…

じゃあ現実逃避に英語でもやろうか。

なぜそうなるwww

続きを読む

AWS Lambda で遊ぼう(第10話: WebSocket篇③ - リアルタイムチャット完成篇)

夢のリアルタイム Web を完成させるため、超大作 (?) の Lambda を少しずつ作り上げていくお話です。 最初から読まないとワケが解らないかもです。

tercel-tech.hatenablog.com

tercel-tech.hatenablog.com

本日の導入

AWS SAM でつくる WebSocket アプリケーションもいよいよ大詰めを迎えました。

前回からだいぶ間が空いてしまい、かなりモチベーションが下がってしまっているので、ここで先に完成品のイメージを見てみましょう。

youtu.be

おぉ…

リアルタイムチャットだ…

今日という今日はコレを完成させます!

続きを読む

書評: AWS Lambda 実践ガイド 第2版

今日は、インプレストップギアシリーズの最新刊『AWS Lambda実践ガイド 第2版 (impress top gear)』を手に入れました。 わーい。

f:id:tercel_s:20220303204026p:plain

そんなわけで、今回はこの本を全力でご紹介するコーナーにしたいと思います!

この本のあらまし

こんにちのアプリケーションの実行環境は、物理サーバ → 仮想サーバ → コンテナ → サーバレス と進化を遂げてきました。

その中でもサーバレスは最も抽象度の高い概念で、AWS のサービスでは Fargateファーゲート や App Runner、そして僕の大好きな Lambda が該当します。

Lambda については、2017年頃にいくつか専門書が発売されたものの、近年は新刊が発行される機会も減ってしまいました。 こんにちのクラウド系新規案件の多くがコンテナかサーバレスだというのに、初心者は日本語の書籍から最新情報を得ることができないという状況が長く続いていました。

本書は、AWS Lambdaを使ったサーバレスアプリケーション開発の入門書の第2版です。 ほぼ全章に亘って大幅な増補・改訂がなされており、それに伴い読了時の最終到達目標も初版からワンランク上になっています。

今日は、本書をすみずみまで読み込んだ僕が、この本のスゴイところを徹底的に紹介していきます。

ポイント①: この本は誰のための本か

この本のメインターゲットは、AWS Lambda を使ってマイクロサービスの設計・開発を行うことになってしまったプログラマです。

2022年3月現在、日本語で読める Lambda の書籍としては最も新しく、そしておそらく最も分かりやすくて詳しい本ではないかと思います。

一方、裏ターゲットとしては、AWS SAM という入口から CloudFormation に挑戦したい人です。

ポイント②: 開発環境の構築で挫折しない

開発環境の準備は、プログラマの第一関門とされています。 もともとPCに入っているツールとの相性が悪いとか、バージョンが競合したりとか、なかなか手順通りにいかずに右往左往することも珍しくありません。

第2版では、開発環境にAWS Cloud9を使用します。ボタン一つで起動する即席の環境でありながら、開発に必要なひととおりのツールが初めから全て揃っており、これにより、開発環境の準備がほぼ一瞬で終わるようになっています。

ただ、注意点が2点ほど。 Cloud9の初期ディスクの空き領域が少なく、sam build --use-containerに失敗する可能性がある点と、AWS SAM CLIのバージョン周りで書籍と読者の環境に差異があるかも知れない点が挙げられます。 これらもコラムでフォローしています。

ポイント③: AWS SAMに本格的に対応

2版における最大のアップデートは、「はじめに」にもある通り、AWS SAM (Serverless Application Model) を利用した IaC (Infrastructure as Code) への対応です。

もちろん、マネジメントコンソールを用いた初歩的な開発手法の解説も残っており、ほぼ全ての題材において、GUICUI 両方の開発方式に対応していますので、1冊で2度おいしい内容となっています。

従来の方式は、Lambda関数やAWSリソース(S3バケットやDynamoDBテーブルなど)を作成したりチューニングしたりするたびに、マネジメントコンソールをあちこち行ったり来たりせねばならず、操作の手数が煩雑化するという難点がありました。

また、どのLambda関数とどのAWSリソースが関連付いているのかを一目で確認できないという課題もありました。 いっときの開発だけならまだしも、中長期的な保守・運用を考えた場合、こうした手作業に頼るオペレーションはなまなかのものではありません。

今回の第2版では、これらの課題がSAMによって解決され、先々の運用にも耐えうる手法の解説が充実しました。

ただし、SAMの元となっているCloudFormation自体がそれなりに高度なトピックということもあり、SAMの解説に突入した途端に難易度が上がったように感じてしまう人もいるかも知れません。

一方で、初版を読破済みという方は、2版の実践編の各章の後半 ── SAM のパートを楽しむと、きっと新たな開発体験ができるはずです。

ポイント④: 初版の誤り訂正

2版では、初版にあった既知の誤りが訂正されています。

たとえば、§6-7 の署名付きURLの有効期限の時間設定が48時間 → 8時間に修正されました(実は、初版の時間設定では意図した動きにならないのです。 ここは2版のコラムで詳しい補足説明があります)。

また、一部のてい(BACKET など)も訂正されています。

§6-2 で作る Web アプリケーションのサンプルコードも、初版ではLambdaからHTMLを直接返却する(一昔前のCGIのような)方式が採られていましたが、2版では非同期通信でJSON電文を送受信するという、より現代的な方式に修正されています。

これなら、フロントエンドエンジニアも、React や Angular など好みのライブラリやフレームワークでの読み替えが容易になるでしょう。

そのほか AWS リソースのアイコンの変更に合わせて図版も最新のものに差し替わっています。

ポイント⑤: 最新仕様のキャッチアップ

初版の刊行当時は正しかった事柄も、AWS のアップデートによって情報が古くなってしまっていました。

たとえば、Lambdaの実行時間の上限が5分から15分に延びたり、Lambda Layersが登場したり、armベースのアーキテクチャに対応したりと様々なアップデートがありました。

そのほか、SQS のFIFO先入先出キューが高スループットモードをサポートしたり、DynamoDBがイニシャルのスループット見積もりをスキップできるオンデマンドに対応したりしています。

また、AWS の仕様をまとめた表についても細部にわたって徹底的に再調査・更新されています。

  • 表3-2 定義済み環境変数
  • 表6-2 API Gatewayから渡されるイベント引数のうち、よく使う項目

などなど、最新仕様をキャッチアップする意味でも資料的価値は非常に高いといえます。

ポイント⑥: いつか役立つ実用テクニック満載

ついつい読み飛ばしがちですが、本編の中にもいろんな大ネタ・小ネタが詰まっています。

§5-8 「SAMを使って既存S3バケットに対してLambda関数のトリガーを設定する」 は、どこかの誰かがマネコンから手作りしてしまったリソースをSAMテンプレートの管理下に置きたい場合や、ドリフトを解消したい場合にも使える実用度の高いテクニックです。

とりわけ SAMの場合、このリソースインポートの手順が(通常のCloudFormationと比較して)少々テクニカルなので、これが収録されたのは正直嬉しいことです。

本書のトリを飾る X-Ray は、Lambda のパフォーマンス調査やトラブルシュートのための必須知識です。 マイクロサービスの可観測性を高める大変強力な道具で、X-Ray を知ればLambdaの運用レベルが一段階アップすることでしょう。

── 無理を承知で欲を言えば、FSx 接続(これにより、一時領域512MBという制限がなくなる)や、Step Functions による SAGA パターン実装、moto を使ったユニットテストの技法なども、ぜひ著者の平易な解説で読みたかったところです。

総評

AWS Lambda を使ってシステム開発に従事するプログラマは、ぜひ一読をオススメします。 前述のとおり「大増補」「全面改訂」となっていますので、初版を持っている人も買い直す価値は十分にあると思います。

Copyright (c) 2012 @tercel_s, @iTercel, @pi_cro_s.